Файл: Соловейчик, Р. Э. Программирование на АЛГОЛ-60 учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.10.2024
Просмотров: 93
Скачиваний: 1
—32 -
тор, а остальные условные операторы пропускаются; если все отношения ложны, то выполняется оператор, следующий за пос
ледним |
е1ае |
. Блок-схема для этого случая имеет вид |
||
if |
then |
31 else if Но then Sp else |
S^j |
3^ ; |
Проиллюстрируем применение этих конструкций следующим приме ром. Пусть где-то в программе нужно предусмотреть выполнение
ряда требований: |
|
|
|
|
|
|
|
||
1. |
Если |
а< ъ |
, то положить |
g |
равным 9,8 и про |
||||
должить счет (перейти к пункту 4). |
|
|
|
|
|||||
2. |
Если |
оС-/5>- |
14,7 |
, то положить J> - |
c °s -g - ,а |
||||
<5-> = 7 _ Г 1*^и продолжить счет (перейти к пункту 4). |
|||||||||
3. Если ни одно из предыдущих указаний не выполнено, |
|||||||||
то передать управление оператору с меткой |
unusual |
||||||||
4. |
После |
выполнения указаний |
I и |
2 положить |
flag |
||||
равным I. |
|
|
|
|
|
|
|
|
|
Все это может быть записано |
следующим образом, при |
||||||||
условии естественного обозначения идентификаторов: |
|||||||||
if |
s < b |
then |
g : = |
9.S |
else |
|
|
|
|
if |
alpha |
- bets ^ |
14 •7 |
then |
|
|
|
|
|
|
begin rhoi |
= сэз |
(theta 42); |
|
|
|
|||
|
|
sigma s=7- taut 1.5 |
emd. |
|
|
|
else go to unusual • flag : = 1 ;
—зз
Следует подчеркнуть, что это, конечно, не программа, а неко торый ее внутренний фрагмент.
Условие
Естественным является использование конструкции, очень схожей с полным условным оператором для записи различных ус ловий, Большей частью эта конструкция используется совместно
с оператором присваивания. |
|
|
|
|
|
|
|||
Например, если нужно положить величину |
signal |
равной |
|||||||
нулю при |
w = е |
и равной единице при |
v |
4 |
z |
, то это |
|||
можно сделать хотя бы так |
|
|
|
|
|
|
|||
signal I = |
if |
w = z |
then 0 |
else t |
j |
|
|
|
|
Этот пример можно решить и с помощью построения полного |
|||||||||
условного оператора |
|
|
|
|
|
|
|
||
if w |
= z |
then |
signal |
: * О |
else signal |
t |
= 1 |
t |
но этот способ не рекомендуется, так как он приводит к не экономной работе машины.
Допустим, нужно написать на языке МГ0Л-60 формулу
у |
0,5 х |
+0,93, |
если |
х |
2,1 |
|
0,7 х |
+ 0,53, |
если |
х > |
2,1 |
||
|
||||||
Она будет иметь следующий вид: |
|
|
|
|||
Y ! я I f х < ? . 1 then |
0,5 х х +С.95 e ls e 0.7 |
* х *■ 0.53 ; |
Приведем еще один пример. Допустим, нужно написать выражение, изображающее величину несобственного интеграла,
названного нами Q |
, |
|
|
|
|
|
|
,если |
а< о |
; |
|
Q |
О |
.если |
а |
= |
0; |
о/ |
Ж |
,если |
а |
> |
0; |
при этом будем считать, что переменной а уже црисвоено значение одним из предыдущих операторов присваивания, но само зто значение нам неизвестно
Q 1 = If |
а< 0 |
then |
-I.570B elgc |
If |
а = 0 |
then |
0 else 1.5708 ; |
Наконец, условие бывает очень удобно для выполнения условной передачи управления. Например, в некоторой программе мы хотим
передать управление оператору с меткой |
done |
.если абсолют |
|||
ная величина разности мезду |
х в |
final |
меньше 1СГ®, и опе |
||
ратору с меткой more |
в противном случае, то |
это можно |
|||
сделать с помощью оператора |
|
|
|
|
|
go to If вЪа (х - final )< |
Ю- '’ |
then |
done else |
more ; |
Булевские выражения
С простейшим видом булевских выражений, а именно с отно шениями, мы ухе познакомились. Булевские выражения почти ана логичны арифметическим. Напомним, что арифметические выраже
ния строятся из чисел, переменных и функций в комбинации с арифметическими операциями и круглыми скобками.
Булевские выражения строятся совершенно аналогично из ло гических значений true и f a l s e , булевских переменных,
булевских фунт 1ий и отношений в- комбинации с арифметическими
и логическими операциями и круглыми скобками.
Логические операции определяются'своими таблицами истин ности, введение которых не входит в предмет М Г О Л -SO, а состав ляет часть курса математической логики. Там определены следую щие пять логических операций и установлены символы для них:•
отрицание - конъюкция - дизъюнкция - импликация - тождество -
"7 (не) ; Л ( и) ;
V(или);
О(влечет);
=(эквивалентно).
35
Эти операции полностью определяются приводимой таблицей истин ности.
p |
q |
ПР |
р М |
pVq |
PDq |
p=q |
и |
и |
л |
и |
и |
И |
и |
и |
л |
л |
л |
и |
л |
л |
л |
и |
и |
|
л и |
и |
л |
л |
л |
и |
л |
I |
и |
и |
В,,этой таблице И - означает "истинно" или true ,
Л - "ложно" или false.
Если в состав логического выражения, наряду с логически ми операциями, входят арифметические, то порядок их выполне ния при просмотре слева направо устанавливается следующей таб лицей старшинства операций.
Порядок
I 2 3 4
Операция
|
t |
+ |
— |
V V |
А А II |
Порядок Операции
51
6А
7V
80
9=
Операция считается старшей по порядку, если ее порядок меньше. Поясним использование этого правила примерами.
Пусть ухе выполнены операторы присваивания
В: = tru e ; Р; = false ; Gi = tru e . Hi * true ;
R: = 2 ; |
. a i = 12 ; , |
T : = 0; |
®s =-20 |
36
причем первые четыре переменные описаны как булевские, а вто рые четыре - как действительные.
Вычислим результат выполнения следующих операторов при сваивания:
Ъ : = F |
|
дает |
L |
= |
f a l s e |
||
М ! = 3 ^ 1 |
|
|
м а f a l se |
||||
N |
s |
= Н/Ш-$Г 25 |
|
|
N |
= |
true |
0 |
г |
= П FVR •» 3 |
= Т |
|
0 |
3 |
true |
Р 1 = G S T + 1 2 > U |
|
р |
= f a l s e |
||||
Q |
: = EVPDR = |
Т |
|
Q |
= |
f a l s e |
После |
|
того, как мы оцределили булевское выражение, вернемся |
|
|||||||||
к рассмотрению условия. Приведенные выше примеры показывают |
, |
|||||||||||
что условие - это |
конструкция вида |
|
|
|
|
|
|
|||||
|
|
|
|
if |
отношение |
then |
|
|
|
|
|
|
которой можно дать |
более общую трактовку |
|
|
|
|
|
||||||
|
|
|
If |
булевское выражение |
then |
|
|
|||||
Если, |
|
например, нужно прекратить вычисление, как только |
g |
и |
||||||||
h |
станут меньше 0,001 по абсолютной величине,то это можно |
|
||||||||||
сделать с помощью оператора |
|
|
|
|
|
|
|
|||||
if еЪэ |
(к)< 0.001 A |
abs(h )< 0.001 |
then g o |
to |
M |
; |
|
|
||||
Надо |
заметить, |
что В конструкции |
if |
...then |
|
... else |
|
|||||
слово |
|
elae иногда не обязательно, |
а иногда необходимо. Здесь |
|||||||||
действует правило: |
в операторе, начинающемся со слова |
ir |
, |
|||||||||
слово |
е!яв |
не обязательно, в условном же |
выражении, |
стоя |
||||||||
щем в арифметическом выражении или в операторе |
перехода, |
ело- |