Информационные системы ускорителей

ВВЕДЕНИЕ В ФОРТРАН

Как пользоваться этим руководством.

Концепция данных Фортрана.

Типы и буквальные константы.

Имена (идентификаторы).

Переменные и константы.

Скаляры и массивы.

Именование данных.

Печать текста и чисел на экран.

Hello World!

Печать целых чисел.

Печать вещественных чисел.

Печать текста.

Когда format предпочтительней.

Арифметические и текстовые выражения.

Арифметические операторы и правила.

Вещественная арифметика.

Целая арифметика.

Смешанная арифметика.

Текстовые выражения.

Инициализация переменных и констант.

Оператор присваивания.

Инициализация скалярных констант.

Инициализация массивов констант.

Ввод данных с клавиатуры.

DATA-инициализация скалярных переменных.

DATA-инициализация массивов переменных.

Условные опреаторы.

Логические выражения.

Оператор IF.

Конструкция IF.

Конструкция CASE.

Циклы.

Цикл с фиксированным числом повторений.

Цикл с выходом по условию.

Пресловутый GOTO.

Неявные циклы.

Процедуры и функции.

Подпрограммы-процедуры.

Подпрограммы-функции.

Комплексный пример: сортировка массива.

Встроенные функции Фортрана.

Работа с внешними файлами.

Файловый ввод/вывод.

Открытие/закрытие файла.

Позиционирование файла.

КОГДА ОПЕРАТОР FORMAT ПРЕДПОЧТИТЕЛЬНЕЙ.

Рассмотрим таблицу характеристик гипотетического объекта "отрезок":
Объект:Отрезок; Ед. изм.: м;
Порядковый номер: 12 из 345
Нач. коорд:6.7 м; Кон. коорд:8.9 м; Длина:2.2 м;

Эту таблицу печатает программа FMTOUT, в качестве демонстрации возможностей форматного вывода.

      program FMTOUT ! ФОРМАТНЫЙ ВЫВОД ПАРАМЕТРОВ ОБЪЕКТА "ОТРЕЗОК"
      integer number, total
      real length, xmin, xmax
      character object*8, unit*2
      number = 12 ! номер объекта (из)
      total = 345 ! общего числа объектов
      object = 'Отрезок;'! имя объекта
      unit ='м;'! единица измерения
      xmin = 6.7 ! начальная точка
      xmax = 8.9 ! конечная точка
      length = xmax - xmin ! длина

c     Печать с указанием формата в операторе "print"
      print'(1x,''Объект:'',a8,'' Ед. изм.:'',a3/1x,
^^^^^a ''Порядковый номер:'',i3,'' из '',i3/1x,
     b ''Нач. коорд:'', f3.1, a3,'' Кон. коорд:'',f3.1, a3,
     c '' Длина:'',f3.1, a3)', 
     d object, unit, number, total, xmin, unit, xmax, unit, length, unit

c     Или печать с использованием оператора "format"
      print 100, object, unit, number, total, xmin, unit, xmax, unit,
     x length, unit 
  100 format(1x,'Объект:',a8,' Ед. изм.:',a3/1x,'Порядковый номер:',i3,
     y ' из ',i3/1x,'Нач. коорд:', f3.1, a3,' Кон. коорд:',f3.1, a3,
     z ' Длина:',f3.1, a3) 
      end

Текстовые константы, если они являются не самостоятельными данными, а поясняющим текстом, обычно помещают непосредственно в список спецификаций формата. Это позволяет не смешивать собственно выходные данные и вспомогательную информацию, каковой являются спецификации формата.

Поскольку при написании текстовых констант используются апострофы, то на них распространяется правило записи апострофов: если последовательность символов, заключенная в апострофы при этом сама содержит апострофы, то каждый внутренний апроф должен быть сдвоен. При этом не следует путать сдвоенный апостроф с "кавычками".

Поскольку в операторе PRINT спецификации формата заключаются во внешние обрамляющие апострофы то это влечет сдваивание всех апостофов текстовых констант, включенных в список спецификаций формата.

В операторе FORMAT спецификации формата заключены только в круглые скобки. Что исключает появление лишних апострофов и улучшает читаемость. Единственным минусом в данном случае является использование метки. Завзятым эстетам, не признающим метки, как факт программирования ни что не мешает насладиться рябью апрстрофов в безметочных конструкциях вывода данных.