Пример разработки программы
Простейшим типом алгоритмов являются линейные алгоритмы, т.е. такие, в которых команды выполняются одна за другой в порядке их записи. Примером может служить расчетная задача, которая обычно предусматривает следующие шаги:
ввод или инициализация исходных данных расчета (известных значений, аргументов);
вычисление неизвестных значений (результатов);
вывод результатов.
Программа в таком случае обычно состоит из следующих частей:
заголовок;
описание величин (аргументов, результатов, промежуточных значений);
инициализация (задание известных значений переменным и константам), ввод исходных данных;
вычисление промежуточных значений и результатов (преобразование данных);
вывод результатов;
операторы завершения программы.
Для реализации такого алгоритма требуются следующие операторы Фортрана:
PROGRAM – оператор, задающий заголовок программной единице и объявляющий ее головной. Имя программы может содержать буквы и цифры и не должно совпадать с именами переменных и констант, а также библиотечных функций и других программных единиц.
Описание величин (описание типов данных) может быть выполнено явно и неявно (см. ниже) с помощью операторов описания типа (INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER). Такие операторы состоят обычно из описателя типа и списка имен объектов этого типа, например, REAL x, pi.
Инициализация может быть выполнена на этапе описания величин, а также с помощью операторов присваивания, DATA и т.п. Ввод данных в программу выполняется с помощью оператора READ. Возможности этого оператора весьма обширны (так, ввод можно организовать с клавиатуры, из файла, с внешнего устройства). Простейшие операторы служат для ввода данных с клавиатуры, например:
READ *, a,b,c
READ (*,*) a,b,c
Оба эти оператора подразумевают ввод с клавиатуры значений переменных a,b,c в соответствии с их типом. Пользователь должен в данном случае ввести три значения, отделяя их друг от друга с помощью запятой, точки с запятой, пробелов, знаков табуляции или нажимая клавишу <Enter>. Завершается ввод также нажатием <Enter>. Значения присваиваются переменным в списке в порядке их ввода (т.е. первое из введенных значений присваивается переменной а, второе – переменной b и т.д.).
Основным оператором преобразования данных является оператор присваивания (переменная=выражение), который задает переменной, указанной в левой части, значение выражения, приведенного в правой части.
Вывод данных выполняется с помощью операторов WRITE (вывод на экран, внешнее устройство или в файл) и PRINT (вывод на экран). Выводить можно значения переменных, выражений, а также текст (заключается в апострофы). Например, оператор
PRINT *, ‘sum=’, s
выведет на экран текст sum=, а затем значение переменной s.
Для завершения программы обычно служат операторы STOP и END. Оператор STOP прерывает выполнение программы и поэтому в конце программы не является обязательным (после выполнения последней команды работа процессора с программой и так будет завершена). Оператор END не является исполняемым, но обозначает конец программной единицы, поэтому его наличие в конце текста программы обязательно.
Приведем пример текста программы (с комментариями), которая обеспечивает чтение с клавиатуры значений целых переменных х и у, вычисление их суммы s и произведения р и вывод результатов на экран:
Program example1 !задается заголовок программы – example1
Integer x,y,s,p !переменные x,y,s,p описываются как целые
Read *, x,y !чтение с клавиатуры значений х и у
s=x+y; p=x*y !вычисление суммы и произведения х и у
write (*,*)’s=’,s,’p=’,p !вывод на экран имен и значений s и р
end example1 !конец программы example1