Простейшим типом алгоритмов являются линейные алгоритмы, т.е. такие, в которых команды выполняются одна за другой в порядке их записи. Примером может служить расчетная задача, которая обычно предусматривает следующие шаги:
1. ввод или инициализация исходных данных расчета (известных значений, аргументов);
2. вычисление неизвестных значений (результатов);
3. вывод результатов.
Программа в таком случае обычно состоит из следующих частей:
1. заголовок;
2. описание величин (аргументов, результатов, промежуточных значений);
3. инициализация (задание известных значений переменным и константам), ввод исходных данных;
4. вычисление промежуточных значений и результатов (преобразование данных);
5. вывод результатов;
6. операторы завершения программы.
Для реализации такого алгоритма требуются следующие операторы Фортрана:
1. PROGRAM – оператор, задающий заголовок программной единице и объявляющий ее головной. Имя программы может содержать буквы и цифры и не должно совпадать с именами переменных и констант, а также библиотечных функций и других программных единиц.
|
|
2. Описание величин (описание типов данных) может быть выполнено явно и неявно (см. ниже) с помощью операторов описания типа (INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER). Такие операторы состоят обычно из описателя типа и списка имен объектов этого типа, например, REAL x, pi.
3. Инициализация может быть выполнена на этапе описания величин, а также с помощью операторов присваивания, DATA и т.п. Ввод данных в программу выполняется с помощью оператора READ. Возможности этого оператора весьма обширны (так, ввод можно организовать с клавиатуры, из файла, с внешнего устройства). Простейшие операторы служат для ввода данных с клавиатуры, например:
READ *, a,b,c
READ (*,*) a,b,c
Оба эти оператора подразумевают ввод с клавиатуры значений переменных a, b, c в соответствии с их типом. Пользователь должен в данном случае ввести три значения, отделяя их друг от друга с помощью запятой, точки с запятой, пробелов, знаков табуляции или нажимая клавишу <Enter>. Завершается ввод также нажатием <Enter>. Значения присваиваются переменным в списке в порядке их ввода (т.е. первое из введенных значений присваивается переменной а, второе – переменной b и т.д.).
4. Основным оператором преобразования данных является оператор присваивания (переменная=выражение), который задает переменной, указанной в левой части, значение выражения, приведенного в правой части.
5. Вывод данных выполняется с помощью операторов WRITE (вывод на экран, внешнее устройство или в файл) и PRINT (вывод на экран). Выводить можно значения переменных, выражений, а также текст (заключается в апострофы). Например, оператор
|
|
PRINT *, ‘sum=’, s
выведет на экран текст sum=, а затем значение переменной s.
6. Для завершения программы обычно служат операторы 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