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