ВВЕДЕНИЕ В ФОРТРАН
Как пользоваться этим руководством.
Концепция данных Фортрана.
Типы и буквальные константы.
Имена (идентификаторы).
Переменные и константы.
Скаляры и массивы.
Именование данных.
Печать текста и чисел на экран.
Hello World!
Печать целых чисел.
Печать вещественных чисел.
Печать текста.
Когда format предпочтительней.
Арифметические и текстовые выражения.
Арифметические операторы и правила.
Вещественная арифметика.
Целая арифметика.
Смешанная арифметика.
Текстовые выражения.
Инициализация переменных и констант.
Оператор присваивания.
Инициализация скалярных констант.
Инициализация массивов констант.
Ввод данных с клавиатуры.
DATA-инициализация скалярных переменных.
DATA-инициализация массивов переменных.
Условные опреаторы.
Логические выражения.
Оператор IF.
Конструкция IF.
Конструкция CASE.
Циклы.
Цикл с фиксированным числом повторений.
Цикл с выходом по условию.
Пресловутый GOTO.
Неявные циклы.
Процедуры и функции.
Подпрограммы-процедуры.
Подпрограммы-функции.
Комплексный пример: сортировка массива.
Встроенные функции Фортрана.
Работа с внешними файлами.
Файловый ввод/вывод.
Открытие/закрытие файла.
Позиционирование файла.
КОНСТРУКЦИЯ CASE.
Конструкция CASE поддерживается только Фортраном-90 или компиляторами ФОРТРАН-77 с расширенными возможностями.
program DETECTSYM
character SYMBOL
read*, SYMBOL
c Классификация введенного символа.
select case (SYMBOL)
case('-','+','/','*')
print*,'Арифметический оператор'
case('0':'9')
print*,'Цифра'
case default
print*,'Неизвестный символ'
end select
end
Подобно конструкции IF конструкция CASE позволяет выполнять тот или иной блок операторов, в зависимости от определенного условия. Условие определяется значением выражения дискретного типа, которое указывается в качестве параметра строки SELECT CASE, являющейся первой строкой конструкции.
Далее следуют CASE-блоки. Каждый CASE-блок состоит из CASE-строки и относящихся к ней операторов. В CASE-строке указываются значения, которые может принимать выражение из SELECT CASE-строки. Эти значения могут задаваться списком, диапазоном либо комбинировано (диапазон, как элемент списка). При этом диапазоны "case"-блоков одной "case"-конструкции не должны пересекаться.
В программе DETECTSYM приводится пример задания значений списком и закрытым диапазоном, а в программе SUBSTEMP значения задаются как закрытым, так и открытым диапазоном.
Диапазон открытый слева аналогичен логическому отношению "меньше либо равно", задается значением правой границы и "двоеточием" слева.
Диапазон открытый справа аналогичен логическому отношению "больше либо равно", задается значением левой границы и "двоеточием" справа.
program SUBSTEMP
c Состояние субстанции как функция температуры.
integer TEMPERATURE, ABSNUL, FLAME
parameter(ABSNUL = -273, ICE = 0, FLAME = 1000000)
read*, TEMPERATURE
select case (TEMPERATURE)
case(:-274)
print*,'Давно замерзло все, что можно'
case(ABSNUL:ICE)
print*,'Лед'
case(FLAME:)
print*,'Пламень'
case default
print*,'Слякоть'
end select
end
Конструкция CASE может содержать не обязательный CASE-блок, начинающийся строкой CASE DEFAULT. В этот блок входят опрераторы, выполняемые, если все прочие CASE-блоки не сработали. Этот блок не обязательно должен быть последним.