- •Лабораторная работа № 7 текстовые файлы
- •Постановка задачи:
- •Типовой вариант
- •Порядок выполнения работы
- •2. Найти разность r между максимальным и минимальным элементами массива Содержание работы
- •Варианты заданий Задача 1
- •Лабораторная работа № 7 текстовые файлы
- •Постановка задачи:
- •Исходные величины представить в виде внешнего текстового файла, ввести их из файла и вывести в другой текстовый файл и на экран в формате.
- •Ввести исходный массив из текстового файла. Вывести его в естественном виде. Выполнить задание. Результаты вывести в другой текстовый файл. Вариант № 1
- •(Контрольные вопросы – правильные варианты ответов)
- •1) Ввод по имени массива
- •2) Ввод с использованием циклического элемента
- •3) Ввод с использованием цикла do-enddo
- •4) Ввод с использованием цикла do с меткой на последнем операторе тела цикла
- •5) Ввод с использованием цикла do с меткой на операторе continue
- •1) Ввод по имени массива
- •2) Ввод с использованием циклических элементов
- •3) Ввод с использованием комбинации циклического элемента для внутреннего цикла и цикла do-enddo для внешнего цикла
- •4) Ввод с использованием циклов do-enddo
- •5) Ввод с использованием цикла do с меткой на последнем операторе тел циклов
- •6) Ввод с использованием циклов do с меткой на операторах continue
- •7) Ввод с использованием циклов do с меткой на одном операторе continue, который является последним для обоих циклов
- •8) Ввод с использованием одного цикла do с меткой на последнем операторе (read) и цикла с оператором continue в конце
- •1) Вывод по имени массива
- •2) Вывод с использованием циклических элементов
- •3) Вывод с использованием комбинации циклического элемента для внутреннего цикла и цикла do-enddo для внешнего цикла
- •4) Вывод с использованием циклов do-enddo
- •5) Вывод с использованием цикла do с меткой на последнем операторе тел циклов
- •6) Вывод с использованием циклов do с меткой на операторах continue
- •7) Вывод с использованием циклов do с меткой на одном операторе continue, который является последним для обоих циклов
- •8) Вывод с использованием одного цикла do с меткой на последнем операторе (write) и цикла с оператором continue в конце
- •1) Вывод по имени массива
- •2) Вывод с использованием циклического элемента
- •3) Вывод с использованием цикла do-enddo
- •4) Вывод с использованием цикла do с меткой на последнем операторе тела цикла
- •5) Вывод с использованием цикла do с меткой на операторе continue
Варианты заданий Задача 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
1. = 'AB*1', = 'DF#2', = 'KM@3', W = -12210-9, E = 156,
F = (1,2,3,4,5).
2. Найти разность r между максимальным и минимальным элементами массива Содержание работы
Текст главной программы задачи №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.
Текст главной программы задачи №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
Файл исходных данных для задачи №2.
Файл с результатами расчета для задачи №2.
Окно консольного приложения с результатами расчета для задачи №2.
Выводы:
изучены файлы данных и способы доступа к ним;
приобретены навыки ввода-вывода простых переменных различных типов;
ознакомился с вводом-выводом индексированных переменных, массивов;
применено форматирование выводимой информации.
