Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Булевы выражения в CF-Паскале





 

Булевы выражения могут быть включены в состав операторов IF и WHILE языка CF-Паскаль для уменьшения сложности многих программ. В качестве иллюстрации переработаем программу MinSort с использование булевых условий вместо вложенных операторов IF там, где это возможно.

Новые идеи: Булевы выражения языка Паскаль.

 

SR23. <условие>::= <выражение> <сравнение> <выражение>

| NOT(<условие>)

|(<условие>) AND (<условие>)

|(<условие>) OR (<условие>)

 

это правило показывает, что любое условие, используемое с булевым оператором, должно быть заключено в скобки.

 

Примеры выражений с одинаковым значением:

 

NOT(Ch1 < Ch2) Ch1 >= Ch2
NOT(Ch1 > Ch2) Ch1 <= Ch2
NOT(Ch1 = Ch2) Ch1 <> Ch2
(Ch1 <= Ch2) AND (Ch1 >= Ch2) Ch1 = Ch2
(Ch1 <= Ch2) AND (Ch1 < Ch2) Ch1 < Ch2
(Ch1 <> Ch2) AND (Ch1 > Ch2) Ch1 > Ch2
(Ch1 < Ch2) AND (Ch1 > Ch2) FALSE (как правило, это ошибка)
(Ch1 < Ch2) OR (Ch1 > Ch2) Ch1 <> Ch2
(Ch1 <= Ch2) OR (Ch1 < Ch2) Ch1 <= Ch2
(Ch1 = Ch2) OR (Ch1 <> Ch2) TRUE (как правило, это ошибка)

 

Булевы тождества и факты могут быть использованы для создания эквивалентных условий языка Паскаль. Например, закон деМоргана:

 

NOT(P OR Q) = (NOT P) AND (NOT Q)

 

Означает, что операторы IF, начинающиеся с

 

IF NOT((Ch1 = Ch2) OR (Ch3 < Ch4))

 

и

 

 

IF (Ch1 <> Ch2) AND (Ch3 >= Ch4)

будут иметь одинаковые действия. Большинству людей более понятен второй вариант.

 

Булевы выражения очень полезны в программировании. Например:

 

WHILE (Ch = ‘ ‘) OR (Ch = ‘0’)

DO

READ(Ch)

 

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

 

IF (Ch >= ‘0’) AND (Ch <= ‘0’)

THEN

WRITE(Ch)

 

будет печатать только цифры.

 

Снова семейство программ MinSort.

Булевы выражения позволяют программе MinSort быть улучшенной, создавая новое семейство программ MinSortB. Раздел проекта 3.1 может быть заменен следующим:

 

Design part 3.1

BEGIN {печатаем минимальное значение из Ch1, Ch2, Ch3 в OUTPUT, оставшиеся значения помещаем в Ch1, Ch2}

IF (Ch1 < Ch2) AND (Ch1 < Ch3)

THEN

{Печатаем Ch1 в OUTPUT, помешаем Ch3 в Ch1}

BEGIN

WRITE(Ch1);

WRITE(Ch1:= Ch3)

END

ELSE

{Печатаем минимум из Ch2, Сh3 в OUTPUT. В случае необходимости копируем Ch3 в Ch2}

IF Ch2 < Ch3

THEN

BEGIN

WRITE(Ch2);

Ch2:= Ch3

END

ELSE

WRITE(Ch3)

END

 







Date: 2016-11-17; view: 236; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию