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

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

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

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

Добавлен: 06.08.2024

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

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

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

- 70 -

используя модификацию индексов или индексных выражений. Для выполнения этой работы используется оператор цикла.

Такое использование оператора цикла является наиболее ■цошным средством АЛГОЛа.

• Примеры. .

I . Написать программу вычисления функции.

Программа будет .иметь вид:

'Begin te a t s; integer і ; а н о д Х[П2о]

»§оі I - і step / antit 20 do

end.

2 . Начислять скалярное произведение двух векторов CL и 6

размерности / 2 = 9 .

Begin teal scat; іпЩег S ;attag

А, В [0-9] i .

Scat: —О;

§оі S: = О step / иntit 9do Scat: =scat+ AL-S]x3[S]

e n d .

3. Записать алгоритм произведе:мя двух матриц А и В.

/О.//, CL/2,...,

<Xjr l\

( і>,

\

f

С, \

I 0-2.1) а г2) •••)

&2П

( $2

 

__ (

Сд

\ dftt, &Пг )" •) (Хпп) \ ѵп /

\ сп /

- 7i -

Элементы патрицы С вычисляется по формуле

а у х £ } 1 ~ 4 ,г ,...> п .

Для организации процесса вычислений нужно построить вы

числительный процесс с двумя циклами: один - внешний, по L

другой - внутренний,

по J .

 

Программа вычислений будет иметь вид:

•веді'п integer

аггад

a fy.-zoj иго]

 

£,с [<-.20]}

 

fcnc. = / step / ипШ п do

 

Sepia СCiJ: =О;

f a ^ -

tö tep / untcS n do

c[£]: =c[i] + a[ijJJ* S[JJ

 

end

-•

 

end.

§16. Переключатели

ВАЛГОЛе переключатель представляет собой обобщение идеи условной передачи управления. Передача управления'осу­ ществляется к одному из многих операторов по результатам вычисления некоторого арифметического выражения. Передачу .

управления операторами i £ / , S

, еО. 7 ,

, аСЗ в завкси-

мости от того, чему равно целое

і -

1 ,2 ,3 ,4 ,5 , , , , можно

осуществить посредством условного оператора и оператора пе­ рехода, а именно:

i f i = -/ then до іо X/, е&е іЦ...

Этот способ громоздкий, поэтому и вводится специальная


- 72 - конструкция "переключатель". Он вводится посредством описа­

ния

bti, 3 , р 7 ,43j £ 3 .

Svritch д : =

Для использования клоча достаточно в определенном мес­

те программы написать

 

д о to

д [ і ] t

где L - индексное выражение, определявщее порядковый но­ мер метки оператора, которому передается управление,

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

блока, среди описаний массивов и других видов описаний. Пример. Составить программу с описанием переключателей,

выполняющих следующие вычисления:

а) если п = -2,

д = і>х-Сбілх ;

 

 

/? = - / ,

 

д = З а х 3ч-ё + СС06Х-,

 

п - . о ,

Ъ = а х 3 + ёх + с<9йгХ]

 

/г - ' І ,

 

lj =

_ CC0SX;

ëegin

 

X, g,

c, a ; in te g e z

n

sw itch

Cf: — PO, P i\P 2 ,P3; g o t o

g

[ n +з.\Jj

PQ:g: =

в * X -

С X s in (X ) i $ 0 to

n e x t ;

P i: If'- - 3

*Ct*Xt2. -f 5+ C * COS(X): g o to n e x t j

next: печать (x, u) end.

C

Указатель ключа g [i] , где .V - индексное выранение^яв-

ляется именующим, определяющим метку. Метка и указатель пе-


Ц f a ( z ) ,
где
при

- о -

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

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

f së- &^ 4 ;

§■, fz) ~ 3j2 Z + О, i z z ;

fa (г) = 3,7z + 0,82*J.

Программа на АЛГОЛе будет иметь вид:

 

Segin Jvfitch f : = / /, fa,fj&jfa]

 

go to F fa];

 

f r t : g : = s 3 , a * z + o , / * z t z ; g o t o н о н е ц ;

i

f a : g : = 3,7 * Z + 0,8 * z t г , і ; g o to к о н е ц -,

 

. н о н е ц ;

 

end.

§17, Локальные а глобальные идентификаторы

Вобщей случае МГОЛ-программа является совокупностью

- 74 -

блоков, причем внешние блоки содержат внутренние. При этом программы могут быть сколь угодно большими. Возникает вопрос w том, как правильно пользоваться обозначениями переменных, массивов, клячей, операторов, в каких пределах программы дан ный идентификатор сохраняет свое название, смысл.

Следует отметить, что важной особенностьв блочной струк­ туры является область определения идентификатора и свойство сохранения значения переменных, описанных в блоке. Такая осо бенность АЛГОЛ-пропраммы тесно связана с проблемой экономии ячеек памяти.

Все идентификаторы программы Сданного блока) можно раз­ бить на две большие группы:

а) списанные э начале блока В, которые будем называть идентификаторами, локальными в блоке В;

б) не списанные в начале блока В, которые назовем глоеалькыми для блока В.

.апример:

г е а і а


 

 

 

 

 

- 75 -

 

 

 

 

 

 

 

 

Здесь

Q - глобальный

идентификатор

для

блока Б,

локальный

 

для

блока

А;

 

 

 

 

 

 

 

 

 

 

- локальный для блока В.

 

 

 

 

 

 

 

 

Идентификатор,

локальный в блоке,

определен

только

внут­

ри данного блока. Рассмотрим, например,

 

некоторый

локальный в

В идентификатор

Z

. После

выхода

из

блока В либо за опера -

торную

скобку e n d , либо

с помощью

оператора

CjO to

, Z

те­

ряет свое значение и может представлять собой что угодно.

Вели Z

в блоке

А уже был описан,

то

при

выходе из

блока

3

снова принимает

то

самое значение,

которое он имел

до входа

в блок

В.

 

 

 

 

 

 

 

 

 

 

 

 

Напротив, идентификатор, глобальный для блока В, сохра­

няет то

значение, которое

он получил

в

блоке

В.

 

 

 

Пример.

А '■беріп

 

 

 

 

 

 

 

 

 

 

 

 

■ггаС a , z ;

 

 

 

 

 

 

 

 

 

 

<2. = -/;

 

 

 

 

 

 

 

 

 

 

 

г - = г о ;

 

 

 

 

 

 

 

 

 

 

 

ß :

 

сП

 

 

 

 

 

 

 

 

 

 

 

 

f e a t z, 6;

 

 

 

 

 

 

 

 

 

 

 

é: ~3001

 

 

 

 

 

 

 

 

 

 

 

z ;—Aoooу

 

 

 

 

 

 

 

 

 

 

 

Q.- —6+Z-,

 

 

 

 

 

 

 

 

end

В результате выполнения программы имеем:

а - зоо + 4000 = 4300,