книги из ГПНТБ / Богданов В.С. Системы математического обеспечения цифровых вычислительных машин учеб. пособие
.pdf- 50 -
Аргументом функции может быть любое арифметическое выра жение. Аргумент стандартной функции всегда должен быть заклю чен в скобки.
Приведем несколько примеров записи арифметических выра
жений, в которых используются стандартные функции.
Обычная запись |
|
Запись на АЛГОЛе |
|
/-e4cosx |
I |
; |
aès(/~exp(4xCos(x)jj; |
Т " |
~ |
’ |
(ы п(х) +CQSföJ/jfi itfd B + i) . |
§ 6. Оператор присваивания
Оператор в АЛГОЛе есть инструкция по выполнению какого-
-либо действия машиной . |
Оператор присваивания присваивает |
некоторое значение одной |
или нескольким переменным. Структу |
ра оператора присваивания |
может иметь вид: |
^п ер ем ен н ая^:= ^іерем енная^.* = ^выранение^ .
Ста'запись означает следующее: заменить выражение переменной,
стоящей слева, значением выражения справа ( в угольные скоб
ки ставятся понятия, из которых состоит данная конструкция).
Порядок расположения понятий |
разделителей отражает |
струк |
||
туру -записи этой конструкции. |
иТакую форму пояснения |
конструк |
||
ций языка мы будем использовать-в дальнейшем. |
|
|||
Примеры. |
I . |
X: = 3, |
|
|
|
2. |
o m e g a :=iheta + 6 .2Ѳ72, |
|
|
|
3. |
d e n ff- : — N ' cos (ang) t ( l i - i ) , |
4 .
- 51
Запишем на АЛГОЛе следующие выражения, используя опера
тор присваивания. |
|
|
|
|
Исходная математическая |
|
Оператор присваивания |
|
|
формула |
|
|
|
|
|
|
Д := (А + 8*Ю /(С + £ хХ ); |
|
|
|
+ |
3 e f a : = - / / t rlx $ + A 12/ { 4* X f 2) ; |
|
|
С = І Ш к |
; С |
■ = V tix K x 7 , х 7 г / ( 1 , - 7г ) ; |
|
|
т Ы |
e t ä j l e f y i ) ; V: = f / f i * - y f & *& )* |
. |
||
|
|
|
*агсш п (ехр (т кХ )хзд щ а/$ ); |
|
J-Hoè — lern . + 4 1 |
. |
= J + |
|
|
i HoS = n |
l ; |
|
I: - n * I |
|
Всегда предполагается, |
что всем переменным, встречаю- ■ |
|||
щиися в правых частях оператора присваивания, уже присвоены |
|
некоторые значения предыдущими операторами. Переменные спра
ва и слеза могут быть разных типов {irite^eZ |
или t e a t ,но не |
бообвйП. ) . Однако предполагается, что после |
вычисления вы-' |
ранения, стоящего справа, полученное значение приводится к типу левых переменных. Например, если в операторе присваива ния значение арифметического выражения в правой части отно сится к типу "действительный" iZeaC'), а переменная в левой части - к типу "целый" (.UlttCjeZ ) , то значение арифметичес кого выражения должно быть округлено до целого значения.'
§ 7 . Логические, или булевые, выражения
* Прежде чем переходить к описанию логических выражений,
- 52 -
рассмотрим отношения и операторы отношений.
Математическое отношение - это гипотетическое правило,
связывающее два или более математических объектов.Обозначим
запись |
отношения в |
виде At к\ что |
означает |
- объект А нахо |
|||||
дится |
в отношении |
1 |
к объекту А*. Об отношении можно ска |
||||||
зать, |
выполняется |
оно или |
не выполняется. Если |
А и А1 - |
ариф |
||||
метические выражения, |
принимающие |
определенные |
значения, |
то |
|||||
A t А7 может быть истинным |
или ложным. Таким |
образом, мы при |
|||||||
ходим к понятию простого булевого (логического) выражения. |
|||||||||
Итак, |
простым булевым |
выражёнием называется отношение в част |
|||||||
ном случае At А1, где |
А, А- арифметические выражения, |
1 |
- |
||||||
один из введенных выше символов отношений (> t^ |
|
|
|
||||||
Примеры отношений: |
|
|
|
|
|
|
|||
|
а = 6 ; |
|
|
|
|
|
|
||
|
6+ С - T [ i + 3j < 9.2$; |
|
|
|
|||||
|
(х -a )* (X- ё) < О. |
|
|
|
|
||||
Простое булевое выражение - это правило вычислен»;:'!.пос |
|||||||||
ле которого получается |
результат, |
могущим принимать одно из |
|||||||
двух логических значений: |
tz u e |
(истинно) и |
^aE se |
|
|||||
(ложно). |
|
|
|
|
|
|
|
|
|
В целом А X к' |
можно рассматривать как |
логическую |
пере |
||||||
менную и, построиз |
соответствующим |
образом |
операции, на |
этом |
|||||
двухэлементном ( Ігие |
и $аЦ е ) множестве двухместные |
опера |
|||||||
ции, можно образовать оолее сложные логические выражения. |
|||||||||
Приведем таблицу |
основных двухместных.логических |
опера |
торов
- 53 -
Таблиіда
р
f a l s e f a ls e tz u e t z u e
9 f a l s e
h u e fa ls e tz u e
IP
. h u e
tz u e
fa ls e
f a l s e
Р Ч fa ls e
fa ls e fa ls e І ш е
p v y fa ls e iz u e h u e t z u e
tz u e |
Р = Я |
t z u e |
|
h u e |
f a ls e |
fa ls e |
fa ls e |
h u e |
t z u e |
Сокращенная форма Рулевого выражения записывается в ви
де |
|
|
|
или |
|
|
f |
|
|
У |
|
|
|
может быть оулезым значением, булевой |
переменной, |
|||||
функцией |
(булевой), |
отношение^. |
|
|
||
Простое |
булевое |
выражение записывается |
в виде X или |
|||
|
|
|
хбхбх..., |
|
|
|
где X - |
сокращенное булевое соотношение ;. |
- |
|
|||
б - |
один из знаков логических опеоаций |
|
|
|||
|
|
б,ѵ, =>, = . |
|
|
||
Примеры простых |
булевых |
выражений: |
|
|
||
tzue; |
х=~2ѵр; х= -2 ла>gammal(z-y); |
|||||
|
|
7(х --2 лір)ѵ$ѵх = > z . |
||||
порядок выполнения операций в логических выражениях, |
||||||
как и в случае арифметических |
выражений, задается |
тремя сле |
||||
дующими правилами: |
|
|
|
|
1)правило скобок;
2)правило приоритета, которое предлагает для разных опера ций следующий порядок выполнения:
а) вычисляются отношения,
|
- '54 - |
|
|
• б) вычисляются операции |
1 |
, |
|
в) |
вычисляются операции |
А |
, |
г) |
вычисляются операции |
V |
, |
д) |
вычисляются операции |
3 |
, |
е) |
вычисляются операции |
= |
' |
3) правили "слева-направо", которое предлагает вычислять опе раторы слева направо.
Примеры использования булевых выражений.
I.=
2..X-=2.95x3>г:
3. р : — уЛ Х г
4. |
аѵ у > 6 . |
Эти примеры показывают, что логической переменной мож |
|
но присваивать значение с помощью оператора присваивания. |
|
Остается ввести еще одно понятие, связанное с логичес |
|
ким выражением. Это |
так называемое условное выражение. Услов |
ное выражение может иметь дзе Форш: сокращенное условное |
|
выражение и полное |
условное выражение. |
<^сокр.усл. вырак.у*: := ^<логич.выр.)> &£У7<^езусл.внраж^> ;
<полиое |
усл.выр.^> : := /^<(логич.выр.^> ^еѵ7<^езусл.выраж.^> |
||
Символ |
означает |
"равно по |
определению". |
Если выражения, |
входящие |
в состав условного, являются |
арифметическими, то они называются условными арифметическими. В противном случае - булевым условным выражением. Существу ют $ыенующие условные.выражения. Примером условного булевого выражения может служить
-55 -
if А < 1 ih e n £ < W e £ s e А ^ c .
Условное выражение может стоять в правой части оператора
присваивания. Например,
у : = i f a |
= 6 ih en 3 е й е i f с = d ih en 4 e ä e / О ; |
|
if- = i { t |
= iih e n г . 71 e is e c fjt = Z ib e n |
3 . 2 3 |
e & e i f t = B ih e n 3 .5 4 eCse i f t |
= 4 |
|
ih e n 3 . 6 5 e â s e 3 . 6 6 6 . |
|
,Последний оператор означает, «іто переменной у присваива ется одно из значений, определяемых с помощью таблицы, при веденной ниже.
|
|
|
|
|
.Таблица |
t |
.1 |
С ■ |
3 |
4 |
Остальные значения |
У |
2.71 |
3.23 |
Г” 3.54 |
3.65 |
3.666 |
|
|
|
|
|
1 § 8. Именующие выражения
Известно, что при программировании на машинном языке необходимо указать адрес ячейки (я -еек), откуда берутся дан ные. При составлении программы часто используется прием, на зываемый модификацией, в результате которого меняется адрес ячейки, который играет роль имени (идентиф'икатора) перемен ной.
- 56 -
Выше было указано, что роль адреса в АЛГОЛе играет поня тие идентификатора.
Множество слов в АЛГОЛе, играющих роль идентификаторов, может быть разбито на ряд подмножеств в зависимости от при надлежности идентификатора и его смысла (семантики).
В частности, операторы АЛГОЛа обозначаются (или имену ются) с помощью меток. В АЛГОЛе монно организовать процесс модификации меток, для чего и слузит именующее выражение.
Именующее выражение есть правило для получения метки из зозмонянх меток (обычно нескольких). Пример именующих виражений:
if а > 6thenPJ)Q е&е ifс >с/ then QRS e£se /36.
С понятием метки тесно связано понятие оператора перехода, который мы рассмотрим ниже. Кроме того, далее будут рассмот рены некоторые конструкции языка (например, переключатель), которые тесно примыкают к понятию именующего внранения.
Итак, метка - идентификатор оператора. После метки, сто ящей перед оператором, всегда ставится двоеточие.
§ 9. Оператор перехода
Оператор перехода - один из наиболее простых операторов
АЛГОЛа. В некоторой степени он эквивалентен командам безусловнЗго перехода в машинных языках,
Вид оператора перехода - , где £ - метка опера-
- 57 -
■гора, находящегося в некотором месте программы. Здесь опера тор часто используется для организации циклических процессов. Он указывает, что следующим после него должен выполняться one-, ратор, попеченный меткой , В общем случае на месте <Хі мо жет стоять некоторое именующее выражение.
Пример.а Составить программу получения натуральных чисел
X = 0, I, 2, —
Программа будет иметь вид: Х- ~О: т : х : —Х+ 1j CjQ to ff).
Блок-схема программы приведена на рис. Ч,
?ис. 4
пример, Найти запись программы для вычисления
У = /х 2*"... |
x f l =/?/.. |
Запись имеет вид:
f - = J ;
Cud: tj-l = reihen go to копег ■
f . - y n - ,
д о г о Сдсі ‘ K o n e z ,
£ще раз подчеркнем, что оператор перехода дает возмож ность нарушать естественную последовательность в соответст вии с возможностями, задаваемыми именующимися выражениями и, следовательно, передавать управление другим частям программы Заметим, что в приведенном выше примере вычисления факториа
ла последовательности бѵкв ,! C/CL " и "Konez" игоавт роль
ü
меток операторов.
§ ІО. Условный оператор
Он является аналогом команд условного перехода, струк тура его напоминает структуру булевых выражений. В простой форме он имеет вид:
<^отношениSythen <рператор^> .
Действие этого оператора заключается в следующем. Если отно
шение выполняется, |
то |
переходят |
к |
оператору, |
стоящему |
за |
сло |
||
вом th e fl ; |
если не |
выполняется |
- |
переходят |
к |
оператору, |
сле |
||
дующему за |
ним. После |
слова ih s n |
не монет |
идти снова |
услов |
||||
ный оператор. |
|
|
|
|
|
|
|
|
|
Примеры условных |
операторов. |
|
|
|
|
|
- 59 -
1. t jj x < w th e n go -to d e t i a ;
2. i f x < / о th e n g : = 2 .
В общем случае после может идти произвольное буле-
вое выражение. Существует более развитая форма условного опе
ратора: |
|
i f ß |
t h e n |
I |
‘e £ s e I |
, |
|
|
|
|
|
|
|
||||
где |
ß |
- |
логическое |
выражение ; |
|
|
|
|
|
|
|
|
|||||
|
l ' - |
оператор |
(кроме условного). |
|
|
|
|
|
|
||||||||
|
1 |
- |
может быть любым оператором. |
|
|
|
|
|
|||||||||
|
Примеры использования |
условного |
оператора. |
|
|
||||||||||||
1. |
Присвоить |
д |
абсолютное |
значение |
В |
: |
|
|
|
|
|||||||
|
|
|
i f |
В |
5*0 |
-èhenу : |
- В |
e B s e g : = - |
ё |
, |
|
|
|||||
2. |
Если |
2 < 0 |
, то /7? |
увеличивается |
на I , |
а |
А |
и / Ъ |
не |
||||||||
изменяются; если Z |
|
= сг то А |
увеличивается на I, |
а /7? |
и /? |
||||||||||||
остаются неизменными; если |
|
, |
то /7 увеличивается на' I , |
||||||||||||||
а /77 и Л |
|
ne :i3;'.eun!JTCH.ii£ АЛГОЛе |
эти;.' |
условия:: соответствует |
|||||||||||||
ОЛ0Д, уэз лисьс |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
О |
ihen Л?: = |
т н |
e h e $ 2 = 0 |
then В : = А+ і e h e n - м . |
3. Предположим, что в некотором месте программы мы должны вы полнить действия: если Т - П Ч , положить2 )—X2VL продолжить вычисления; если ЬфП.~1 , то нужно передать управление опе ратору с меткой SpecLüh . зти условия могут быть записаны с помощью выражений:
$ т = п ч ih en ]):~ x \S . e B s e д о t o dtp e c i a h
или
$ І Ф п ч th e n g o t o d p e c l a B ;