Главная Промышленная автоматика.

S6 Описание эталонного языка

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

5.3.5. Влияние областей действия

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

5.4. Описания процедур

5.4.1. Синтаксис (формальный параметр): := (идентификатор)

(список формальных параметров): : = (формальный параметр) I (список формальных параметров) (ограничитель параметра) (формальный параметр)

(совокупность формальных параметров): : = (пусто) ((список формальных параметров))

(список идентификаторов): : = (идентификатор)(список идентификаторов), (идентификатор)

(список значений):: -value (список идентификаторов);] (пусто)

(спецификация):: = string (тип) array (тип) array label 1 switch procedure (тип) procedure

(совокупность спецификаций):: = (пусто) (спецификация) (список идентификаторов); [(совокупность спецификаций) (спецификация) (список иденти-= фикатбров); .,



(заголовок процедуры):: =(идентификатор процедуры) (совокупность формальных параметров); (список . . значений) (совокупность спецификаций)

(тело процедуры): : = (оператор)!(код))

(описание процедуры) :: = procedure (заголовок процедуры) (тело процедуры) (тип) procedure (заголовок процедуры) (тело процедуры)

5.4.2. Примеры (см. также примеры в конце сообщения)

procedure След (а) Порядок: (п) Результат: (s); value п; array а; mteger ti\ real s; . *

begin integer k;

s: = 0;

for Л:г=1 step 1 until n do s:=s-{-a {k, k] end

procedure Транспонирование (a) Порядок: {n)\ value n;

array a; integer n;

begin real w; integer /, k;

for г: = 1 step 1 until n do

for k:\-{-i step 1 until n do begin w: = a[i, k];

a% k\:=a\k, i\, .

a\k, i]: - w

end Транспонирования

integer procedure Шаг (и); real и; Уаг: = й 0<иАй<1 then 1 else О

J (код) -не определенная синтаксическая единица. Подразумевается запись тела процедуры средствами, лежащими вне языка

АЛГОЛ-60. - Прим. ред.



procedure Абсмакс (а) Размер-.{п, т) Результат:(у) Индексы k);

comment Наибольший по абсолютной величине элемент матрицы а размером п на т передается в у), а индексы этого элемента передаются в I и k;

array а; integer п, т, /, k; real у;

begin integer р, q;

у:=:0; . ; . .

for p:==l step 1 until n do for = \ step 1 until m do

if abs (a[p, q])>y then begin у: = abs {a[p g]);

i:=p, k:=q end end Абсмакс

procedure Скалярное произведение (a, b) Порядок: {kyp) Результат: (у); value k;

integer k, p\ real y, a, b\

begin real s; s: = 0;

for p:=::\ step 1 until k do s:=s+aXb\ y: = s

end Скалярного произведения. , • 5.4.3. Семантика

Описание процедуры служит для задания процедуры, связанной с идентификатором процедуры. Главной составной частью описания процедуры является оператор или группа кодов, называемые телом процедуры, к которому может быть произведено обращение посредством указателей функций и (или) операторов процедуры из других мест блока, в начале которых находится описание данной процедуры. С телом процедуры связан заголовок, который указывает, что некоторые идентификаторы, встречающиеся в теле процедуры, представляют формальные параметры. В момент обращения к процедуре (см. разд. 3.2. Указатели функций и разд. 4.7. Операторы процедур) формальным параметрам в теле процедуры будут присвоены значения фактических пара-

) .В действительности в у передается наибольшая из абсолют» ных величин элементов матрицы а,-Прим. ред.





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22

0.0016