- •«Информатика»
- •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. Графическое моделирование функции
29. Графическое моделирование функции
Задача:
Написать подпрограмму-функцию, которая моделирует функцию, заданную графически.
Описываем математическую модель этого графика:
Входные величины – всё то, что нам необходимо, чтобы при любом Х получить Y. В этот список включаем Х1, Х2, Х3,Y1.
С Подпрограмма
FUNCTION GRF(X,X1,X2,X3)
Y1=X2*X2
R=Y1
IF(X.LE.X1.OR.X.GT.X3+R) GRF=0.
IF(X.GT.X1.AND.X.LT.X2) GRF=Y1*(X–X1)/(X2–X1)
IF(X.LE.0.AND.X.GE.X2) GRF=X**2
IF(X.GT.0.AND.X.LT.X3) GRF=Y1
IF(X.GE.X3.AND.X.LE.X3+R) THEN
P=2.*Y1
B=(X3+R–X)**2
Q=B–R*R+Y1**2
GRF=P/2.–SQRT(P*P/4.–Q)
ELSE
END IF
RETURN
END
Используя подпрограмму-функцию, получить массив значений и построить график этой функции.
DIMENSION Y(1000)
WRITE (6,*)’Введите значения Хнач, Хкон, шаг, X1, X2, X3’
READ (5,*) XN,XK,DX,X1,X2,X3
Вычисляем количество точек
N=(XK–XN)/DX+1
Уточняем значение шага DX
DX=(XK–XN)/(N–1)
X=XN
DO 2 I=1,N
Обращаемся к подпрограмме-функции и определяем значение Y
Y(I)=GRF(X,X1,X2,X3)
WRITE (6,*)’При Х=’,X,’ Y=’,Y(I)
2 X=X+DX
CALL GRAF(Y,N)
Подпрограмма вывода графика по значениям массива Y размерностью N.
STOP
END