Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР-07. Файлы (FORTRAN).doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
703 Кб
Скачать
☆

Варианты заданий Задача 1

1. .

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21. .

22.

23.

24.

25. .

26.

27.

28.

29.

30.

Варианты заданий для задачи 2 взять из лабораторной работы № 6.

ПРИМЕР ОФОРМЛЕНИЯ ОТЧЕТА

Лабораторная работа № 7 текстовые файлы

Выполнил

ст. 211 гр.

Иванов А.П.

Проверил

доцент каф. 304

Скоб Ю.А.

Цель – изучение файлов данных и способов доступа к ним; приобретение навыков ввода-вывода простых переменных различных типов; ознакомление с вводом-выводом индексированных переменных, массивов; применение форматирования выводимой информации.

Постановка задачи:

  1. Исходные величины представить в виде внешнего текстового файла, ввести их из файла и вывести в другой текстовый файл и на экран в формате.

  2. Ввести исходный массив из текстового файла. Вывести его в естественном виде. Выполнить задание. Результаты вывести в другой текстовый файл. Вариант № 1

1. = 'AB*1', = 'DF#2', = 'KM@3', W = -12210-9, E = 156,

F = (1,2,3,4,5).

2. Найти разность r между максимальным и минимальным элементами массива Содержание работы

  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

  1. Файл исходных данных для задачи №1.

  1. Окно консольного приложения с результатами расчета для задачи №1.

  1. Файл с результатами расчета для задачи №1.

  1. Текст главной программы задачи №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

  1. Файл исходных данных для задачи №2.

  1. Файл с результатами расчета для задачи №2.

  1. Окно консольного приложения с результатами расчета для задачи №2.

  1. Выводы:

  • изучены файлы данных и способы доступа к ним;

  • приобретены навыки ввода-вывода простых переменных различных типов;

  • ознакомился с вводом-выводом индексированных переменных, массивов;

  • применено форматирование выводимой информации.