Пример выполнения задания лабораторной работы № 3
Тема: Работа с одномерными массивами.
Цель работы: Составление программы для обработки одномерных массивов.
Теория: Краткие сведения из теории ………
Задание: Составить блок-схему (рис.7) и программу вычисления суммы положительных элементов из массива A (N), используя форматный вывод. (N ≤ 20)
PROGRAMM JKL
DIMENSION A (20)
*Irina 1418z
PRINT *, ' введите N '
* N- точное количество элементов ≤ 20
READ (5,*) N
|
READ(5,*) (A(I), I=1, N)
S = 0
K = 0
D0 2 I = 1,N
IF (A(I).LE.0) GOTO 2
да S = S+A(I)
K= K+1
нет 2 CONTINUE
|
3 FORMAT ( ' K=’,I 2, /’S=',F7.2)
|
-1 0 –5 3 4 К = 2 S = 7.00
Рис. 7
РАЗДЕЛ IV. Лабораторная работа № 4
Дополнение к оператору цикла DO
Оператор цикла, общая форма которого имеет вид:DO n I=K1, K2, K3
где I – управляющая переменная цикла
K1 – начальное значение управляющей переменной
K2– конечное значение управляющей переменной
K3 – шаг изменения управляющей переменной.
Причем I, K1, K2, K3 – целые переменные или выражения.
В последних версиях Фортрана все эти величины допускается принимать вещественными. Это значительно упрощает многие расчеты, например, табуляцию функции.
Пример: Протабулировать функцию у = 1 – х + х2/2 в интервале 0.1…1.0. Величины
Х и У будут печататься в виде таблицы. Поэтому до начала печати Х и У следует распечатать шапку таблицы. Тогда программа может иметь вид:
PROGRAM TABL
PRINT 1
1 FORMAT (10X, ‘X’, 10X, ‘Y’)
DO 6 X = 0.1, 1., 0.1
Y = 1. – X + X*X/2.
PRINT 5, X, Y
5 FORMAT (10X, F5.2, 6X, F5.2)
6 CONTINUE
END
Если бы параметры цикла были целыми, то операторы, входящие в цикл, пришлось бы усложнить.
Двумерные массивы
Двумерные массивы подобны одномерным, за исключением того, чтоих элементы определяются не одним индексным выражением, а двумя. В математике применяется удобный способ изображения двумерных массивов:
a11 a12 a13 ………………a1 n
a21 a22 a23 ………………a2 n
a31 a32 a33 ………………a3 n
….………………………………………….
am1 am2 am3 ………………am n
Прямоугольная таблица с m строками и nстолбцами (m*n) в математике называется матрицей, а в программировании – двумерным массивом. Элементы таблицы выписываются строка за строкой. Элемент массива A(M,N)или A(I, J) содержит значение элемента матрицы аmnили аij. Первое индексное выражение Mили I указывает строку, а второе индексное выражение N или J – столбец, на пересечении которых находится элемент. Когда компилятор распределяет ячейки памяти ЭВМ для хранения двумерного массива, он резервирует в памяти непрерывную последовательность ячеек общим числом m*n. Элементы а11, а21, а31…аm1 размещаются в позициях с 1ой по mю; элементы а12, а22, а32…аm2 – в позициях с m+1 по 2mи т.д. Такой порядок размещения элементов известен как размещение “по столбцам”, следовательно, матрицы размещаются в памяти по столбцам. Программист в большинстве случаев использования двумерных массивов может не принимать во внимание это обстоятельство. Однако в некоторых случаях, о которых будет упомянуто в дальнейшем, это может быть очень важно.
Например, оператор DIMENSION А(3,2) выделяет память для хранения двумерного массива А, элементы которого распределяются в памяти следующим образом :
А(1, 1), А(2, 1), А(3, 1), А(1, 2), А(2, 2), А(3, 2). Здесь нижняя граница каждого индекса по умолчанию равна единице, так как она не заданна явно. Пример оператора с явным заданием нижней границы индекса:
DIMENSION А(0: 3, 0: 1).
Этот оператор выделяет память для хранения двумерного массива А, элементы которого хранятся в следующем порядке:
А(0, 0), А(1, 0), А(2, 0), А(3, 0), А(0, 1), А(1, 1), А(2, 1), А(3, 1).