Программирование составных условий

Как составить алгоритм решения задач с составными условиями для реализации в визуальной среде программирования?

Новые знания

Подумай

Можно ли несколько простых условий объединить в одно условие?

При решении различных задач иногда возникает необходимость проверять выполнение двух (например, 0 < a < 5) и более условий. Такие условия называют составными. С помощью логических операций простые условия объединяют в составные. Простые условия при этом обязательно заключаются в скобки, так как логические операции имеют более высокий приоритет, чем операции сравнения. При составлении составных условий используют логические операции.

Конъюнкция (and) – логическая операция, ставящая в соответствие каждым двум высказываниям новое высказывание, являющееся истинным тогда и только тогда, когда оба исходных высказывания истинны (табл. 4.11).

A

B

not A

A and B

A or B

A xor B

true

true

false

true

true

false

true

false

false

false

true

true

false

false

true

false

false

false

false

true

true

false

true

true

Основные логические операции

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

and – логическое «и» (конъюнкция);
​or – логическое «или» (дизъюнкция);
​not – логическое отрицание (инверсия).

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

Инверсия (not) — логическая операция, которая каждому высказыванию ставит в соответствие новое высказывание, значение которого противоположно исходному (табл 4.12).

True – «истина»,
​false – «ложь».

Если в процессе
​использования
​оператора «if» данное
​ условие истинно, то
​выполняется операторы
после then.
​Если условие ложное, то
​ выполняется операторы
​после else.

Примеры выполнения логических
​операций:

(2 > 5) and (2 > 3) – false (ложь)
​(1 < 5) and (1 > 0) – true (истина)
​(3 > 2) or (3 < 1) – true (истина)
​(3 > 2) or (2 > 0) – true (истина)
​(1 > 2) or (1 < 0) – false (ложь)
​not (5 > 6) – true (истина)
​not (6 > 5) – false (ложь)
​(2 = 0) xor (2 <> 2) – false (ложь)
​(2 = 0) xor (2 > 0) – true (истина)
​(3 > 0) xor (2 > 0) – false (ложь)

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

Правила выполнения логических операций

  • Составное условие, состоящее из двух простых условий, соединенных операцией and, верно (истинно) только тогда, когда верны оба простых условия.
  • Составное условие, состоящее из двух простых условий, соединенных операцией or, верно тогда, когда верно хотя бы одно из простых условий.
  • Составное условие not верно только тогда, когда простое условие ложно.

Рассмотрим применение составных условий на примерах. Задача. Определить, является ли введенное число двузначным.

Алгоритм решения:

если (a>=10) и (a<=99), то вывести сообщение ‘число двузначное’, иначе – ‘число недвузначное’

Программа решения задачи может иметь вид:
rogram dvuznachnoe;
​var a:integer;
​begin
​write (‘Введите целое число: ‘);
​readln (a); {исходное число}
​if (a>=10) and (a<=99) then write (‘число двузначное’)
​else write(‘число недвузначное’);
​end.

Теперь с вами рассмотрим примеры с составными условиями, на языке модульного программирования при решении задач.

Синтез

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

  • and
  • else
  • for
  • or
  • end
  • not


​Пример 1

Даны целые числа a, b, c. Нужно определить, существует ли среди них пара взаимно противоположных чисел. Если есть взаимно противоположные числа, то ввести с обозначением «1», если нет таковых чисел, то получим ответ с обозначением «0».

Алгоритм решения:

В задаче рассматриваются условия определения пара взаимно противоположные числа: a + b = 0, a + c = 0, b + c = 0.
​Например, если a: = 5, b := –5, c := 7 то выполняется условие a + b =0. Это означает, что числа a, b – взаимно противоположные.
​При решении задач достаточно, чтобы из трех условий a + b = 0, a + c =0 или b + c =0 выполнялся хотя бы один.

Применяя логическую операцию «или» напишем программный код на языке Паскаль:

Var а, b, c : integer;
​Begіn
​Readln ( a, b, c);
​Іf (a + b = 0) or (a + c = 0) or (b + c =0)
​then write (1) else write (0);

​End.

Рассмотрим примеров с составными условиями в среде программирования Lazarus.


Пример 2

На плоскости дана точка А с координатами х, у. Опреде-лить, в какой четверти координатной плоскости лежит данная точка А.

Алгоритм решения:

Принадлежность точки А к какой
либо четверти координатной плоскости определяется знаками
ее координат х, у
Принадлежность точки А в четверти координатой плоскости 
определяется знаками координат
х, у. Например, если точка А лежит во 2-четверти, то знаки координат для х будет с минусом
(–) и для у с плюсом (+). 

Рис. 4.42.

Форма проекта с составными условиями в среде программирования Lazarus.

Указаны начальные компоненты проекта, и дана форма выполнения проекта.



​procedure

TForm1.Button1Click(Sender: TObject);

var

x, y: integer;

begin

x:=StrToInt(edit1.text);

y:=StrToInt(edit2.text);

if (x>0) and(y>0) then begin

edit3.text:='да'; edit4.text:='нет'; edit5.text:='нет'; edit6.text:=' нет'; end;

if (x<0) and(y>0) then begin

edit3.text:=’нет’;

edit4.text:=’да’; edit5.text:=’нет’; edit6.text:=’нет’; end;

if (x<0) and(y<0) then begin edit3. text:=’нет’; edit4.text:=’да’;

edit5.text:=’да’;edit6.text:=’нет’; end; if (x>0) and(y<0) then begin edit3. text:=’нет’; edit4.text:=’нет’; edit5. text:=’нет’; edit6.text:=’да’; end; end.

Анализ

Проанализируйте проект «Логические операции»:

  • анализ алгоритма;
  • анализ формы;
  • анализ кода программы.

Практическая работа

Выполнив в среде программирования Lazarus следующее задание, вы закрепите свои знания по разработке проектов.

Подготовьте проект в визуальной среде, отражающий работу логических операций and, or, not.

Форма проекта с составными условиями в среде программирова-ния Lazarus.

На рис. 4.46 указан начальные компоненты проекта, а на рис. 4.47 дана форма выполнения проекта.

Рис. 4.46. Компоненты проекта
Рис. 4.47. Выполнение проекта

Тогда получаем такой программный код в среде программирования Lazarus (рис. 4.48 а, б).

Рис. 4.48 б. Код проекта


​-1-​

procedure TForm1. Button1Click(Sender: TObject);

​var

​a,b:boolean; l,s:string;

​begin

​l:=edit1.text; s:=edit2.text;

​label2.Caption:='AND';

​if l='true' then a:=true else a:=false;

​if s='true' then b:=true else b:=false;

​if a and b then edit3.text:='true' else edit3.text:='false';

​end;


-2-​

procedure TForm1. Button3Click(Sender: TObject);​

​var

​a,b:boolean; l,s:string;

​begin

​l:=edit1.text; s:=edit2.text;

​label2.Caption:='XOR';

​if l='true' then a:=true else a:=false;

​if s='true' then b:=true else b:=false;

​if a Xor b then edit3.text:='true' else edit3.text:='false';

​end


​-3-

procedure TForm1. Button2Click(Sender: TObject);

​var

​a,b:boolean;l,s:string;

​begin

​l:=edit1.text; s:=edit2.text;

​label2.Caption:=’OR’;

​if l=’true’ then a:=true else a:=false;

​if s=’true’ then b:=true else b:=false;

​if a or b then edit3.text:=’true’ elseedit3.text:=’false’;

​end;


-4-​

procedure TForm1. Button4Click(Sender: TObject);

​var

​a:boolean; l:string;

​begin

​l:=edit1.text; label2.Caption:=’NOT’;

​if l=’true’ then a:=true else a:=false;

​if not(a) then

​edit3.text:=’true’ else

​edit3.text:=’false’;

​end;

​end.

Выполни

Программирование с составными условиями

1. Определить является ли заданное число N трехзначным? Если выполняется условие, то выдать ответ «1», иначе выдать «0».

2. Даны натуральные числа a , b. Определить, является ли четырехугольник со сторонами a, b квадратом?

3. Определить, является ли одно из чисел a и b четным.

Вопросы

1. Что такое составные условия?

2. Чем отличаются составные условия от простых условий?

3. Какие существуют виды логических операций?

4. Как выполняются логические операции?

5. Как используются логические операции при составлении составных условий?

6. Понятия «ложь» и «истина» и их роль в составных условиях.

Оценка

  • оцените применение составных условий в повсдневной жизни;
  •  оцените эффективность использования составных условий по сравнению с простыми условиями.
Өтінемін күте тұрыңыз