- •«Информатика» программирование на фортране
- •Часть 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. Вывод двухмерного массива
Вычисление определенного интеграла
Задача:
Вычислить значение определённого интеграла на отрезке от a до b по методу прямоугольников.
Заменим вычисление интеграла вычислением суммы:
С Программа №8.
С Вычисление определённого интеграла по методу прямоугольников
1 Write(6,*)’Введите значения a,b,dx’
READ(5,*) A,B,DX
C Вычисляем количество точек на кривой
N=(B-A)/DX+1
DX=(B-A)/(N-1)
C Вычисление суммы
F=0.
Как всегда, перед вычислением суммы обнуляем ячейку памяти
DO 2 X=A,B–DX,DX
Конечное значение цикла берём равным B-DX для того, чтобы не вычислить большую площадь, т.к. после окончания цикла переменная цикла имеет значение, которое больше конечного значения цикла на величину шага DX.
FX=SIN(X)**2+COS(X**2)
2 F=F+FX*DX
WRITE(6,*)’Значение интеграла равно ‘,F
PAUSE
GO TO 1
STOP
END
Оператором цикла DO переменной цикла X присваивается начальное значение A. Организуются циклические вычисления в области цикла, включая оператор с меткой 2. На каждом новом цикле значение X увеличивается на величину шага DX. В области цикла сначала вычисляется значение функции FX, а затем к переменной F, в которой накапливается сумма значений локальных интегралов, прибавляется значение функции, умноженное на DX. Вычисления будут проводиться до достижения переменной цикла X значения B-DX. В последний раз к F прибавится FX*DX (последняя площадка) и в области цикла вычисления завершатся.
Чем меньше величина шага DX, тем выше точность вычисления интеграла.
Задача 2:
Вычислить значение предыдущего интеграла, методом трапеции, который более точный.
Решение:
Вычислим все значения функции F(x) и запомним их в массиве.
Распечатаем все значения функции при соответствующем аргументе.
Вычислим значение суммы для получения значения интеграла по методу трапеции.
С Программа №9
С Вычисление определённого интеграла по методу трапеции
DIMENSION FX(1000)
Задаем размерность массива заведомо большую, чем возможное количество вычислений функции
WRITE(6,*)’Введите значения величин A,B,DX’
READ(5,*) A,B,DX
N=(B-A)/DX+1 Количество вычислений на отрезке
DX=(B-A)/(N-1) Уточненное значение шага
С Вычисляем значения массива
X=A Задаем начальное значение аргументу Х
DO 2 I=1,N
FX(I)=SIN(X)**2+COS(X**2) Формируем массив значений функции
WRITE(6,*)’При Х=’,X,’ значение функции равно ’,FX(I)
2 X=X+DX Задаем приращение аргумента
C Вычисление интеграла по формуле трапеции
F=0. Обнуляем ячейку памяти для накопления суммы
DO 1 K=1,N-1 Обратите внимание на количество циклов
F=F+(FX(K)+FX(K+1))/2.*DX
1 CONTINUE
WRITE(6,*)’Значение интеграла равно ’,F
PAUSE
STOP
END
14. Работа с одномерными массивами Ввод массивов
Предположим, что в программе описаны массивы:
DIMENSION A(10),B(10),C(20),D(4,3)
Существуют несколько способов ввода массивов:
Первый способ ввода массивов:
READ(5,*) A
Означает ввести все числовые значения массива А в том количестве, сколько их описано в операторе DIMENSION.
Недостатки такого ввода:
необходимо вводить числа до тех пор, пока массив не заполнится;
если вводятся несколько массивов, то сначала полностью заполнится первый массив, затем без предупреждения будут заполняться остальные массивы:
программа не начнёт выполняться, пока не будут введены все элементы массивов.
Достоинство: Самый простой способ записи ввода массивов.
Числа с клавиатуры можно вводить:
в строчку – через пробел или запятую;
нажимая «Enter» после каждого введённого числа.
Если имеется массив из 10 элементов, а при вводе в строке будет введено больше 10 элементов, то ЭВМ проигнорирует все лишние числа. Если же, наоборот, будет введено меньше 10 элементов, то ЭВМ будет ожидать ввода остальных чисел.