ВВЕДЕНИЕ В ФОРТРАН
Как пользоваться этим руководством.
Концепция данных Фортрана.
Типы и буквальные константы.
Имена (идентификаторы).
Переменные и константы.
Скаляры и массивы.
Именование данных.
Печать текста и чисел на экран.
Hello World!
Печать целых чисел.
Печать вещественных чисел.
Печать текста.
Когда format предпочтительней.
Арифметические и текстовые выражения.
Арифметические операторы и правила.
Вещественная арифметика.
Целая арифметика.
Смешанная арифметика.
Текстовые выражения.
Инициализация переменных и констант.
Оператор присваивания.
Инициализация скалярных констант.
Инициализация массивов констант.
Ввод данных с клавиатуры.
DATA-инициализация скалярных переменных.
DATA-инициализация массивов переменных.
Условные опреаторы.
Логические выражения.
Оператор IF.
Конструкция IF.
Конструкция CASE.
Циклы.
Цикл с фиксированным числом повторений.
Цикл с выходом по условию.
Пресловутый GOTO.
Неявные циклы.
Процедуры и функции.
Подпрограммы-процедуры.
Подпрограммы-функции.
Комплексный пример: сортировка массива.
Встроенные функции Фортрана.
Работа с внешними файлами.
Файловый ввод/вывод.
Открытие/закрытие файла.
Позиционирование файла.
ЦИКЛ С ФИКСИРОВАННЫМ ЧИСЛОМ ПОВТОРЕНИЙ.
Наиболее часто циклы с фиксированным числом повторений используются для накопления сумм или произведений, как в программе CUMULAT, либо для вычисления значений или перестановки элементов массивов, как в программе TRNSPMTRX. В Фортране циклы с фиксированным числом повторений реализуются конструкцией DO.
program CUMULAT
parameter(N=5)
integer FCTR
dimension ARR(N)
data ARR /-1.2, 3.4, -5.6, 7.8, -9./
c Произведение всех целых чисел от 1 до N (факториал)
FCTR = 1
do 10 i = 1, N
FCTR = FCTR*i
10 continue
c Сумма четных целых чисел от 1 до N
ISUM = 0
do i = 0, N, 2
ISUM = ISUM + i
enddo
c Сумма элементов нерегулярной последовательности,
c записанной в массив ARR
SUM = 0.
do i = 1, N
SUM = SUM + ARR(i)
enddo
print*, FCTR, ISUM, SUM
end
Конструкция DO обеспечивает изменение значения целой переменной, называемой параметром цикла, в заданных пределах и с заданным шагом. Для каждого значения переменной цикла выполняется блок операторов, называемый телом цикла.
В ФОРТРАНЕ-77 Цикл начинается DO-строкой, в которой, после ключевого слова DO, сначала указывается метка последнего оператора тела цикла, а затем преременная цикла. Переменной цикла присваивается начальное значение, а за тем, через запятую указываются конечное значение и шаг изменения. Далее следует тело цикла, завершающееся оператором, помеченным меткой, указанной в DO-строке. Как правило меткой помечается "пустой" (не вызывающий какого-либо действия) оператор CONTINUE.
Стандарт Фортран-90 и большинство современных компиляторов ФОРТРАН-77 поодерживают безметочную конструкцию DO. В этом случае метка в DO-строке отсутствует, а тело цикла завершается ENDDO-строкой.
program TRNSPMTRX
c Транспонирование матрицы
c (строки становятся столбцами, а столбцы - строками)
parameter( N = 2 )
real MATRIX(N,N)
read*,((MATRIX(i,j), j = 1,n), i= 1,n)
print*, 'Исходная матрица'
print'(2f5.1)',((MATRIX(i,j), j = 1,n), i= 1,n)
do i = 1, n
do j = 1, i
SAVE = MATRIX(i,j)
MATRIX(i,j) = MATRIX(j,i)
MATRIX(j,i) = SAVE
enddo
enddo
print*, 'Транспонированная матрица'
print'(2f5.1)',((MATRIX(i,j), j = 1,n), i= 1,n)
end
Тело цикла может содержать произвольное число циклов и условных конструций при условии их взаимного непересечения.