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

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

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

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

Добавлен: 06.08.2024

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

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

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

- 63 -

или иначе ijrRc/2.0 then 3: = ПООО-ОА&з*R t <2

e£se S : = fsooo/ft + Rf 2//eoooj .

Вся программа в целом имеет вид:

Seg ln

t e a l ( R , S ) } - ‘

.p

Д: = 2о;

Cgcte: S: = iff (R < IRQ then {7000 - 0.t<85к RJ2.

e£se fâooo/ ( { + R t 2 / fsooßfi-

 

печать (R, âj; ■'-4% /дѵ.

'r'..

i j R - 200 then S t ;

 

.R : = R + 5;

 

g o t o C g c te ;

 

S t : о с т а н о è ; e n d .

 

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

 

§

12. Оператор пикла

Оператор цикла имеет следующую структуру:

jg)2 <уіеремекная/

:=

^список цикла'gdo <рператов)> . -

Список цикла определяет последовательные значения уп-‘

разляащей

пере. енноЗ

либо

простым перечислением, либо по­

средством

некоторого

правила, а.также

условие выхода из цик­

ла. 3 процессе работы

оператора цикла

многократно повторяет­

ся оператор, следующий

за

do , После

do может стоять


- 64 -

составной оператор, представлявший последовательность опера­

торов, заключенных в операторные скобки Segln и e n d .

 

Припер. Найти значения

Lj

, если X = - 2 ,0 ;

- 1 ,2 ; 1 ,7 ;

2 йі*

и S'

 

'&j/a3+ x 3l

 

и1• 1

~ t J■)

а -

 

 

У - - з

 

 

 

 

Оператор цикла имеет вид;

 

 

 

 

 

$пх: = -2.о}

7, 2A,

9 do Begin

 

у: - (х tз - a 13

In (als (a ts +х f ф / з ;

 

печать (х, у)

 

 

 

 

e n d .

 

 

 

 

о

 

 

 

 

 

Список цикла монет иметь более

сложную структуру,

где зада­

ется начальное значение, шаг, конечное значение. Структура

этого

оператора

имеет

зид:

 

1

^переменная/1 ;=

«(начальное значение^

U ntil

^конечное

значение^ do <рператср^>

Используя

эту

конструкции,

запишем программу для разоб­

ранного выше

і і )

примера:

 

 

 

 

 

Segln x e a l

R , S

 

f a

R: -

2.0 •step о u n t i l 2 00 d o

 

 

 

 

 

Segln.

 

 

â: = C$-R<120,inen 17000- O . m x R ? 2

 

 

. e ls e / д о о о X ( i ч- R iz / m c o J ;

 

 

 

 

 

п е ч а т ь

(R} S)

 

 

 

 

 

e n d

 

 

 

 

 

 

e n d .

° Аналогично ионно организовать список цикла, если управ­ лявшая переменная убывает. Оператор со списком такого типа


- 65 -

называется оператором со списком типа арифметической прогрес­ сии.

Рассмотрим эквивалентную запись для оператора цикла че­

рез другие операторы. Для оператора

jt<n V- = А step & aritiC С do S /; Ö2;

эквивалентная запись будет иметь вид:

tc: i$(V-c)x£Lgn(ß)>0 then goto £2;<S/j

У ~ \f+ ß> j g O t o at. •

'іоано заранее задавать начальное значение шага. Приме­ ром монет служить следующая последовательность операторов:

/V: = 7; jjviх: =Х<?step//untilX/do... .

Подобная форма позволяет более гибко использовать опе­ ратор цикла.

В ы в о д . Оператор со списком типа X te p -Ü /itit дает

большую гибкость в выборе начальных выражений и шага, но меньшую в способе окончания цикла.

Для устранения подобного недостатка в АЛГОЛе имеется другая структура списка. В этом случае оператор цикла имеет

вид:

foi V- *=£ ufkifc F do St; S2,

где и - арифметическое выражение;

F - логическое (булевое) выражение.

Поясним действие этого оператора, применив алгоритми­ ческую запись на АЛГОЛе. Оператор этого типа эквивалентен определенной последовательности операторов:

- 66 -

X '\ r - = £ ;

if IF ihen go -io 52;

;

ог> io £ .

Разобранный выше пример (§ і і )

запишется слёдующим об­

разок:

 

fo x R : ~ 2 0 ; я + 5 ъ г к і і е

z o o d o . . . .

§ 13. Переменная с индексами

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

Пшыер:

= * [* ], *№ ,•••> Х [ 2 ° ] ;

А//} А^г, •••> A2)Z —А [ i ß , A [i,2]y..., А [2,2],

Характер изменения индексов, конкретные их значения з а - .

дается арифметическими выражениями, называемыми индексными.

Индексное выражение всегда определяет значение,

относящееся

к типу "целых".

 

В качестве пшыева использования индексных

выражений

~V

рассис'"г>кн задачу

решения системы линейных алгебраических

уравн

. второго

порядка:


Оц Xf ■+ Cl/2

~

®! }

Q-г/ X,- + Cl22

$2 .

Основными формулами при составлении программы будут

Sr0^2 ~ &S CL/2

Cl/t 0-23. ~ Cist Q/2 1

6г CLn~ а г/ С£.ң Clog Qf2.

Счет по этим формулам ыокно осуществить по программе

denorr): — a [id х а [2,?.]-а.[2,/]х а[<,2] ; iffaSs(denom)< /о~^then Stop

Х Ш : ={6ü Jxafc2] - 6[2] xa[1,2])/denom;

x[2]:-=(ë[2]xa[ij] -S[iJ Xa[2,t])/denomjstop.

Примечание. Оператор "Stop" останавливает работу маши­

ны.

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

Пример:

~а + $ х + с х г ; ' А * * і у

d+ex-hfx2;А=2 ;

c } + f ix + i x z; А = з .

Девяти коэффициентам можно присваивать ряд значений от-

резка натурального ряда:

а & с d е 9 1 А І J

3 . 4 5 6 7 8 9 10' 11 12 .

Заметим, что

- 68 -

4 = з £ + 1,

5 = 3& + 2

(при £ = I ) .

Аналогичные формулы справедливы для других коэффициентов при

£ = 2 , І = 3.

Тогда значение £/ может быть вычислено по формуле

y:=*C[3x&]+C[Sx£ +{]xX г Cß*&-f-2]«Xt2.

^ожно использовать другие формулы для коэффициентов.

§ 14. Описания массивов

При использовании программы необходимо иметь следующую информацию.

1. Какие переменные суть переменные с индексами,

2 . Какова размерность переменной с индексами.

3. Сколько элементов в массиве,

.4, Как эти элементы перенумерованы.

Вся эта информация содержится в описании массѵівов. Границы изменения одного из индексов массива задастся

так называемыми граничными парами, определяющими наименьшее и наибольшее его значения. Они могут быть заданы арифметичес­ кими выражениями, разделенными знаком

Число граничных пар определяет разномерностъ массива. Эта совокупность граничных пар называется списком граничных пар.

Описание массива имеет вид:

Дописан-‘в типа элементов массива^тггд^идентификатор мае-


сиза

<$писок граничных пар, разделенных запятыми^]

 

' j

 

Примеры.

1. аггау coef fO:/4J .

2 . array C f/лз, J.-з].

При описании нескольких массивов одного и того же типг

можно не повторять

слов a lla y , te a t аггом ,

in te g e r a l ­

lay, Booteon allay

списка

граничных пар при описании KSCKCJ

ких массивов с

одинаковыми

списками. При описании действи -

И

 

 

ZS-dC.

тельных массивов можно опускать спецификатор

Примеры.

 

 

 

 

I. zeal array

АП:СС], ßf/^oo], С [ / IQ,

о].

г. array 2>,E,F, g C^zo, его].

 

з. осоtear? аггсид J, к, m

[о-39], n[0:/4],p. y[0-Sj.

В соответствии с описанием массива транслятор отводит определенное место для его элементов в памяти.

§ 15. Использование индексных выражений

Индексное выражение - это любое, в том числе и условно арифметическое выражение, определявшее индексы в описании массивов. Значение индексного выражения, как правило, целое

Конструкция А [2,ч, 5.8, -6 .5J задает тот же элемент, что и конструкція А [2, 6, ?] .

Переменные с индексами в АЛГОЛе имеют большее значение так как они позволяет составить программу для одного общего элемента массивов, а затем выполнять-одинаковые вычисления,