Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
W-10_Fort_68_стр_10г..doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.18 Mб
Скачать

1.3.6 Метки операторов

Обычно операторы программы выполняются последовательно друг за другом, т.е. после выполнения первого оператора выполняется второй, следующий за первым, после выполнения второго – выполняется третий и т.д. Такой порядок выполнения операторов называется естественным. Во многих случаях возникает необходимость нарушения естественного порядка вычислений. В таком случае следует указать оператор, который следует выполнить, пропустив ряд операторов, или, наоборот, вернувшись ближе к началу программы. Чтобы такое действие стало возможным оператор необходимо пометить.

Метка – это номер строки с оператором. Она состоит не более чем из четырех цифр, расположенных в строго отведенных позициях любой строки: со 2-й по 5-ю включительно. Метки выбираются программистом произвольно. Операторы, имеющие метку, называются помеченными. Правила присвоения меток:

1. Оператору можно присвоить только одну метку.

2. Две метки, отличающиеся ведущими нулями, считаются одинаковыми. Например,

метки 01, 0001, 1 – одинаковы.

3. Два оператора в одном программном модуле не должны иметь одинаковые метки.

4. Не обязательно расположение меток в порядке возрастания их номеров. Пример:

A = 25.7

7 B = 11.2

15 C = A ** 2 + SQRT (A * B)

7 D = C * (A + B)

2 D1 = D ** 2 / (A * B * C)

Этот пример иллюстрирует ошибку присвоения меток: два оператора в одном программном модуле имеют одинаковые метки (07и7).

1.3.7 Форматный ввод

Когда данные для программы обеспечивает сам программист, лучше использовать ввод под управлением списка (см. оператор READ(5,*)). Но может оказаться, что данные поступают из другого источника, или данных очень много и их следует как-то упорядочить. В подобных случаях используется форматный ввод. Рассмотрим пример форматного ввода: READ (5,100) I, J, K, (L(М), М=1,4)

5 FОRМАТ (I2, 2I3, 2(I1, I2))

По этому оператору вводится семь целых чисел, из них три простые переменные и четыре переменных с индексами, т.е. четыре элемента массива. В операторе FОRМАТ указано количество позиций в строке исходных данных, отводимых под каждое число. На число I отведено две позиции, на число L и К – по 3 позиции, на первый и третий элементы массива – по одной позиции, на второй и четвертый – по две позиции, Если строка записи исходных данных имеет вид: 12 33 45 67

то в результате выполнения оператора READ получим

I J К L(1) L(2) L(3) L(4)

I 2 34 5 6 0 7

Общая форма F спецификации имеет такой же вид, как и при выводе, а именно

rFwd, где:

w- определяет ширину поля вывода, г – повторитель спецификации, а d ко­личество десятичных цифр в дробной части числа. Если число в записи данных содержит десятичную точку, то F – спецификацию записывают в виде rFw.0

Рассмотрим пример форматного ввода:

RЕАD (5, 50) А, В, С, D

FОRМАТ (F10.0, F10.4, F10.2, F10.6)

Пусть запись данных содержит следующие символы:

  1. 3.4 7 12345 67

В результате выполнения этих операторов переменная А получит значение 1.0, а переменная В – значение 3.47, так как символы пробела внутри поля ввода игнорируются. Значение d, равное 0 и 4 в спецификациях F10.0 и F10.4. игнорируется, так как в каждом из указанных полей ввода имеется десятичная точка. По спецификации F10.2 содержимое позиций 21-30 (12345 ) считывается в ячейку С как число 123.45; так как в этом поле ввода нет десятичной точки, то цифра 2 в спецификации F10.2 определяет, что два последние, отличные от пробела символы, должны восприниматься как цифры дробной части числа. И, наконец, по спецификации F10.6 содержимое позиций 31-40 (67 ) считывается в переменную D как число 0.000067. В этом поле ввода нет десятичной точки, поэтому цифра 6 в спецификации F10.6 определяет, что последние шесть символов поля, отличных от пробела, воспринимаются как цифры дробной части числа. В поле ввода только два символа отличные от пробела, поэтому они и стали самыми младшими цифрами дробной части числа, а остальные цифры полагаются равными 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]