Цикл довузовской подготовки кафедры ЭФУ

ЛАБОРАТОРНЫЙ ПРАКТИКУМ:
«ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ»

СТРУКТУРА ПРАКТИКУМА

ВВЕДЕНИЕ

ВАЖНАЯ ИНФОРМАЦИЯ

1. ПРАВИЛА ЗАПИСИ ПРОГРАММЫ

1. Набор символов Фортрана

2. Форматы записи программы

3. Фиксированный формат

4. Свободный формат

2. ТРАНСЛЯЦИЯ ПРОГРАММЫ

1. Программа в одном исходном файле

2. Трансляция исходного файла

3. Трансляция нескольких исходных файлов

4. Трансляция модулей

3. КОНЦЕПЦИЯ ДАННЫХ ЯЗЫКА ФОРТРАН

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

2. Понятие типа

3. Буквальные константы

4. Разновидности типов и диапазоны значений

5. Скалярные переменные и константы

6. Массивы

7. Производные типы данных

4. ВЫРАЖЕНИЯ И ПРЕОБРАЗОВАНИЕ ТИПОВ

1. Скалярное присваивание

2. Арифметика Фортрана

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

4. Работа с текстовыми строками

5. Операции с массивами

5. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ

1. Условный оператор и конструкция IF

2. Оператор варианта – конструкция CASE

3. Циклы – разновидности конструкции DO

4. Оператор GO TO

6. ВВОД/ВЫВОД ДАННЫХ

1. Простейшие операции ввода/вывода

2. Форматный ввод/вывод данных

3. Ввод/вывод массивов в неявных циклах

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

7. ПРОГРАММНЫЕ КОМПОНЕНТЫ И ЭЛЕМЕНТЫ ООП

1. Структура программных компонентов

2. Внешние подпрограммы

3. Внутренние подпрограммы

4. Модули как библиотеки производных типов

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

ЗАДАЧИ ДЛЯ ПРОГРАММИРОВАНИЯ

1.3 Фиксированный формат

Фиксированный формат записи программы на Фортране определяется следующими правилами:

1. Каждая строка программы рассматривается как последовательность символьных позиций с 1-й по 72-ю. Символы после 72 позиции строки имеют служебные функции, по отношению к операционной системе и не обрабатываются компилятором. При этом операторы программы записываются в позициях с 7-й по 72-ю (Пример 1.3) по одному оператору в строке.


Пример 1.3. Нумерация текстовых полей фиксированном формате

1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80	
^^^^^^PROGRAM HELLO
^^^^^^PRINT*, ′HELLO, WORLD′
^^^^^^END
	

Для новичков важно отметить, что фраза ′HELLO, WORLD′ заключена в одиночные апострофы. На стандартной клавиатуре одиночный апостроф расположен на одной клавише с кавычками (на стандартной русифицированной клавиатуре там же обычно находится буква «Э»). Не стоит искать одиночный апостроф на одной клавише с «волной» (символ «~») и буквой «Ё» в левом верхнем углу клавиатуры.

2. Пробелы не значимы, за исключением работы с текстовыми данными (например, текст “HELLO^WORLD” – Пример 1.4 или “HELLO^^WORLD” и т.д.).


Пример 1.4. Запись программы без пробелов>

1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80

^^^^^^PROGRAMHELLO
^^^^^^PRINT*,′HELLO,^WORLD′
^^^^^^END
	

Пробелы служат только для улучшения читаемости текста человеком и полностью игнорируются при компиляции программы (учитываются только как значимые символы текстовых строк). С точки зрения логики компилятора Фортрана программы нижеследующих примеров (Пример 1.5, 1.6) полностью эквивалентны как между собой, так и с программами из всех ранее приведенных примеров.


Пример 1.5. Запись программы с произвольной расстановкой пробелов

1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80

^^^^^^PROG^^RAMHEL^LO
^^^^^^P^R^I^N^T*,′HELLO,^WORLD′
^^^^^^EN^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D
	

3. Программа на Фортране может содержать комментарии – произвольный пояснительный текст. Латинская буква «C» (строчная или прописная) а также «*» (звездочка) в первой позиции строки маркирует всю строку как строку комментария (Пример 1.6). Соответственно, компилятор, найдя такую строку, просто не обрабатывает ее. Комментарий может быть записан уже со второго символа и располагается в любом месте текста программы между операторами.

Типичной ошибкой, связанной с написанием комментариев, является использование русской «Эс» вместо латинской «Cи». Ситуация объясняется (и усугубляется) тем, что совпадает не только изображение символов, но также их расположение на клавиатуре. Оба символа «Эс» и «Си» располагаются на одной клавише – на это следует обратить особое внимание.


Пример 1.6. Текст программы с комментариями

1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80 C ЭТО ТЕКСТ ПРОГРАММЫ c HELLO * С КОММЕНТАРИЕМ ^^^^^^PROGRAM HELLO ^^^^^^PRINT*, ′HELLO, WORLD′ ^^^^^^END

4. Оператор Фортрана может быть достаточно длинным и не уместиться с 7 по 72 позицию, поэтому необходим механизм для продолжения оператора на следующей строке. Для этого в 6-й позиции следующей строки печатается любой символ из алфавита Фортрана отличный от нуля или пробела, например – единица, двойка и т.д. (Пример 1.7).


Пример 1.7. Запись программы с продолжениями строки

1^^^^67^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80 ^^^^^^PROGRAM ^^^^^1^^^^^^^^^^^HEL ^^^^^2^^^^^^^^^^^LO ^^^^^^PRINT*, ′HELLO, WORLD′ ^^^^^^END

Всего, в соответствии со стандартом, допускается до 19-ти строк продолжения одного оператора.

5. Позиции строки с 1-й по 5-ю используются для записи меток, представляющих собой целые числа от 0 или 00000 до 99999. Начальные нули меток не являются значащими (Пример 1.8).


Пример 1.8. Запись программы с использованием меток

1^^^5^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^^^^^^^^^^...72^^^^^80

^^^^^^PROGRAM HELLO
^^^^^^PRINT 10
^^010^FORMAT (′HELLO, WORLD′)
^^^^^^END