- •Введение
- •Часть 1. Базовые вычислительные процессы и их реализация на языке Фортран
- •Тема 1. Алгоритм и его свойства. Основные понятия языка Фортран. Арифметические и логические выражения. Разработка и реализация программ с линейной структурой
- •1.1 Алгоритм и его свойства.
- •1.2 Основные понятия языка Фортран
- •1.3 Арифметические и логические выражения
- •1.3.1 Арифметические выражения
- •1.4 Структура программы языка Фортран. Основные операторы программы с линейной структурой
1.4 Структура программы языка Фортран. Основные операторы программы с линейной структурой
Программа на Фортране состоит из главной программы и, возможно, некоторого числа подпрограмм. Первым оператором главной программы является её заголовок PROGRAM. За ним следует имя программы:
PROGRAM ИМЯ_ПРОГРАММЫ
Имя программы обязательно начинается с буквы, затем могут идти буквы, цифры и символы подчеркивания, например:
PROGRAM SUMMATION
PROGRAM QUADRATIC_EQUATION_SOLVER45
Максимальная длина любого имени в программах на Фортране - 31 символ. Заключительный оператор главной программы может иметь также следующий вид:
END PROGRAM ИМЯ_ПРОГРАММЫ
ИМЯ_ПРОГРАММЫ является необязательной частью оператора.
После заголовка следуют описания переменных, констант, меток, подпрограмм и других объектов, используемых в программе. Эта ее часть называется разделом описаний (или неисполняемых операторов). После раздела описаний следует раздел исполняемых операторов. Процесс создания проекта приведен в приложении Б.
При обработке информации программой выполняется три основных блока:
-
ввод исходных данных;
-
обработка данных согласно алгоритму;
-
вывод результата из программы.
Пример:
Program itit
Integer :: a=10, b=20
End program init
Оператор Program задает имя программы. Оператор End обозначает окочание программы.
Вторая строка в программе означает, что переменные целого типа a и b содержат значения 10 и 20.
Пример. Программа сложения двух целых чисел:
Program sum
Integer a,b,c
A=100
B=20
C=a+b
End program sum
В программе описаны три переменные целого типа. Чтобы поместить в переменные определенные значения, используется оператор присваивания, который записывается как знак =. Его следует отличать от математического знака равно, который в Фортране используется как логический оператор для сравнения двух величин и обозначается = =. В данном случае a=100 означает, что переменной а присвоили значение 100. Таким образом, в переменных a и b будут храниться числа 100 и 20. Далее переменной присваивается сумма значений переменных a и b, то есть в с будет значение 120.
Для ввода данных в программу извне, а так же для вывода результатов за пределы программы из ячеек памяти используются операторы ввода/вывода.
Оператор ввода read (читать).
Integer a
Read (*,*), a
При выполнении этого фрагмента программы на черном экране будет мигать курсор, в ожидании ввода с клавиатуры целого числа. После ввода число будет записано в переменную a. При попытке ввода значения другого типа компилятор сообщит об ошибке.
Операторы вывода Print (печатать) и Write(писать) служат для вывода на экран информации.
В приведенном ниже примере оба оператора выводят на экран приветствие Hello!. Заключение приветствия в одинарные кавычки показывает что выводит значение символьного типа. Внутри кавычек могут быть любые символы, которые в точности будут выведены на экран.
Print*, ‘Hello!’
Write(*,*),‘Hello!’
Можно улучшить вывод, если воспользоваться средствами форматирования. Для этого вместо звездочки в операторе Print и вместо второй звездочке в операторе Write указывается спецификация формата вывода. Спецификация формата – это набор дескрипторов преобразования, заключенных в ‘()’.
Основные дескрипторы:
А – вывод символов;
$ - запрет перехода на следующую строку;
/ - переход на следующую строку;
// - пропуск строки;
Nx – вывод n пробелов.
In – выделение n позиций для вывода целого числа
Fk.n – выделение k позиций для вывода вещественного числа, из которых n отводится на количество знаков после запятой
Ek.n – выделение k позиции под вывод числа в экспоненциальной форме. Из них 4 выделяется по показатель десятичной экспоненты, степень и знак степени (например e+04), 1 под точку, 1 под знак и n под дробную часть.
An - выделение n позиций для вывода строки символов
Ka – вывод k строк.
L – вывод логического значении T (true - истина) F (false - ложь).
Если при выводе числовой информации отвести меньшее количество символов, то будут выведены звездочки. Символьная информация в этом случае будет обрезана до указанного размера. В случае выделения большего места чем необходимо, то оставшееся место будет заполнено пробелами.
Например:
Write(*,’(a3)’), ‘Hello!’
На экране:
Hel
Write(*,’(a10)’), ‘Hello!’
На экране (^ - обозначен пробел):
^^^^ Hello!
Write(*,’(L)’), 5>3
На экране
T
Если спецификация формата часто повторяется, то ее рекомендуется записывать отдельно при помощи оператора format (формат). Ссылка на формат осуществляется при помощи числовой метки, например:
Write(*,100), ‘Hello!’
100 format(a10)
