Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфа теор вопр.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
94.22 Кб
Скачать

19. Операторные функции и их использование. Оформление операторных функций и форма обращения к ней.

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

Описание ОФ:

<имя> (а1, а2,…а(n)) = W

а1, а2,…а(n) – некие формальные параметры, или простые переменные, или переменные с индексом

W – выражение, зависящее только от const и формальных параметров. Если в выражении используются не только формальные параметры, то к моменту обращения им должны быть заданы определенные значения.

Обращение к ОФ:

<имя> (Q1, Q2,…, Q(m)) W

Q(m) – фактический параметр (реальный)

При обращении к ОФ выполняются:

1) Вычисляется значение фактических параметров

2) Полученные значения присваиваются соответствующим формальным параметрам

3) Вычисляется выражение, стоящее справа от знака присваивания и его значение присваивается имени функции. Формальные параметры и имя функции должны быть предварительно описаны.

ОФ может использоваться только в пределах того модуля, в котором она описана.

17. Операторы ввода/вывода в Фортране. Задание формата в операторах ввода/вывода. Правила использования спецификаций формата. Связь спецификации формата с элементами из списка ввода/вывода.

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

Read (n, f, ERR=m1, END=m2) (список переменных) - оператор ввода

Read f, (список переменных) – оператор ввода со стандартного потока

Write (n, f, ERR=m1, END=m2) (список переменных) - оператор вывода

Print f, (список переменных) – оператор вывода в стандартный поток

где: n – номер канала в/в; f – спецификации формата; m1 и m2 – метки операторов, на которые передается управление при ошибочном и нормальном завершении работы.

В качестве спецификации формата f может быть метка оператора Format , символьная переменная или константа.

m FORMAT (C1, C2,…, C(n))

где: m – обязательная метка оператора ; C1, C2,…, C(n) – список спецификаций формата

Правила использования спецификаций формата:

1) Каждая основная спецификация формата относится к одному элементу списка ввода – вывода в порядке следования.

2) Спецификации, разделенные запятыми, относятся к одной записи на внешнем носителе.

3) Несколько идущих подряд спецификаций, разделенных запятыми, можно заменить более короткой записью, используя повторитель (целое без знака, указывающее сколько раз нужно повторить следующую за ним спецификацию).

(S1, S1,…,S(n)) = (nS1)

4) В начале каждой записи при выводе первый символ выводимой записи интерпретируется как управляющий (управляет продвижением бумаги).

символ

действие

‘_’ 1x

Переход на начало новой строки

Пропуск строки

‘1’

Переход на следующую страницу

‘+’

Печать в той же строке (переход отсутствует)

5) Если повторяется несколько раз какая-то совокупность разных спецификаций, то запись можно сократить, объединив повторяющиеся спецификации в группы, используя повторитель.

6) В общем случае внутри оператора FORMAT, кроме внешних «форматных» скобок допускаются два уровня скобок, определяющих внутренние и внешние группы.

7) Если список ввода-вывода еще не исчерпан, а спецификации формата уже исчерпаны, то для оставшихся элементов списка ввода – вывода используется либо весь формат сначала (если в нем нет группы), либо последняя внешняя группа с учетом повторителя. При таком повторе спецификаций происходит автоматический переход к новой записи (не явный).

8) Если список ввода-вывода исчерпан, а спецификация формата еще нет, то из оставшихся спецификаций будут выполнены только все служебные спецификации, предшествующие очередной основной.

9) Когда операторы ввода-вывода выполняются заново, происходит автоматический переход к новой записи .

10) При размещении данных на внешнем носителе, нужно помнить, что при вводе в одной строке помещается 80 символов, а при выводе 120 символов.

11) Оператор Format считается неисполнимым оператором и может стоять в любом месте до END.

12) Для ввода-вывода массива нужно использовать столько спецификаций, сколько элементов в массиве, поэтому для всех элементов выбирается общая спецификация и используется повторитель.

Форматные спецификации и элементы из списка ввода-вывода сопоставляется друг другу в порядке слева направо.