Файл: Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.08.2024

Просмотров: 60

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
QQ ТО £ 3
ісеаст
О
е п а .

/ о -

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