1. Текст главной программы задачи №1:
! Lab7_V1_1.f90
! FUNCTIONS:
! Lab7_V1_1 - Entry point of console application.
!****************************************************************************
! PROGRAM: Lab7_V1_1
! PURPOSE: Entry point for the console application.
!****************************************************************************
program Lab7_V1_1
implicit none
! Объявления переменных
integer:: fi=1,fo=2! Номера устройств ввода и вывода
integer F(100)! Массив F
integer n! Количество элементов массива F
integer i! Счетчик элементов массива F
character(4) teta,alfa,beta! Строки
real w! Вещественное число W
real v! Вещественное число V
integer e! Целое число Е
! ----- Выполняемые операторы -----
! Файловой переменной fi назначается файл File1.txt
open(fi,file='File1.txt')! Текстовый файл открывается для чтения
read(fi,*) teta,alfa,beta! Чтение из файла первой строки
read(fi,*) w,e,v! Чтение из файла второй строки
read(fi,*) n! Чтение из файла третьей строки
read(fi,*) (F(i),i=1,n)! Чтение из файла четвертой строки
close(fi)! Закрывается прочитанный файл fi
! Выводим информацию в файл:
! Файловой переменной fo назначается файл File1.out
open(fo,file='File1.out')! Текстовый файл fo открывается для записи
write(fo,'(3(a,a4))') ' teta=',teta,' alfa=',alfa,' beta=',beta
|
|
write(fo,'(a,e13.4,a,i4,a,f6.2)') ' w=',w,' e=',e,' v=',v
write(fo,'(a,$)') ' F = '
write(fo,'(100i3)') (F(i),i=1,n)
close(fo)! Закрывается файл fo,созданный программой
! дублируем вывод информаци на экран:
write(*,'(3(a,a4))') ' teta=',teta,' alfa=',alfa,' beta=',beta
write(6,'(a,e13.4,a,i4,a,f6.2)') ' w=',w,' e=',e,' v=',v
write(*,'(a,$)') ' F = '
write(*,'(100i3)') (F(i),i=1,n)
end program Lab7_V1_1
2. Файл исходных данных для задачи №1.
3. Окно консольного приложения с результатами расчета для задачи №1.
4. Файл с результатами расчета для задачи №1.
5. Текст главной программы задачи №2:
! Lab7_V1_2.f90
! FUNCTIONS:
! Lab7_V1_2 - Entry point of console application.
!****************************************************************************
! PROGRAM: Lab7_V1_2
! PURPOSE: Entry point for the console application.
!****************************************************************************
program Lab7_V1_2
implicit none
! Объявления переменных
integer:: fi=1,fo=2! Номера устройств ввода и вывода
integer m! количество строк и столбцов
integer A(100,100)! массив А
integer R! искомая разность
integer Amax! максимальный элемент
integer Amin! минимальный элемент
integer i,j! счетчики по строкам, столбцам
! ----- Выполняемые операторы -----
! Файловой переменной fi назначается файл File1.txt
open(fi,file='File1.txt')! Текстовый файл открывается для чтения
read(fi,*) m! Чтение количества строк и столбцов
do i=1,m! цикл по строкам
read(fi,*) (A(i,j),j=1,m)! чтение массива по строкам
enddo
close(fi)! Закрывается прочитанный файл fi
! поиск минимального и максимального элементов
Amin=A(1,1)! начальное значение минимального элемента
Amax=A(1,1)! начальное значение максимального элемента
do j=1,m! цикл по столбцам
do i=1,m! цикл по строкам
if (A(i,j)<Amin) Amin=A(i,j)! проверка на минимум
if (A(i,j)>Amax) Amax=A(i,j)! проверка на максимум
enddo
enddo
R=Amax-Amin! разность между максимальным и минимальным
! Выводим информацию в файл:
|
|
! Файловой переменной fo назначается файл File1.out
open(fo,file='File1.out')! Текстовый файл fo открывается для записи
write(fo,*) '-----------------------------------'
write(fo,*) 'Check elements of array A:'
do i=1,m
write(fo,'(100i5)') (A(i,j),j=1,m)! чтение массива по строкам
enddo
write(fo,*) '-----------------------------------'
write(fo,'(2(a,i4))') ' Amin=',Amin,' Amax=',Amax
write(fo,'(a,i4)') ' Result: R=',R! вывод результата на экран
close(fo)! Закрывается файл fo,созданный программой
! дублируем вывод информаци на экран:
! Вывод массива на экран - проверка правильности ввода
print *,'-----------------------------------'
print *, 'Check elements of array A:'
do i=1,m
write(*,'(100i5)') (A(i,j),j=1,m)! чтение массива по строкам
enddo
print *,'-----------------------------------'
write(*,'(2(a,i4))') ' Amin=',Amin,' Amax=',Amax
write(*,'(a,i4)') ' Result: R=',R! вывод результата на экран
end program Lab7_V1_2
6. Файл исходных данных для задачи №2.
7. Файл с результатами расчета для задачи №2.
8. Окно консольного приложения с результатами расчета для задачи №2.
9. Выводы:
· изучены файлы данных и способы доступа к ним;
· приобретены навыки ввода-вывода простых переменных различных типов;
· ознакомился с вводом-выводом индексированных переменных, массивов;
· применено форматирование выводимой информации.
(КОНТРОЛЬНЫЕ ВОПРОСЫ – ПРАВИЛЬНЫЕ ВАРИАНТЫ ОТВЕТОВ)