- •1. Константы
- •2. Типы констант
- •3. Переменные
- •4. Типы переменных
- •5. Операторы описания
- •6. Арифметические операции
- •7. Расположение текста программы на экране дисплея
- •4 Write (*,*) ’ Введите значения сторон треугольника a, b, c ’
- •9. Арифметический оператор if
- •8. Технология прохождения фортран – программ на эвм
- •Оператор, следующий после if арифметического должен иметь метку;
- •If арифметический не может быть последним оператором в цикле do.
- •4 Write (*,*) ’ Введите значения сторон треугольника a, b, c ’
- •8 Write (*,*) ’ Площадь треугольника равна нулю ’
- •9 Write (*,*) ’ Такой треугольник не существует ’
- •10. If логический
- •11. Табулирование функции
- •12. Оператор цикла do
- •3 Write(6,*)’Введите переменные a,b,c’
- •13. Массивы
- •Работа с массивами
- •14. Ввод массивов
- •15. Вывод массивов
- •16. Конструкция if then–else – end if
- •17. Оператор data
- •По очерёдности следования;
- •По типу данных;
- •Количество переменных не должно превышать количество констант
- •19. Ввод двумерного массива
- •20. Оператор format
- •20.1. Спецификация X
- •20.2. Спецификация I
- •20.3 Разделители
- •20.4. Формат f
- •20.5 Использование повторителей в операторе format
- •20.6 Вывод по спецификации Fw.D
- •20.8. Вывод информации по спецификации Еw.D
- •20.8 Ввод и вывод информации по спецификации Gw.D
- •Подпрограммы
- •21. Оператор-функция
- •22. Подпрограмма-функция (function)
- •23. Подпрограмма subroutine.
- •24. Способы передачи данных в подпрограмму.
- •If (логическое выражение 1) return 1
- •If (логическое выражение 2) return 2
- •25. Передача данных посредством оператора common
11. Табулирование функции
Табулирование функции – это вычисление какой-либо функции с аргументом, изменяющейся в каких-то пределах.
Задача: Вычислить и напечатать все значения функции: f=sinx2-excos2x, если x изменяется в пределах от а до b с шагом dx.
С Программа № 5. Циклы с оператором IF.
WRITE(6,*)’Введите Xнач, Xкон, шаг цикла’
READ(5,*) XN,XK,DX
С Блок корректировки шага
N=(XK-XN)/DX+1 !
определяем
количество точек на отрезке
DX=(XK-XN)/(N-1) ! вычисляем шаг
C Переменной цикла присваиваем начальное значение
X=XN
C Вычисляем значение функции
11 F = SIN(X*X)–EXP(X)*COS(X)**2
У показателя степени 2 точку ставить нельзя, т.к. нельзя возвести отрицательное число в вещественную степень.
С Выводим результат вычисления на экран
WRITE(6,*)’При Х=’,X,’ значение функции равно’,F
Выводим на экран значение аргумента Х и соответствуюшее ему значение функции F.
C Задаём приращение аргумента
X=X+DX
С Проверяем условие повторения цикла
IF(X.LE.XK) GO TO 11
END
Для организации цикла с помощью оператора IF мы сделали:
1) Х присвоили XN: X=XN
2) Вычислили значения F в области цикла: F=SIN(X*X)–EXP(X)*COS(X)**2
3) Увеличили значение аргумента на величину шага цикла: X=X+DX
4) С помощью IF логического проверили условие повторения цикла:
IF ( X.LE.XK ) GO TO 11
При вычислении значений этой функции например при Х изменяющемся от 1 до 10 с шагом 2, текущее значение Х будет равно 1,3,5,7,9, т.е. не будет получено последнее значение функции на заданном отрезке. Поэтому в программе и применяется блок корректировки шага. Количество вычислений на на отрезке будет N=(10-1)/2+1=5 (целое число). Новое, уточненное значение DX будет равно (10-1)/(5-1)=2.25
12. Оператор цикла do
Оператор DO предназначен для создания циклов, обеспечивающих многократное выполнение группы операторов в программе.
Оператор DO по сравнению c IF является более мощным инструментом для организации циклов. Форма записи следующая:
DO m i = i1, i2, i3
где m – метка оператора, являющегося последним в области цикла DO;
i – переменная цикла, изменяющаяся от начального значения i1 до конечного значения i2 с шагом i3.
Пример:
DO
8 I = 1, 13, 2
M = I * I область цикла
8 WRITE (5,*) I, M
Оператор цикла DO работает следующим образом:
переменной цикла i присваивается начальное значение i1, затем выполняются все операторы в области цикла, включая и последний с меткой m. Затем к величине переменной i прибавляется величина шага i3 и полученное новое значение переменной цикла сравнивается с конечным значением i2. Если новое значение переменной цикла больше чем значение i2, то осуществляется выход из цикла и выполнение передаётся оператору, следующему после метки m. Если значение переменной цикла i меньше, чем i2, то повторяется вычисление в области цикла, начиная с оператора, следующего после DO.
ВНИМАНИЕ:
После окончания цикла переменная цикла сохраняет всегда значение большее, чем конечное значение цикла i2. В случае выхода из цикла до его завершения переменная сохранит свое текущее значение.
В качестве оператора, являющегося последним в цикле DO, предпочтительнее ставить оператор CONTINUE, который не выполняет никаких действий, а просто показывает, что на нём закончился цикл.
Оператор CONTINUE чаще всего является последним оператором цикла DO в тех случаях, когда последним оператором цикла DO может оказаться один из операторов: IF (арифметический), PAUSE, STOP или другой управляющий оператор.
Пример:
. . .
DO 4 I = 1, 8, 2
X = X + 2.
. . .
IF (X) 4, 2, 3
Так как последним оператором тела DO не может быть арифметический оператор IF
4 CONTINUE
. . .
Если шаг цикла сделать отрицательным, а начальное и конечное значение положительным, то произойдёт зацикливание программы до переполнения разрядной сетки ЭВМ (-32767).
В качестве переменной цикла можно использовать переменные вещественного типа. Например:
DO 7 X=XN , XK , DX
...
7 WRITE(*,*) X , Y
Примечание: оператор цикла DO не предусматривает корректировку шага DX.
Задача. По введенному значению n вычислить n! (факториал от n) и вычислить сумму квадратов, используя оператор цикла DO.
C Программа №6. Вычисление суммы и факториала от N
WRITE (5,*) ’ Введите N ’
READ (5,*) N
C Вычисление суммы N
S=0.
При вычислении суммы необходимо обнулять ячейку памяти (в данном случае S), так как может оказаться, что эта переменная уже имеет некоторое значение и в результате решение будет неправильным.
DO 2 I = 1, N
S=S+I**2
2 CONTINUE
C Вычисление факториала
P=1.
DO 3 I = 1, N
3 P=P*I
C Вывод результата
WRITE (5,*) ’ Сумма S= ’, S , ’ факториал = ’, P
END
Вычисление суммы работает следующим образом: переменной S присваивается значение ноль. Затем по циклу к переменной S прибавляется величина i2 за каждый проход по циклу.
Для вычисления произведения или факториала сначала переменной Р присваивается значение 1. Затем в цикле Р умножается на I и результат записывается в Р.
Примечание: Если величина шага в операторе цикла DO равна единице, то шаг можно не указывать.
Задача.
Найти все значения функции
,если
Х изменяется в пределах: X
= XH
XK
c
шагом dx.
Определить максимальное и минимальное
значения. Если значение
<0,
то результат вывести в левой части
экрана, а если
>0
– в правой части.
C Программа №7. Максимум и минимум функции
