- •«Информатика»
- •21. Оператор format
- •Спецификация X
- •Спецификация I
- •Правило:
- •Разделители
- •Спецификация f
- •Особенности набора числовых данных при вводе информации
- •Использование повторителей в операторе format
- •Примечание
- •Вывод по спецификации Fw.D
- •Ввод по спецификации Ew.D
- •Вывод информации по спецификации Еw.D
- •Примечание: При бесформатном выводе данные автоматически выводятся по спецификации е15.7. Ввод и вывод информации по спецификации Gw.D
- •22. Подпрограммы
- •23. Оператор-функция
- •24. Подпрограмма function
- •Правило:
- •Правило:
- •Мини задача 1:
- •If(y1(1).Gt.Y1(2)) write(*,*)'Максимум на левой границе
- •If(y1(100).Gt.Y1(99)) write(*,*)'Максимум на правой границе
- •25. Подпрограмма subroutine.
- •Примечания:
- •26. Способы передачи данных в подпрограмму.
- •If (логическое выражение 1) return 1
- •If (логическое выражение 2) return 2
- •Примечание:
- •27. Передача данных посредством оператора common
- •Правило:
- •28. Использование библиотек стандартных программ (бсп)
- •If(ier.Eq.1) write (6,*)’Нет решения. Проверьте исходные данные’
- •If(ier.Eq.2) write (6,*)’Неверное количество уравнений’
- •29. Графическое моделирование функции
Правило:
Массивы можно описывать динамически только в подпрограммах и только в том случае, когда имя массива и его размерность находятся в списке формальных параметров. В головной программе динамически описывать массивы нельзя.
Оперативная память ЭВМ отводится динамическим массивам подпрограмм при работе головной программы. Эти массивы располагаются на месте реальных массивов, описанных в головной программе. Размерность динамического массива может меняться, но не может превосходить размерность соответствующего массива головной программы.
Задача:
Написать подпрограмму-функцию, которая описывает заданную графическую функцию и использовать эту подпрограмму-функцию для вычисления определённого интеграла, то есть площади, ограниченной этой фигурой при любых значениях выходных параметров.
Для определения значения yна этом отрезке мы использовали соотношение:
Зная значения Х1, Х2, Х3, Х4 мы сможем вычислить значения Yв любой точке.Y=f(X, X1, X2 ,X3, X4).
FUNCTION Y(X,X1,X2,X3,X4)
Y=0.
R=X3*X3
IF(ABS(X).LT.ABS(X3)) Y=X*X
IF(ABS(X).GE.ABS(X3).AND.X.LE.X4.OR.ABS(X).GE.X3.AND.X.GE.X2) Y=R
IF(X.LT.X2.AND.X.GE.X1) Y=R*(X1–X)/(X1–X2)
IF(X.GT.X4.AND.X.LE.X4+R) Y=SQRT(R*R–(X–X4)**2)
RETURN
END
Задача:
Сформировать одномерный массив численных значений функций, определённых графиком из предыдущей задачи, в пределах изменения аргумента от адоb. Массив из 100 элементов.
DIMENSION Y1(100)
Массив с именем Y нельзя использовать, так как в программе будут два одинаковых имени (массива и подпрограммы-функции), поэтому используем имя массива Y1.
WRITE (6,*)’ Введите параметры графика : X1, X2 ,X3, X4’
READ (5,*) X1,X2,X3,X4
WRITE (6,*)’Введите пределы изменения Х : A, B’
READ (5,*) A,B
DX=(B-A)/(100.–1.) Для получения правильного шага цикла, используем (100.-1.).
X=A
DO 2 I=1,100
Y1(I)=Y(X,X1,X2,X3,X4)
Идёт обращение к подпрограмме-функции Y, куда посылаются фактические параметры Х, X2, X3, X4, которые случайно совпали с описанными в FUNCTION. После каждого обращения к подпрограмме-функции мы получаем результата – одно число, которое возвращается назад в головную программу на то место, откуда осуществился вызов подпрограммы-функции и этот результат записывается в массив Y1. По окончании этого цикла (повторится 100 раз) мы имеем заполненный массив Y1, в котором содержатся значения координат Y графика в пределах от а до b.
X=X+DX
PAUSE
STOP
END
Мини задача 1:
По методу прямоугольников вычислить значение интеграла, т. е. определить площадь фигуры, описанной в предыдущем примере..
SINT=0.
DO 3 I=1,100–1
Цикл до 100-1 потому. что последняя площадь не суммируется.
SINT=SINT+Y1(I)*DX
WRITE (6,*)’Интеграл =’,SINT
Мини задача 2:
Вычислить значение интеграла, по методу трапеции.
STR=0.
DO 3 I=1,100–1
STR=STR+(Y1(I)+Y1(I+1))/2.*DX
Мини задача 3:
Найти максимальное значение элементов массива и его порядковый номер.
REAL MAX
…
MAX=Y1(1)
N=1
DO 4 I=2,100
IF(MAX.GE.Y1(I)) GO TO 4
MAX=Y1(I)
N=I
CONTINUE
Мини задача 4
Найти значения всех локальных максимумов фигуры, численные значения которой хранятся в массиве Y1.