Номера примеров указаны в соответствии с номерами схем вычислений данных задач, разработанных в пункте 4.2. Циклические вычислительные процессы.
Пример 4. Задан массив по имени А, состоящий из 20 элементов, Аi , i = 1,2,…,20. Написать программу вычисления суммы и произведения элементов этого массива.
Алгоритм вычисления разобран в п. 4.2, схема вычисления представлена на рис.4. имена переменных в программе выбраны в соответствии со схемой.
Исходные данные элементы массива А - это переменные действительного типа. Разместим элементы в файле. При вводе используем 1-й способ. Результаты вычисления сумму S и произведение P выведем на дисплей под управлением списка. Для “читаемости” программы запишем ее с комментариями. Причем в первой строке программы расположен комментарий, в котором указана постановка задачи (в дополнении можно указать автора программы и любую другую информацию). Такой подход реализован и в последующих программах.
Текст программы представлен ниже.
* Вычисление суммы S и произведения P массива
DIMENSION A(20)
* Ввод массива.
READ(1,*)A
* Задание начальных значений S и P
S = 0
P = 1
* Организация цикла
DO I = 1,20,1
S = S + A(I)
P = P * A(I)
ENDDO
* Печать результатов
WRITE(*,*)’ S=’,S,’ P=’,P
STOP
END
Пример 5. Задан массив X, состоящий из 10 элементов, Xj, j=1,…,10. Написать программу вычисления произведения положительных элементов этого массива.
Алгоритм вычисления разобран в п. 4.2, схема представлена на рис.5.
Исходные данные – переменные действительного типа. Разместим элементы массива в файле. При вводе массива используем 1-й способ, результат выведем на дисплей под управлением списка.
При вычислении произведения положительных элементов используем структурный логический оператор IF. Текст программы с комментариями представлен ниже.
* Вычисление произведения положительных элементов массива
DIMENSION X(10)
* Ввод массива
READ(1,*)X
* Задание начального значения P
P = 1
* Организация цикла
DO J = 1,10,1
* Выбор положительных элементов и вычисление произведения
IF(X(J) > 0)THEN ! или IF(X(J) .GT. 0) THEN
P = P*X(J)
ENDIF
ENDDO
* Печать результата.
WRITE(*,*)’ P=’,P
STOP
END
Пример 7. Задан массив X, состоящий из 20 элементов, XI, I=1,…,20. Составить программу вычисления среднего арифметического значения положительных элементов.
Алгоритм вычисления разобран в п. 4.2, схема вычисления представлена на рис.7. Имена переменных в программе выбраны в соответствии со схемой.
Исходные данные – элементы массива X разместим в файле. При вводе используем 1-й способ, т.е. введем по имени массива. Результат выведем на дисплей под управлением списка. При написании программы используем комментарии. Текст программы представлен ниже.
* Вычисление среднего арифм. значения положительных элементов
DIMENSION X(20)
* Ввод массива
READ(1,*)X
* Задание начальных значений
S = 0
K = 0
* Организация цикла
DO I = 1,20
* Выбор положительных элементов и подсчет их суммы и количества
IF(X(I) >= 0)THEN ! или IF(X(J) .GE. 0) THEN
S = S + X(I)
K = K + 1
ENDIF
ENDDO
* Проверка числа элементов К=0? Печать результата
IF(K = = 0)THEN ! или IF((K .EQ. 0)) THEN
WRITE(*,*)’ Положительных элементов нет’
ELSE
R = S/K
WRITE(*,*)’ Среднее арифметическое R=',R
ENDIF
STOP
END
Пример 8. Заданы два массива AI, I = 1,…,25, и BJ, J = 1,…,30. Составить программу вычисления количества положительных элементов в каждом массиве. Определить в каком массиве больше положительных элементов.
Алгоритм вычисления представлен в п. 4.2, схема вычисления – на рис. 8. Имена переменных в программе соответствуют именам переменных в схеме.
Элементы исходных массивов разместим в файле и введем по имени массивов. Результаты выведем на дисплей под управлением списка.
Текст программы с комментариями представлен ниже.
* Вычисление количества положительных элементов в массивах
DIMENSION A(25),B(30)
* Ввод массивов
READ(1,*)A
READ(1,*)B
* Задание начальных значений
KA = 0
KB = 0
* Организация цикла по параметру I
DO I = 1,25
* Выбор положительных элементов массива A и подсчет их количества
IF(A(I) > = 0)THEN ! или IF(A(I) .GE. 0) THEN
KA = KA + 1
ENDIF
ENDDO
* Организация цикла по параметру J
DO J = 1,30
* Выбор положительных элементов массива B и подсчет их количества
IF(B(J) > = 0)THEN ! или IF(B(J) .GE. 0) THEN
KB = KB + 1
ENDIF
ENDDO
* Печать количества положительных элементов KA и KB
WRITE(*,*)KA,KB
* Определение числового соотношения положительных элементов
IF(KA > KB )THEN ! или IF(KA .GT. KB) THEN
WRITE(*,*)’ В массиве A больше пол. элементов’
ELSE
IF(KA < KB)THEN ! или IF(KA .LT. KB) THEN
WRITE(*,*)’ В массиве B больше пол. элементов’
ELSE
WRITE(*,*)’ Количество пол. элементов совладает’
ENDIF
ENDIF
STOP
END
Пример 9. Задан массив YJ, J=1,…,30. Составить программу нахождения максимального (наибольшего) элемента этого массива.
Алгоритм вычисления представлен в п. 4.2, схема вычисления – на рис.9. Имена переменных в программе выбраны в соответствии с именами переменных в схеме. Элементы массива разместим в файле и введем по имени массива. Результат выведем на дисплей под управлением списка.
Текст программы представлен ниже.
* Нахождение максимального элемента массива
DIMENSION Y(30)
* Ввод массива
READ(1,*)Y
* Задание начального значения максимального элемента
YMAX = Y(1)
* Организация цикла
DO J = 2,30
* Выбор максимума из текущего элемента Y(J) и YMAX
IF(Y(J) >= YMAX)THEN ! или IF(Y(I) .GE. YMAX) THEN