Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2.doc
Скачиваний:
24
Добавлен:
04.11.2018
Размер:
4 Мб
Скачать
☆

Лабораторная работа № 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]