Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABs1-10a.doc
Скачиваний:
6
Добавлен:
17.11.2019
Размер:
833.54 Кб
Скачать

Лабораторная работа n 7. Программирование алгоритмов ветвящейся структуры

=================================

Операторы отношения. Условный оператор.

=======================================

Цель и задача работы : изучить логический тип BOOLEAN, логичес-

---------------------- кие операторы AND, OR, NOT, и операторы

отношения. Понятия логический оператор и

условный опреатор.

Теоретические положения.

------------------------

Логический тип в Паскале обозачается стандартным именем BOOL-

еан. Множество значений этого типа содержит всего два истинностные

значения, каковыми являются идентификаторы FALSE (ложь) и TRUE (ис-

тина). Логический тип относится к упорядоченным типам языка, т.е.

Определен так, что FALSE<TRUE, причем они имеют порядковые номера

0 и 1 соответственно.

Если в левой части оператора присваивания указана переменная

типа BOOLEAN, то в правой части оператора должно быть задано логи-

ческое выражение.

Логическое-выражение = выражение.

Для работы с логическими переменными в языке определены три

логические операции (NOT - отрицание, AND - логическое умножение,

OR - логическое сложение) и операции отношения ("=","<>","<",">",

"<=","=>").

Таблица истинности для логических операций с операндами A и B

-------------------------------------------------------------

+-------+-------+-------+-------+---------+--------+

I A I B I NOT A I NOT B I A AND B I A OR B I

+-------+-------+-------+-------+---------+--------+

I TRUE I TRUE I FALSE I FALSE I TRUE I TRUE I

+-------+-------+-------+-------+---------+--------+

I TRUE I FALSE I FALSE I TRUE I FALSE I TRUE I

+-------+-------+-------+-------+---------+--------+

I FALSE I TRUE I TRUE I FALSE I FALSE I TRUE I

+-------+-------+-------+-------+---------+--------+

I FALSE I FALSE I TRUE I TRUE I FALSE I FALSE I

+-------+-------+-------+-------+---------+--------+

В разветвляющихся вычислительных процессах отдельные этапы вы-

числения (операторы) выполняются в зависимости от некоторых усло-

вий. Для задания подобного рода разветвляющихся алгоритмов служит

условный оператор.

Формат оператора:

оператор-IF = "IF" ["("] условие [")"] "THEN" оператор

["ELSE" оператор]

условие = логическое-выражение.

IF (Если), THEN (то), ELSE (иначе).

Если условие выполняется (логическое выражение принимает значе-

ние TRUE), то выполняется оператор, стоящий после THEN, иначе выпол-

няется оператор, стоящий после ELSE. Условный оператор может быть

полным (конструкция : IF <условие> THEN <оператор> ELSE <оператор>)

и сокращенным (конструкция : IF <условие> THEN <оператор>).

Схемы алгоритмов работы полного и сокращенного условного оператора.

-------------------------------------------------------------------

Полный условный оператор

------------------------

I

/^\

/ \

истинно /логичес- \ ложно

+------<кое выражение>------+

I \ / I

I \ / I

+-----+----+ \ / +-----+----+

I оператор I I оператор I

+-----+----+ +-----+----+

I I

+-------------+-------------+

I

сокращенный условный оператор

-----------------------------

I

/^\

/ \

истинно /логичес- \ ложно

+------<кое выражение>------+

I \ / I

I \ / I

+-----+----+ \ / I

I оператор I I

+-----+----+ I

I I

+-------------+-------------+

I

Обратим внимание, что в условном операторе по синтаксису между

символами THEN и ELSE, и после ELSE может присутствовать только

один оператор.

Если необходимо несколько операторов, то нужно использовать состав-

ной оператор.

Составным оператором являеся последовательность операторов,

об'единенных в один оператор путем заключения этой последователь-

ности в операторные скобки - служебные слова BEGIN (начало) и END

(конец).

Пример : BEGIN

-------- A:=2; C:=3;

B:=C DIV A;

END;

Довольно часто встречаются случаи, когда вычислительный про-

цесс надо разветвлять не по двум, а по K (K>2) возможным путям. Это

можно сделать и с помощью условного оператора, однако запись в этом

случае становиться громоздкой и не наглядной:

IF B1

THEN S1

ELSE IF B2

THEN S2

ELSE

..............

IF Bк

THEN Sк;

во многих случаях для программиста может быть более удобен опера-

тор варианта. Идея оператора состоит в следующем. Все операторы,

среди которых производится выбор для исполнения, перечисляются в

явном виде в операторе варианта (ясно, что число таких операторов

фиксированно). Выбор среди них оператора, подлежащего исполнению,

производиться с помощью заданного в операторе варианта селектора

оператора - выражения перечисляемого типа. При этом каждый из вы-

бириемых для исполнения операторов снабжается своеобразной "меткой"

- меткой варианта, роль которой выполняет то значение селектора

(т.е. константа того же типа, что и селектор), при котором должен

выполняться этот оператор. Предусмотрен и такой случай, когда дан-

ный оператор должен выполняться при любом из нескольких возможных

значений селектора - в этом случае оператор снабжается соответс-

твующим списком меток варианта. При выполнении оператора варианта

сначала вычисляется значение селектора. Затем выполняется тот опе-

ратор, одна из меток которого совпадает со значением селектора и

метка варианта - это не то же самое, что и метка оператора, поэ-

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

Формат оператор вариант:

опеатор-CASE = "CASE" ["("] выражение [")"] "OF" элемент-

списка-случаев (*";" элемент-списка-случаев*) "END"

элемент-списка-случаев = [метка-случая ":" (*метка-случая

":"*) оператор

метка-случая = константа.

I

+-----+-----+

I Выражение I

+---+-+-+---+

I I I

+----------------+ I +------- ... ------+

I I I

IМетка1 Iметка2 IметкаK

+----+-----+ +----+-----+ +----+-----+

I оператор I I оператор I ... I Оператор I

+----+-----+ +----+-----+ +----+-----+

I I I

+------------------+--------- ... ------+

I

Примеры : CASE (I MOD 2) оF

--------- 0:M:=0;

1:M:=1;

END;

CASE SYM OF

'+':K:=1;

'-','*':K:=2;

END;

Варианты заданий :

------------------

Написать прогамму выполняющие операторы S1, S2, S3 в зависи-

мости от следующего условия:

IF ((A=B) AND (C>D)=TRUE OR NOT A)

THEN IF ((TRUE<>A) AND (C-D<3))

THEN S1

ELSE S2

ELSE S3;

где S1, S2, S3 процедуры вывода на экран дисплея поясняющей

информации о выполнении того или иного условного оператора.

Следует обратить внимание на ввод значений переменных типа BOOLEAN.

В языке программиравания Паскаль из стандартного файла ввода INPUT,

нельзя ввести значение переменной этого типа. Ввод значений этого

типа можно осуществить программно с помощью других типов, обычно CHAR.

+-----------+---------------------------+

I Номер I значения I

I варианта +-------+-------+-----+-----+

I I A I B I C I D I

+-----------+-------+-------+-----+-----+

I 1 I TRUE I FALSE I 5 I 2 I

+-----------+-------+-------+-----+-----+

I 2 I TRUE I FALSE I 2 I 5 I

+-----------+-------+-------+-----+-----+

I 3 I FALSE I TRUE I 5 I 2 I

+-----------+-------+-------+-----+-----+

I 4 I FALSE I TRUE I 2 I 5 I

+-----------+-------+-------+-----+-----+

I 5 I TRUE I TRUE I 6 I 6 I

+-----------+-------+-------+-----+-----+

I 6 I TRUE I TRUE I 0 I 7 I

+-----------+-------+-------+-----+-----+

I 7 I FALSE I FALSE I 5 I 5 I

+-----------+-------+-------+-----+-----+

I 8 I FALSE I TRUE I 10 I 9 I

+-----------+-------+-------+-----+-----+

I 9 I FALSE I TRUE I 10 I 7 I

+-----------+-------+-------+-----+-----+

I 10 I TRUE I FALSE I 2 I 2 I

+-----------+-------+-------+-----+-----+

I 11 I FALSE I TRUE I 8 I 10 I

+-----------+-------+-------+-----+-----+

I 12 I FALSE I FALSE I -15 I -12 I

+-----------+-------+-------+-----+-----+

I 13 I FALSE I FALSE I 0 I 3 I

+-----------+-------+-------+-----+-----+

I 14 I FALSE I FALSE I 10 I 1 I

+-----------+-------+-------+-----+-----+

I 15 I TRUE I TRUE I 10 I 1 I

+-----------+-------+-------+-----+-----+

I 16 I TRUE I FALSE I 10 I 1 I

+-----------+-------+-------+-----+-----+

I 17 I TRUE I FALSE I -1 I -4 I

+-----------+-------+-------+-----+-----+

I 18 I FALSE I TRUE I 2 I -1 I

+-----------+-------+-------+-----+-----+

I 19 I TRUE I FALSE I -1 I 2 I

+-----------+-------+-------+-----+-----+

I 20 I FALSE I FALSE I 2 I -1 I

+-----------+-------+-------+-----+-----+

I 21 I TRUE I TRUE I 0 I 3 I

+-----------+-------+-------+-----+-----+

I 22 I TRUE I FALSE I 0 I 3 I

+-----------+-------+-------+-----+-----+

I 23 I FALSE I TRUE I 0 I 7 I

+-----------+-------+-------+-----+-----+

I 24 I FALSE I TRUE I 0 I 3 I

+-----------+-------+-------+-----+-----+

I 25 I TRUE I TRUE I 2 I -1 I

+-----------+-------+-------+-----+-----+

I 26 I FALSE I FALSE I 1 I 2 I

+-----------+-------+-------+-----+-----+

I 27 I TRUE I FALSE I 4 I 1 I

+-----------+-------+-------+-----+-----+

I 28 I FALSE I TRUE I 2 I 8 I

+-----------+-------+-------+-----+-----+

I 29 I FALSE I TRUE I -3 I -1 I

+-----------+-------+-------+-----+-----+

I 30 I TRUE I TRUE I 0 I -2 I

+-----------+-------+-------+-----+-----+

I 31 I TRUE I FALSE I 1 I 6 I

+-----------+-------+-------+-----+-----+

I 32 I FALSE I FALSE I 3 I 3 I

+-----------+-------+-------+-----+-----+

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]