
- •«Информатика» программирование на фортране
- •Часть 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. Вывод двухмерного массива
70% Ошибок у программистов возникает из-за несоответствия типов переменных!.
Ошибки вроде и пустяковые, но из-за них может не заработать даже абсолютно правильно составленная программа. И на устранение ошибки может уйти достаточно много времени. Обратите внимание!
Как и все программы, эта программа может быть составлена большим количеством разных способов. Приведём другой способ решения этой же задачи.
С Программа № 4 с использованием IF логического
REAL LAM Вместо описания имена LAM как вещественного типа можно задать другое имя, которое не будет начинаться на буквы I,J,K,L,M,N, например ALAM
WRITE(6,*)’Введите значения x,b’
READ(5,*) X,B
IF(X.GT.2.*B) LAM=SIN(X)
IF(X.EQ.2.*B) LAM=0.
IF(X.LT.2.*B) LAM=COS(X)
WRITE(6,*)’Вычисленное значение Лямбда=’,LAM
PAUSE
STOP
END
Лучше ещё ввести новую переменную и присвоить ей выражение 2.*В и далее использовать эту переменную:
……….
A=2.*B
IF(X.GT.A) LAM=SIN(X)
Кстати, вместо первого оператора IF(X.GT.2.*B) LAM=SIN(X) можно просто записать LAM=SIN(X) . Проанализируйте программу и убедитесь, что она будет работать правильно. Проанализируйте, что произойдет, если таким же образом заменить последний оператор IF.
Условные обозначения логических операторов на блок-схемах
If арифметический if логический
11. Табулирование функции
Табулирование функции – это вычисление какой-либо функции с аргументом, изменяющейся в каких-то пределах.
Задача:
Вычислить и напечатать все значения функции:
f=sinx2-excos2x,
если x изменяется в пределах от а до b с шагом dx.
С Программа № 5. Циклы с оператором IF.
WRITE(6,*)’Введите Xнач, Xкон, шаг цикла’
READ(5,*) XN,XK,DX
С Блок корректировки шага
N=(XK-XN)/DX+1 определяем количество вычислений на отрезке a ÷ b
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
PAUSE
STOP
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