Файл: Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.08.2024
Просмотров: 60
Скачиваний: 0
/ о -
ie ~ яЗСО ♦ £0 * 4320,
â
І.еткк 03'дут всегда считаться, локальными для блока, в котором встречаются операторы, склоненные этими метками. Сие ратор Q ü to t всегда отсылает только к метке ■£ , прннадле'
і арей току же блоку, кетка, локальная в блоке, где сна при сутствует, ке имеет никакого смысла вне этого блока.
Например:
. . . .
Оператор до to ß i не может отсылать к оператору, поме-
р ,
ченкому г. і .
|
|
|
|
§ |
18. Комментарии |
|
|
|||
|
Они служат для того, |
чтобы облегчить понимание |
програм |
|||||||
мы, составленной |
на языке АЛГОЛ, и не |
влияют на |
код |
вычисле |
||||||
ний. Это любая пояснительная фраза, не |
содержащая символов |
|||||||||
S fld |
> Ѳ-€зѳ ' |
• * |
Комментарии, |
помещаются после |
ЗЗеусп , а |
|||||
также |
|
между e n d |
и j ^ n d |
и end, e n d |
и |
. Для выделения |
||||
комментариев применяется |
код |
co m m en t . |
|
|
||||||
|
Например: |
...S e g in |
com ment- |
3 |
ютом блоке |
описывается |
||||
массив, зависящий |
от П3 "ѵЗаІ апсид a [ /: n ] } ...3 X:-X+g[i]end |
|||||||||
ОКОН«' |
' цикла по I a n d . |
|
|
|
|
|
||||
|
|
|
|
|
|
|
-77 -
§19. Процедуры
Наличие в программе повторяющихся последовательностей
команд, определяющих законченные части алгоритма, приводит
к идее использования подпрограмм. Аналогом подпрограмм в АЛ—
І“0Ле является |
понятие процедуры. |
|
|
|||
Для |
того, |
чтобы многократно |
использовать некоторый за |
|||
конченный |
алгоритм, |
осуществляют |
его описание в виде проце |
|||
дуры и присваивают |
ей идентификатор. Это позволяет |
многократ |
||||
но использовать эту процедуру как оператор АЛГОЛа. |
|
|||||
Процедура описывается |
следующим образом: |
|
||||
<)т;;п/ p~LOceduz£ |
«(заголовок процедуры)»; <тело |
процедуры)-, |
||||
где |
|
|
|
|
|
|
«(заголовок процедуры)) |
::= |
^идентификатор |
процедуры) |
|||
С «(совокупность формальных |
параметров))) ; «(список |
значений)): |
||||
«^совокупность спелийикаций)) |
|
|
По смыслу формальные параметры являются аргументами, в
терминах которых описывается функция. Совокупность специфи каций с псмодью описателей
z£oZ, тіедег, ёоо&ап, адлау >switch,, ■
pzcccdaUj баёеі (исетка)
определяет классы и типы формальных параметров.
В качестве прицепа рассмотрим возможное разбиение сово
купности формальных параметров Х І , А'2 , Х З , ХР ,Х 5
на классы и типы. Совокупность спецификаций может для данных параметров иметь вид Itajtxi, ёоСІейЛ Х2., Ü itegei ОЯХШ/Х З .
Caëet X S . Список значений определяет специфику замены
- 78
фотшальных параметров фактическими при обращении к процедуре,
Например, список значений
Yataéхг, хз
относится к категории параметров значений Х2 |
к ХЗ |
, |
Те« |
самим остальные параметры Х і , Х 4 ,Х $ откосятся |
к |
кате- |
|
г а в « аараиетров-каішенованйй. |
|
|
|
Главной компонентой описания процедуры - |
телом процеду |
||
ра « служат такой-либо параметр АЛГОЛа. Среди |
операторов те |
ла должен быть по крайней мере один оператор присваивания,
содержащий в левей части идентификатор рассматриваемой про- |
||
»* |
|
. |
цедуры. |
|
|
Вапример: |
. |
р |
|
'шхі ргосесіиге k(x^y, tfauie >:3у ; |
|
|
чш£ x,y; |
|
|
Benin ............ |
|
|
/ |
......... |
|
Я: =X+ yt2; |
end.
Обращение к процедуре осуществляется с помощьв указателя процедуры, который состоит из идентификатора процедура к со вокупности фактических параметров.
Структура указателя процедуры определяется выражением: ^указатель/* ::= ^идентификатор процедуры}» С ^совокупность фактических параметров^).
Совокупность фактических параметров представляет собой заключенную в круглые скобки последовате лъаос тъ выгазекий, идентификаторов, массивов, переклвчатег&й и процедур, отделенных друг от друга запятыми.
- 79 -
Их количество и порядок записи должны точно соответст вовать количеству и порядку записи формальных параметров, а
класс и тип должны совпадать с классом и типом соответствую щего формального параметра.
Указатель процедуры определен только в области действия соответствущей процедуры. Вычисления значения указателя про
цедуры осуществляются по следующим правилам.
1. Вычисляется значение каждого фактического параметра,
соответствующего формальному параметру - значению (помечен ному кодом " Ѵ о С и . е " ' ) . Вычисленное значение присваивается соответствующему формальному параметру.
2 . Каждый формальный параметр - значение заменяется со ответствующим фактическим параметром.
3. Тело процедуры, измененное в соответствии с пункта ми I и 2, переносится на место указателя и выполняется. Зна чение, присвоенное идектисж. процедуры, является значе
нием указателя процедуры.
Следует отметить, что если идентификаторы некоторых
I
формальных параметров или локальных величин тела совпадают с какими-либо - идентификаторами фактических параметров иди локальных величин, то они должны быть предварительно заме нены другими.
Рассмотрим на примере, как составляется описание про цедуры и каким образом осуществляется обращение к ней.
Предположим, что нужно вычислить три суммы:
- 80 -
20 j
е-Д * ;
Предварительно |
составим процедуру суммирования |
|||
,5* =* |
/Jr |
тг |
зависят |
от "С ". |
і - т * * |
и |
|
вид: |
|
Описание этой-процедуры будет иметь |
placedиге Sum(S3Lт}n,ff)ira&terijП
7*uzS S ; С п Щ & г р т , п ;
»Segln
3 : = 0
i: =m step { untc-tn do S:-S4-jf;
e n d .
Указанные три суммирования могут бытъ выполнены в ре
зультате трех обращений к процедуре:
S um (в. х, і } 2.0}X f2-Jj
З и т (f/ііуЗ, і4, СОѢ (<у/ху));
S u m ( у Х о , £, S (fC t(a b z i F t ] Ь 2 с [ т ])).
Результат выполнения этих обращений эквивалентен выпол ненію трех операторов, структура которых эквивалентна опера тору тела структуры. Обращение к процедуре передает в тело процедуры правило для вычисления значений, а не сами значе ния ,
0 Построим несколько процедур 'Щ. базе уже известных, при веденъ« выше
- 31 -
Лшпес:
£a L ß c ,
Испольау м процедуру SU/T) :
Зит (Lj, i, 4yn, a[i]x $[L]),
Используя ту ne |
процедуру S U fft , -легко реализовать алго |
|||
ритм зачисления |
по формуле |
|
||
|
і' =п> р |
J ^ n |
|
|
jL |
А . |
f L А |
A u X j - |
|
J |
L=i |
' |
j = f |
/ |
Обращение к процедуре можно осуществить с помощью конструк |
||||
ций |
|
|
|
|
b u m |
Ч і } |
|
|
s u m ( L hj \ . f ) п> А [ ф 'Х [)]}1 |
Рассмотрим еще один пример - вычисление определенного интеграла по форме трапеций
CLЫ » / ^ < Ш ( Ф ~ * M * - * N ^
X; — CL - f |
i |
о -a. |
|
о |
— • |
- |
n |
Описание этой процедура будет иметь вид: |
|||
7у. |
a lle y ю |
£ (x-,jf> а , 6 \ п ) ; |
|
Т-шЕ p z o e e d и ге |
Тгсі/ие а,Чп j іиіеуег п ; *іеаІXjjfj CL,
Хгуиг 2ш і Я, А ; ігіСеуег l -
x - a :
5 : .( з ф / г }
? ^ : “ ( 3 -Q-)/n J
fcz L= /step /untie n-i do 6epln