Вспомогательные операторы управления

Оператор продолжения имеет вид:

N CONTINUE

где n- метка оператора, которая может отсутствовать.

Этот оператор не выполняет никаких действий и обычно используется в качестве конечного оператора цикла. Иногда он используется и в других местах программы, для уменьшения трудоемкости отладки программ. Например, где-то в середине программного модуля есть помеченный оператор:

A (L) = B (L) + C ** 2.5

25 CONTINUE

Если возникает необходимость дополнить этот участок программы двумя – тремя операторами, то исправление программы сведется только к вставке операторов:

A (L) = B (L) + C ** 2.5

D = SIN (X) + 2.7 * C

A (L) = A (L) + D

25 CONTINUE

Оператор паузы

Оператор паузы имеет вид:

N PAUSE m

где n – метка оператора, которая может отсутствовать;

m – целое восьмиричное число без знака, состоящее не более чем из четырех цифр, либо текстовая константа в апострофах.

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

Массивы. Общие сведения о массивах

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

Например, нужно хранить 100 экзаменационных оценок. Всю последовательность предназначенных для этого ячеек памяти можно обозначить именем MASOC. Тогда к первой ячейке этой совокупности величин можно было бы обращаться по имени MASOC(1), ко второй – по имени MASOC(2) и т.д., а к последней MASOC(100). Такая конструкция согласуется с математическим обозначением последовательности, использующим индексы m1, m2….mn.

Упорядоченные множества величин одного и тоже типа, отдельные элементы которых выделяются индексами, в программировании принято называть массивами, а каждая отдельная из этих величин называется элементом массива.

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

Отдельные элементы массива обозначаются именами с соответствующими индексами, которые указываются после имени массива в круглых скобках и разделяются запятыми, если их более одного, например: M(1), M(3), R(1,5), R(7,1). Фортран допускает массивы любых типов, т.е. INTEGER, REAL, COMPLEX и LOGICAL. Размерность массивов не должна превосходить семи индексов. В качестве индексов могут использоваться не только целые числа, но и переменные целого типа, а также арифметические выражения, принимающие целые положительные значения. Эти арифметические выражения называются индексными выражениями, например, R (К + 2, 2*М-5). Если в некоторый момент выполнения программы К = 2, а М = 4, то машина должна обратиться к элементу R (4, 3).

Оператор DIMENSION

Для записи массива должно быть выделено место в памяти ЭВМ. Выделение памяти для хранения массива осуществляется с помощью неисполняемого оператора DIMENSION. Этот оператор должен быть расположен в программе перед исполняемыми операторами. Общая форма оператора DIMENSION имеет вид: DIMENSION « список ». Список содержит имена массивов с границами индексных выражений, заключенными в скобки. Например:

DIMENSION A(20), R(5), M(3, 3)

Этот оператор резервирует в памяти 20 ячеек для хранения вещественных чисел А(1), А(2) …А(20). Выделяет также пять ячеек для хранения вещественных чисел, составляющих массив R, и девять ячеек для хранения целых чисел, составляющих массив М. Если указывается только одна граница индексного выражения, то она определяет его наибольшее значение. Одним оператором можно определить несколько массивов. Другой пример: DIMENSION M(-1:1)

Данный оператор выделяет в памяти ЭВМ три ячейки М(-1), М(0) и М(1) для хранения целых чисел. Следующий пример:

DIMENSION A(3)

DIMENSION M(-1: 1)

Эти операторы выделяют память для трех вещественных элементов массива А и трех целых элементов массива М. Если требуется дать массиву имя, не соответствующее соглашению о типах, то следует воспользоваться оператором описания типа. В этом операторе можно указывать границы индексных выражений. В таком случае массив не нужно определять с помощью оператора DIMENSION. Например, INTEGER GRM (0: 2) выделяет память для трех элементов целого массива GRM.

Индексные выражения

Индексные выражения могут принимать любое целое значение – положительное, отрицательное или ноль – в пределах, определенных оператором DIMENSION или его эквивалентами. Индексные выражения могут быть целыми константами, целыми переменными и целыми выражениями. Значение индексного выражения вычисляется во время выполнения оператора, содержащего обращения к элементу массива. Это значение определяет расположение элемента в массиве Если і представляет собой текущее значение целой переменной І, то А (І)– і-тый элемент массива А, например при І=3, А(3)– третий элемент массива. Выражение А(І * (М – 1)) может указывать на различные элементы массива А в зависимости от значений Іи М. Если І = 2, М = 4, то выражение указывает на элемент А(6). Если значения индексных выражений выходят за границы индексов, заданных в описании массивов, то значение данной переменной с индексами считается неопеределенным. Оно не может использоваться в вычислениях, и компьютер в таких случаях выдает сообщение об ошибке. Например,

А (І * (М – 1)) при І = 2, и М = 6 указывает на элемент А (10), но если оператором

DIMENSION описан массив А (8), то следует сообщение об ошибке.

Наши рекомендации