![]() |
|
Главная Промышленная автоматика. 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 |