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.
2 X=X+DX
PAUSE
STOP
END
Мини задача 1:
По методу прямоугольников вычислить значение интеграла, т. е. определить площадь фигуры, описанной в предыдущем примере..
SINT=0.
DO 3 I=1,100–1
Цикл до 100-1 потому. что последняя площадь не суммируется.
2 SINT=SINT+Y1(I)*DX
WRITE (6,*)’Интеграл =’,SINT
Мини задача 2:
Вычислить значение интеграла, по методу трапеции.
STR=0.
DO 3 I=1,100–1
3 STR=STR+(Y1(I)+Y1(I+1))/2.*DX
Мини задача 3:
Найти максимальное значение элементов массива и его порядковый номер.
Дата добавления: 2015-06-10; просмотров: 807;