Лабораторная работа № 5
Тема: Разработка и реализация программ с использованием файлового типа данных.
Цель работы:
-
получить навыки составления и реализации программ с использованием внешних фалов средствами языка Фортран.
Задание к лабораторной работе
Составить программу преобразования двумерного массива согласно варианту задания. Исходная матрица считывается из файла исходных данных data.txt. Вывод осуществляется в файл результатов rez.txt.
|
№ вар. |
Условие |
|
1 |
В
текстовый файл записан двумерный
массив чисел
|
|
2 |
В
текстовый файл записан двумерный
массив чисел
|
|
3 |
В
текстовый файл записан двумерный
массив чисел
|
|
4 |
В
текстовый файл записан двумерный
массив чисел
|
|
5 |
В
текстовый файл записан двумерный
массив чисел
|
|
6 |
В
текстовый файл записаны два двумерных
массива
|
|
7 |
В
текстовый файл записан двумерный
массив чисел
|
|
8 |
В
текстовый файл записан двумерный
массив чисел
|
|
9 |
В
текстовый файл записан двумерный
массив чисел
|
|
10 |
В
текстовый файл записан двумерный
массив чисел
|
|
11 |
В
текстовый файл записаны два двумерных
массива
|
|
12 |
В
текстовый файл записана квадратная
матрица
|
|
13 |
В
текстовый файл записана квадратная
матрица
|
|
14 |
В
текстовый файл записаны два одномерных
массива
|
|
15 |
В
текстовый файл записан двумерный
массив чисел
|
|
16 |
В
текстовый файл записан двумерный
массив чисел
|
|
17 |
В
текстовый файл записан двумерный
массив чисел
|
|
18 |
В
текстовый файл записан двумерный
массив чисел
|
|
19 |
В
текстовый файл записан двумерный
массив чисел
|
|
20 |
В
текстовый файл записан двумерный
массив чисел
|
Образец выполнения задания
Задание 5.
Дан двумерный массив чисел
размерности
,
который находится в файле data.txt.
Необходимо заменить все отрицательные
элементы на положительные, если сумма
всех элементов массива меньше
,
в противном случае все отрицательные
элементы уменьшить в два раза. Записать
в файл-результатов res.txt
исходный и преобразованный массивы.
Схема алгоритма решения задания 5 приведена на рис. Л5.1. и Л5.2

Рис. Л5.1 Блок-схема решения задания 5

Рис. Л5.2 Продолжение блок-схемы решения задания 5
Перед запуском программы необходимо создать и сохранить текстовый файл data.txt. Формат файла
-1 5 -8
4 2 7
2 -4 3
15
Текст программы, реализующий алгоритм, приведенный на рис. Л5.1 и Л5.2.
Program lr5
Integer, parameter :: n=3
Real, dimension (1..n,1..n) :: a
Real Sum, s
real I,j
Sum=0
Open(5,file=’data.txt’)
!считывание и суммирование элементов массива
do i=1, N
Read(5,*), a(I,1:n)
Sum=sum+a(I,j)
Enddo
!считывание числа S
Read(5,*),s
Close(5)
!вывод исходной матрицы в файл
Open(6,file=’res.dat’,status=”new”)
do i=1, N
Write(6,20),(a(I,j),j=1,n)
Enddo
Write(6,*)
20 format(nf2.0)
If (sum<s) then
{если сумма элементов меньше S меняем знак у отрицательных элементов }
do i=1, N
do j=1, N
If (a(I,j)<0) then
A(I,j)=abs(a(I,j))
else
do i=1, N
do j=1, N
If (a(I,j)<0) then
A(I,j)=a(I,j)/2
!вывод преобразованной матрицы в файл
do i=1, N
Write(6,20),(a(I,j),j=1,n)
enddo
20 format(nf2.0)
Close(6)
End
До запуска программы создается файл ’data.txt, в котором содержится исходная матрица и параметр S:
-1 5 -8
4 2 7
2 -4 3
15
В результате работы программы должен быть создан файл res.txt в папке проекта программы.
Содержимое файла res.txt.
-1 5 -8
4 2 7
2 -4 3
1 5 8
4 2 7
2 4 3

.
Массив
.
Исходные одномерные массивы и полученный
двумерный массив поместить в новый
текстовый файл.