ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.07.2024
Просмотров: 92
Скачиваний: 0
-10 -
2.5.2.3.1.Локальнее описания и спецификации формальных
параметров.
2.5.2.3.2.Другие операторы, составляющие подарограмму.
2.5.2.3.3.Оператор IJUD.Ч
2,5.2.4. Операторы, составлявдие основную программу.
2.5.2.4.1.Локальные описания.
2.5.2.4.2.Другие операторы, составляющие основную про грамму.
2,5.2*6. Оператор тл.
Операторы, перечисленные в 2.5.2.3., могут повторяться не
сколько pas или не встречаться ни разу, в зависимости от количества подпрограмм в ФОРТГАН-программе.
2.5.3* В ФОРТРАЛ-программе должен быть хотя бы один выпол няемый оператор. ФОРТРАН-програмш всегда должна заканчиэаться оператором иыл.
2.5,4. Термин "программиая единица" обозначает подпрограм му или основную программу.
£.5.5. Выполняемые операторы могут быть помечены. Оператор |f§MAT должен 'быть помечен. Все остальные невыполняемые ойераторы не должны быть помечены. Оператор называется по меченным, если ему предшествует метка, отделенная от опера тора символом ";" (двоетЪчие). Меткой является записываемое без знака натуральное (т.е. целое положительное) число в диапазоне от I до 99999.
Метка служит для передачи управления помеченному опе ратору или для ссылки на него, если это - оператор Р0ШАТ.
В одной и той же программной единице все метки долж
ны быть различными. Таким образом, два оператора могут
быть помечены одинаково тогда и только тогда, когда они на
ходятся в различных программных единицах.
-I I -
2.5,6. Выполнение ФОРТРАН-программы начинается с первого выполняемого оператора основной программы, продолжается в той последовательности, в какой выполняемые операторы за писаны в основной программе, и заканчивается оператором ST0P. Для изменения этой (естественной) последовательно сти выполнения операторов служат операторы управления.
Подпрограмма выполняется лишь тогда, когда к ней встречается обращение в основной программе или в выполня емой в данный момент подпрограмме. Порядок выполнения опе раторов в подпрограмме подчиняется рассмотренным правилам. Выполнение подпрограммы всегда начинается с ее первого вы полняемого оператора и заканчивается оператором шзтщщ этой подпрограг.т:.
2.G. Операторы
2.6.1. Выполняемые операторы Выполняемые операторы делятся на четыре клаооа*
-операторы присваивания;
-операторы управления;
-операторы ввода/вывода;
-автокод.
2 . 6 . I . I . Оператор присваивания Оператор присваивания имеет вид:'
v = е;
или
v l = v 2 = v 3 = ° " = v n = е ;
где v - левая часть - простая переменная или переменная о индексом, е - арифметическое выражение. При выполнении это го оператора вычисляется значение арифметического выраже ния, которое присваивается переменной т «
В операторе присваивания может быть несколько левых частей v 1 , v 2 j v n £п^24). Все они должны быть прос тыми переменными. В этом случае значение арифметического
- 12 -
выражения е присваивается каждой из простых переменных
, v 2 , ..., v^.
2.6.1.2. Операторы .управления.
Имеются следующие типы операторов управления:
-операторы G0_T0;
-арифметический оператор IP-,
-логический оператор I F ;
-оператор CALL;
-оператор RETURN;
-оператор срити-ШЕ;
-операторы управления программой;
-оператор од;
Метки, используемые в операторе управления, долж ны помечать выполняемые операторы в той же программной единице, в которой встретился данный оператор управления.
2.6.1.2,1. Операторы G0 т0
Имеются следующие типы операторов G0 Т0:
-безусловный Ц0 Т0;
-ВЫЧИСЛЯеМЫЙ G0 Т0;
-Gg Т0 с возвратом.
2.6.1.2.1.1.Безусловный C0_rg
|
Безусловный оператор G0 Т0 |
имеет вид: |
|
|
|
G0 Т0 га; |
|
|
|
где ш |
- метка. |
|
|
с мет |
кой m |
Этот оператор передает управление оператору |
|||
. Иными словами, следующим выполнится оператор с |
||||
меткой т. |
|
|
|
|
2.6.1.2.1.2. Вычисляемый G0 Т0 |
|
|
|
|
|
Вычисляемый оператор G0 Т0 имеет вид: |
|
|
|
где |
G0 Т0 (пъ,, ш2 , |
щ п ) , |
I |
; |
- метки ( n ^ 2 ) , I - переменная, которая в момент |
_ 13 -
выполнения данного оператора дотанаиметь целое значение в пределах 1 4 1 ^ п.
Этот оператор передает управление оператору о мет
кой т± , где |
i - значение переменной I в момент выпол |
|||||
нения вычисляемого GJijrg. |
|
|
||||
Таким образом, в списке меток |
, т 2 , |
, на |
||||
чиная слева, отсчитывается i-ая метка |
т ± , и передается |
|||||
управление оператору, помеченному этой меткой. |
|
|||||
Если же к |
1 |
или i>n, то в результате выполнения |
||||
вычисляемого |
off Tff |
управление будет передано непосредст |
||||
венно следующему |
за ним выполняемому оператору. |
|
||||
Пример. |
|
|
|
|
|
|
1М=4; |
|
12, 15, 8, 99), IM; |
|
|
||
G0 |
Т0 (7, |
|
|
В этом случае управление будет передано оператору с меткой 8 ( i = 4 ) .
2.6.1.2.'1.3. GgJE2 с возвратом.
Оператор Gtf Т0 с возвратом имеет вид:
где ,т^ш^ - метки.
Этот оператор передает управление оператору с меткой
т 2 . Затем продолжается естественная последовательность
выполнения операторов, расположенных вслед за оператором с
меткой т 2 |
. Когда же управление будет передано оператору с |
меткой |
, программа, не выполняя его, сразу перейдет к |
оператору с меткой ш1 .
Такой оператор может быть использован для многократ* ного обращения к блоку (первый оператор которого помечен
меткой ш 2 |
, а конец, т.е. оператор вслед за последним, - |
меткой |
) из разных мест программной единицы. |
Чаще всего меткой т^' помечается оператор С0ЫТ1ШЕ.
Замечание. Перед передачей управления оператору с
|
- |
14 - |
|
меткой |
происходит восстановление первоначального содер |
||
жимого первой команды в габоре команд рабочей программы, |
|||
реализующем оператор с меткой |
|
||
2.6.1.2.2. Арифметический оператор др. |
|||
Арифметический оператор i p имеет вид: |
|
||
|
I P (в) m1, |
т 2 , т ? { |
, т 2 , ш - метки. |
где е - арифметическое выражение, |
|||
|
Этот оператор передает управление в одно из трех мест |
данной программной единицы в зависимости от значения ариф
метического выражения е, которое вычисляется в момент вы полнения данного оператора.
Именно, если е<0, управление передается оператору с
меткой |
; если |
е=0, управление передается оператору с |
меткой т 2 |
; если |
же е>0, управление передается оператору |
ометкой щ,.
2.6.1.2.3.Логический оператор ip.
Логический оператор £р имеет вид:
Ц(Ь) 3;
где ь - логическое выражение, s - выполняемый оператор. При выполнении данного оператора вычисляется логи
ческое выражение ъ . Если это выражение имеет значение "ис тина", то выполняется оператор s . Если же логическое выра жение b имеет значение "ложь", то оператор s выполняется так, как если бы на его месте был записан оператор CONTINUE. Оператор s не может быть оператором j>g или другим логичес ким операторомI P .
2.6.-1.2.4. Оператор CALL
Оператор CALL имеет вид:
GALL в(
или
- 15 -
|
|
CALL B ( a 1 t в р , |
a ^ ) j |
где в |
- идентификатор подпрограммы типа |
aUBRfifUTINB (см. |
|
2.6.2.6.2), каждое |
а±~ фактический параметр. |
||
типа |
Этот оператор реализует обращение к подпрограмме |
||
SUBROUTINE |
(вызов ее) из основной программы или |
какой-либо другой программной единицы. Выполнение подпро
граммы s начинается с ее первого выполняемого оператора и
завершается тогда, когда в подпрограмме в управление попа дает на оператор RETURN . После этого управление переда ется выполняемому оператору, непосредственно следующему
за оператором CALL в вызыващей программной единице.
В ФОРТРАН-программе рассматриваемый оператор должен
быть записан после того оператора END , который заверша ет определение (описание) подпрограммы в , Иначе говоря, обращение к подпрограмме может быть осуществлено лишь пос
ле ее описания. Кроме того, запрещены прямые и косвенные рекурсивные обращения к подпрограммам. (Например, если в
подпрограмме S1 |
встречается обращение к подпрограмме |
S2 , |
|
то в подпрограмме S2 не может встретиться обращение к под |
|||
программе |
s i |
; в любой подпрограмме s не должно быть |
|
обращения к самой подпрограмме S ) . |
|
||
2.6.1.2.5. Оператор RETURN. |
|
||
Оператор |
RETURN имеет вид: |
|
|
Оператор |
RETURN; |
|
|
RETURN должен встречаться в подпрограммах и |
|||
только в них (как в подпрограммах типа SUBROUTINE |
, так |
и в подпрограммах-функциях). В результате выполнения этого оператора прекращается выполнение соответствующей подпро граммы, и управление передается в вызвавшую ее (в данный
момент) программную единицу.
К моменту выполнения оператора RETURN в подпро грамме-функции (см.2.6.3.2.4.) идентификатору этой функции
должно быть присвоено значение, которое становится доступ-