Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие

.pdf
Скачиваний:
10
Добавлен:
23.10.2023
Размер:
4.27 Mб
Скачать

- 60 -

J P : ^ X f 2 .

Предде чей переходитъ к знакомству с операторами сіслее слолньпга, затронем ъопрог: об общей организации программы на "ЛГО.чс.

§ Ü , Организация программа на АЛГОЛе

Программа состоит в основном из операторов. Оператора программъ' выполняются в естественном порядке, если отсутст­

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

гелателънс, чтобы несколько олеряторов

действовали как

еди­

ная

группа. Для

этого сначала

ставится

ßeain , вслед

за

 

 

 

 

 

 

 

 

О

 

 

 

группой - 61Ö . Такая группа операторов называется состав­

ным оператором,

а слова

ёеоіп

к

6f)d -

операторными скобка­

ми,.

 

 

 

 

 

 

 

 

 

 

 

 

Итак,

^составной

оператор^

:: = Begin J ) / ; _ А

? J )N

S ü d

, где

J)^

-

операторы.

 

 

 

 

 

 

 

Тесно связано с понятием составного оператора понятие

блока:

 

 

 

 

 

 

 

 

 

 

 

^ б л о к ^

: := Begin R ,. R2

i

RM's 1)1]

. ) Ъ Н e n d ,

где

R i -

описания.

 

 

 

 

 

 

 

 

Описания -

это такие конструкции языка,

которые

определя­

еттип данных

и характер их использования.

 

 

 

 

Еа?.Т 'Я программа на дЛіШЛе должна

быть

блоком.

 

 

 

Б л„. .сстве

примера

записи

програииы и,

заодно,

рояли-

- 61 -

f

Рис, ^

- 62 -

зации циклического процесса рассмотри задачу по расчету гра­ фика критической нагрузки вполне определенного стержня в за­ висимости от его гибкости. Гибкость стержня зависит от коэф­ фициента вязкости материала R .

В общем виде эта зависимость выражается формулой:

S)

Г /7000 - 0.495я г ;

R </ 20 ;

= 1

_JâSS1L- .

 

 

1

/ + І в & '

R è t e o ,

где R

-.коэффициент вязкости,

который меняется от 20 до 200

сшагом равным 5;

аiS - критическая нагрузка.

Таким образом, задача заключается в организации програм­ мы, результатом которой явится таблица:

3

2(Rd

Ч * г)

2(2з) «S (Яго)

Ri

20

25

2CC

Для облегчения записи составим блок-схему алгоритма,

(рис.5 ).

Зри организации разветвления возможно использовать кап

конструкций

i f Я>120 -then

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

 

i f /?

^

12.0 th e n . , . .

Блоки 2,

3, 4 могут

быть записаны на АЛГОЛе следующим

образом:

 

 

 

'if.R < 12й then ëecjin S:-i7QGO~Q/i8SxRxR ;

 

до to

e n d ;

 

S: = І8С 00/(/ +RXR//SOOO)

конец

- 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, ?] .

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

Соседние файлы в папке книги из ГПНТБ