Выполнить представленные задания

Лабораторная работа 18

Разработка программ на составление логических выражений

 

1. Цель работы: овладеть практическими навыками разработки программ на составление логических выражений в среде программирования Pascal ABC.

 

2. Теоретическое обоснование

 

Для того, чтобы программа была не линейной (т.е. в зависимости от ситуации выполнялись разные инструкции) в языках программирования используются логические выражения, результат которых может быть либо правдой (true), либо ложью (false). Результат логических выражений обычно используют для определения пути выполнения программы.

Простые логические выражения являются результатом операций отношения между двумя операндами (значениями). В примерах ниже операндами являются значения переменных x и y. Операндами могут быть числа, символы и другие типы данных. Все что можно сравнивать между собой. Однако не рекомендуют сравнивать вещественные числа из-за особенностей их хранения в памяти компьютера.

В Паскале предусмотрены следующие операторы отношений:

меньше: x < y

больше: x > y

равно: x = y

не равно: x <> y

меньше или равно: x <= y

больше или равно: x >= y

Булевы типы

Результатом логического выражения всегда является булево (логическое) значение. Булев тип данных (boolean) может принимать только два значения (true или false). Эти величины упорядочены следующим образом: false < true. Это значит, что данные булевого типа являются не только результатом операций отношения, но и могут выступать в роли операндов операции отношения. Также к ним можно применять функции ord, succ, pred, процедуры inc и dec.

Значение типа boolean занимает в памяти 1 байт.

Кроме типа boolean в Pascal введены еще три булевых типа — bytebool (занимает 1 байт), wordbool (занимает 2 байта) и longbool (занимает 4 байта).
Для всех булевых типов значению false соответствует 0, а значению true — любое ненулевое значение. Логические переменные, принадлежащие разным булевым типам, ведут себя по-разному при выполнении над ними операций. Ниже приводится пример, реализованный на языке Pascal (в комментариях отображается результат).

var

b:boolean;

wb:wordbool;

begin

b:= false;

b:= pred(b);

writeln(b,' ',ord(b)); // TRUE 255

writeln(b=true); // TRUE

 

wb:= false;

wb:= pred(wb);

writeln(wb,' ',ord(wb)); // TRUE -1

 

b:= true;

b:= succ(b);

writeln(b,' ',ord(b)); // TRUE 2

 

wb:= true;

wb:= succ(wb);

writeln(wb,' ',ord(wb)); // FALSE 0

end.


Логические операции

С помощью логических операторов можно формировать сложные логические выражения. Логические операторы часто применяются по отношению к простым логическим выражениям.

В языке программирования Pascal предусмотрены следующие логические операции:

true xor true = false

true xor false = true

false xor true = true

false xor false = false

- Конъюнкция (логическое умножение, пересечение) - and. Выражение a and b дает значение true только в том случае, если a и b имеют значение true. Во всех остальных случаях значения выражения a and b дает false.

true and true = true

true and false = false

false and true = false

false and false = false

- Дизъюнкция (логическое сложение, объединение) – or. Выражение a or b дает значение false только в том случае, если a и b имеют значение false. Во всех остальных случаях результат – true.

true or true = true

true or false = true

false or true = true

false or false = false

- Отрицание (инверсия) – not. Выражение not a имеет значение, противоположное значению a.

not true = false

not false = true

Исключающее ИЛИ – xor. Выражение a xor b дает значение true только в том случае, когда только один из операндов имеет значение true.

Последовательность выполнения логических операторов: not, and, or.

В языке Паскаль сначала выполняются логические операторы (and, or, xor, not), а уже потом операторы отношений (>, >=, <, <=, <>, =), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

Сложные булевы выражения могут не обрабатываться до конца, если продолжение вычислений не изменит результат. Если булево выражение в обязательном порядке нужно обрабатывать до конца, то это обеспечивается включением директивы компиляции {B+}.

Стандартные булевские функции

odd(x) = true, если x нечетный (x целый тип);

eoln(x) = true, если встретился конец строки текстового файла x;

eof(x) = true, если встретился конец файла x.

В остальных случаях эти функции принимают значение false.

Справочный материал представлен в презентации «Pascal ABC_Логика.pptx»

 

 

3. Алгоритм выполнения работы:

Ознакомиться с теорией вопроса

Выполнить представленные задания

 

Задание 1. Разработать алгоритм решения задачи на языке блок-схем и линейную программу в среде программирования Pascal ABC, печатающую значение TRUE, если указанной высказывание является истинным, и FALSE – в противном случае. Решить 1 вариант!!! Результат выполнения (листинг программы и вывод данных) отобразить в виде скриншота.

Задание 2. Для данных областей составить  линейную программу в среде программирования Pascal ABC, печатающую TRUE, если точка с координатами (х,у) принадлежит области, и FALSE – в противном случае. Результат выполнения (листинг программы и вывод данных) отобразить в виде скриншота.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: