- •«Информатика» программирование на фортране
- •Часть 1
- •От автора
- •Содержание
- •1. Константы
- •2. Типы констант
- •3. Переменные
- •4. Типы переменных
- •5. Операторы описания
- •6. Арифметические операции Операции по приоритету:
- •7. Расположение текста программы на экране дисплея
- •Правила набора текста программ:
- •Правило:
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8. Технология прохождения фортран – программ на эвм
- •Технология прохождения фортран – программ на эвм
- •9. Арифметический оператор if
- •If(арифметическое выражение) m1, m2, m3
- •Примечание:
- •Правило:
- •Оператор, следующий после if арифметического должен иметь метку;
- •If арифметический не может быть последним оператором в цикле do.
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8 Write(6,*)’ Площадь треугольника равна нулю’
- •9 Write(6,*)’ Такой треугольник не существует’
- •10. If логический
- •If(логическое выражение) выполняемый оператор
- •70% Ошибок у программистов возникает из-за несоответствия типов переменных!.
- •Условные обозначения логических операторов на блок-схемах
- •If арифметический if логический
- •11. Табулирование функции
- •12. Оператор цикла do
- •Внимание:
- •Примечание:
- •3 Write(6,*)’Введите переменные a,b,c’
- •13. Массивы
- •Примечание:
- •Вычисление определенного интеграла
- •1 Write(6,*)’Введите значения a,b,dx’
- •14. Работа с одномерными массивами Ввод массивов
- •Первый способ ввода массивов:
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •15. Вывод массивов Первый способ вывода массива
- •Второй способ вывода массива:
- •Третий способ вывода массива:
- •Четвёртый способ вывода массива:
- •Способ вывода массива в два столбца:
- •Фрагменты задач с одномерными массивами
- •If(b.Eq.K) write(6,*)’ Число m является чётным’
- •Сортировка массива
- •Второй способ сортировки массива:
- •16. Конструкция if then–else if then–else – end if
- •If (логическое выражение 1) then
- •Правила:
- •Примечания:
- •17. Оператор data
- •Правило:
- •По очерёдности следования
- •По типу данных.
- •Правило:
- •18.Работа с двухмерными массивами
- •19. Ввод двухмерного массива
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •Четвертый способ ввода массивов:
- •Фрагменты задач с двухмерными массивами
- •20. Вывод двухмерного массива
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(6,*) I,M
. . .
Оператор цикла DO работает следующим образом:
1). Переменной цикла 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).
Начиная с версии ФОРТРАН–77 в качестве переменной цикла можно использовать переменные вещественного типа. Например :
DO 7 X=XN , XK , DX
...
7 WRITE(*,*) X , Y
Примечание:
Оператор цикла DO не предусматривает корректировку шага DX.
Задача:
По введенному значению n вычислить n! (факториал от n) и вычислить сумму квадратов, используя оператор цикла DO.
C Программа №6. Вычисление суммы и факториала от N
WRITE(6,*)’Введите 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(6,*)’Сумма S=’,S,’ факториал =’,P
PAUSE
STOP
END
Вычисление суммы работает следующим образом:
Переменной S присваивается значение ноль. Затем по циклу к переменной S прибавляется величина i2 за каждый проход по циклу.
Для вычисления произведения или факториала сначала переменной Р присваивается значение 1. Затем в цикле Р умножается на I и результат записывается в Р.
Примечание: Если величина шага в операторе цикла DO равна единице, то шаг можно не указывать.
Задача:
Найти все значения функции ,если x изменяется в пределах: X=XH XK c шагом dx. Определить максимальное и минимальное значения.
Если значение <0, то результат вывести в левой части экрана, а если >0 – в правой части.
C Программа №7. Максимум и минимум функции