
книги из ГПНТБ / Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие
.pdf- 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, ?] .
Переменные с индексами в АЛГОЛе имеют большее значение так как они позволяет составить программу для одного общего элемента массивов, а затем выполнять-одинаковые вычисления,