Pascal ABC

 

ГЛАВНАЯ
УСТАНОВКА
ОКНО ПРОГРАММЫ
ЛИНЕЙНЫЕ АЛГОРИТМЫ
ЧЕРТЁЖНИК
GraphABC
    РОБОТ
АЛГОРИТМЫ С ВЕТВЛЕНИЯМИ
АЛГОРИТМЫ С ПОВТОРЕНИЯМИ
ПРОЦЕДУРЫ И ФУНКЦИИ
ТЕСТЫ
ТВОРЧЕСКИЕ РАБОТЫ
ОЛИМПИАДНЫЕ ЗАДАНИЯ
 
 

 

 

 

 

ЛИНЕЙНЫЕ АЛГОРИТМЫ  

Первая программа Простейшие программы Арифметические выражения Вычисление по формулам Целочисленная арифметикаЦелочисленные типы данных. Системы счисления   Самостоятельная работа Величины логического типа Вычисление логических выражений Задачи повышенной сложности

Алгоритмы, в которых команды выполняются последовательно одна за другой, в порядке их записи, называются линейными.

Вычисление логических выражений

 План

Логические выражения

Логическими являются такие данные и выражения, которые могут принимать только два значения – True и False.

Переменные логического типа описываются с использованием стандартного типа Boolean. Например:

Var tr, fal : Boolean;

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

True (истина), False (ложь).

Причем True и False – заранее определенные именованные константы (их можно использовать без предварительного описания). Размер выделяемой памяти под логическое данное – 1 байт. Диапазон логических значений упорядочен так, что False < True.

Логические выражения – это выражения, значения которых принадлежат к типу Boolean. Состоят из условий и логических переменных, соединенных между собой логическими операциями. В них может использоваться унарная логическая операция отрицания NOT expression-1 с бинарными логическими операциями expression-1 operator expression-2, где expression-1, expression-2 – простые условия или логические переменные; operator – одна из логических операций (AND, OR, XOR).

Пример. Зная, что условие (9>3) является истинным, а (3>9) - ложным - ложным, присвойте им значения двух переменных. Ответьте, каков будет результата выполнения программы:

 

Var tr,fal: Boolean;

Begin

    tr:=(9>3) ; fal:=(3>9);

Writeln('истина tr=',tr);

Writeln(' ложь fal=',fal);

End.

 

Результат выполнения программы:

истина tr= True

ложь fal= False

Операции отношения

Операции отношения действуют между парами выражений и не могут указываться последовательно:

A >= B         – правильно;

A >= B = C  – неправильно.

Операции отношения по старшинству одинаковы. Приоритет операций отношения считается меньшим, чем у операций арифметических действий. То есть значения выражений A > B + 2 и A > (B + 2) совпадают, ведь операция сложения выполняется первой и без скобок.

В качестве условий в Паскале можно использовать выражения

А<В А меньше В
А< = В А меньше или равно В
А = В А равно В
А> = В А больше или равно В
А>В А больше В
А<>В А не равно В

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

Унарная логическая операция – отрицание.

Смысл этой операции по-русски можно выразить «Неверно, что», то есть она меняет значение True на False и наоборот.

  Пример:

NOT A > 0

Это логическое выражение означает то же самое, что и A <= 0.

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

Логическое умножение (конъюнкция) AND

Смысл этой операции по-русски можно выразить словом И, то есть она дает значение True только в том случае, если оба условных выражения имеют значение True.

  Пример:

(A > 0) AND (A < 5)

Это логическое выражение реализует условие, математическая запись которого такова: 0 < A < 5.

Логическое сложение (дизъюнкция) OR

Смысл этой операции по-русски можно выразить словом ИЛИ, то есть она дает значение True во всех случаях, кроме ситуации, когда оба условных выражения имеют значение False.

  Пример:

(A < 0) OR (A > 5)

Это логическое выражение реализует составное условие A < 0 или A> 5.

Таблица истинности операции AND:

P

Q

P  AND  Q

истина

истина

истина

истина

ложь

ложь

ложь

истина

ложь

ложь

ложь

ложь

 

Таблица истинности операции OR:

P

Q

P  OR  Q

истина

истина

истина

истина

ложь

истина

ложь

истина

истина

ложь

ложь

ложь

 

Используется также логическая неравнозначность (исключающее ИЛИ) – XOR.

Смысл этой операции по-русски можно выразить словом ЛИБО, то есть ее применение к условиям, имеющим одинаковое значение, приводит к результату False, а к условиям, имеющим различное значение, – к результату True.

  Пример:

(Х < 0) XOR (Y < 0)

Это логическое выражение имеет значение True, если точка с координатами (Х, Y) лежит во II или IV четверти.

 

Таблица истинности операции XOR:

P

Q

P  XOR  Q

истина

истина

ложь

истина

ложь

истина

ложь

истина

истина

ложь

ложь

ложь

 

В языке  Паскаль нет возможности ввода логических данных с помощью процедуры Read. Однако предусмотрен вывод значений переменных логического типа с помощью процедуры Write.

     Самостоятельная работа

1. Наберите, запишите на диск и запустите программу:

 Program Log;
   Uses Crt;
   Var a,b: Boolean;
 Begin
   ClrScr;
   a: = True; b: = True; Writeln (a:6,b:6, a and b:6);
   a: = True; b: = False; Writeln (a:6,b:6, a and b:6);
   a: = False; b: = True; Writeln (a:6,b:6, a and b:6);
   a: = False; b: = False; Writeln (a:6,b:6, a and b:6);
   Readln;
 End.

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

 

Составные условия

В логических выражениях логические операции могут связывать несколько логических переменных или условий, например:

(Х < 0) AND (Y < 0) AND (Z < 0)

(Х < 0) OR (Y < 0) AND (Z < 0)

 

Порядок выполнения логических операций следующий:

  • унарная операция NOT имеет первый (высший) приоритет;

  • операция логического умножения AND имеет второй приоритет, как и другие мультипликативные операции *, /, div, mod;

  • операция логического сложения OR и исключающее или XOR имеют третий приоритет, как другие аддитивные операции +, –;

  • четвертый (низший) приоритет имеют операции отношения >, >=, <, <=, <>, =;

  • последняя операция (‘=’) называется проверкой на эквивалентность.

Условие X < 0 или X > 100 можно записать так:

(X < 0) OR (X > 100)

Это же условие можно сформулировать словами: «X не принадлежит отрезку [0, 100]» и записать следующим образом:

NOT ((0 <= X) AND (X <= 100))

Условие «X, Y, Z одновременно обращаются в 0» можно записать так:

(X = 0) AND (Y = 0) AND (Z = 0)

  Пример. Запишите логические выражения для следующих условий:

1) Х удовлетворяет неравенству Y<X<Z;

2) Х не принадлежит интервалу (C,D);

3) число Х отрицательно и отлично от -1;

4) хотя бы одно из чисел Y,X,Z  равно 0;

5) все числа Y,X,Z  отличны от 0.

РЕШЕНИЕ:

1) (Y<X) AND (X<Z);

2) (X<C) OR (D<X);

3) (X<0) AND (X<>-1);

4) (X=0) OR (Y=0) OR (Z=0);

5) (X<>0) AND (Y<>0) AND (Z<>0)

 

Вывод:

Логическое выражение – это выражение, которое может принимать одно из двух значений False или True. В него могут входить выражения, логические переменные, отношения, соединенные логическими операциями.

 

Очередность логических операций:

  1. NOT;

  2. AND;

  3. OR, XOR.

Операции отношения имеют низший (4-й) приоритет и выполняются в последнюю очередь.

Вопросы для повторения:

•   Что такое простое условие? Какие операции отношения используются в нем?

•   Что является результатом выполнения операции отношения?

•   Что такое составное условие? Какие логические операции используются в нем? Каков приоритет их выполнения? Как изменить этот приоритет?

•   В логическом выражении (составном условии) используются две величины логического типа (два простых услчовия) — А и В. Сколько возможно различных вариантов сочетаний значений А и В?

•   В логическом выражении (составном условии) используются три величины логического типа (три простых условия) — А, В и С. Сколько возможно различных вариантов сочетаний значений А, В и С?

Решение задач

  Пример 1. Вычислить значение логического выражения, если А = Истина, В — Ложь, С = Ложь:

а) А или С; б) (А и С) или В

Этапы выполнения задания.

I. Определение исходных данных: переменные А, В, С типа Boolean.

II. Определение результатов: переменные rezA, rezB.

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление значений rezA, rezB..

3. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип Boolean.

V.  Программа:

var A,B,C,rezA,rezB:Boolean;

Begin

A:=true;

B:=false;

C:=false;

rezA:= A OR C;

rezB:= (A AND C) or B;

writeln('rezA=',rezA);

writeln('rezB=',rezB);

End.

Можешь загрузить!       Пример 1

VI. Тестирование

1. Запустите программу.

2. Проверьте, результат должен быть следующим:

rezA=True

rezB=False

  Пример 2. Вычислить значение логического выражения , если Х=Ложь, Y=Ложь, Z=Истина:

a) Х или У и не Z; б) не(Х и Z)или У.

Этапы выполнения задания.

I. Определение исходных данных: переменные Х,Y,Z типа Boolean.

II. Определение результатов: переменные r1, r2.

III. Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление значений r1, r2.

3. Вывод результата.

IV. Описание переменных:

Все переменные, определенные для решения задачи, имеют тип Boolean.

V.  Программа:

var X,Y,Z,r1,r2:Boolean;

Begin

X:=false;

Y:=false;

Z:=true;

r1:= X OR Y AND (NOT Z);

r2:= NOT(X AND Z) or Y;

writeln('r1=',r1);

writeln('r2=',r2);

End.

Можешь загрузить!       Пример 2

VI. Тестирование

1. Запустите программу

2. Проверьте, результат должен быть следующим:

r1=False

r2=True

2. Заполните таблицу

 

X Y Z r1 r2

1

Ложь

Истина

Ложь

   

2

Истина

Истина

Истина

   

3

Ложь

Истина

Ложь

   

  Пример 3. Вычислить значение логического выражения: х22≤4

Этапы выполнения задания.

I. Определение исходных данных: переменные х,у.

II. Определение результата: переменная  z.

III. Алгоритм решения задачи.

1. Ввод исходных данных.

2. Вычисление значения z.

3. Вывод результата.

IV. Описание переменных:

Переменные х, у типа integer, z - Boolean.

V.  Программа:

var x,y:integer;z:Boolean;

Begin

write('x=');readln(x);

write('y=');readln(y);

z:= sqr(x)+sqr(y)<=4;

writeln('z=',z);

End.

Можешь загрузить!       Пример 3

VI. Тестирование

1. Запустите программу и введите значения

х=1=-1

Проверьте, результат должен быть следующим:

z=True

2. Заполните таблицу

 

x

y

z

1

1 2

 

2

2 1

 

3

-2 0

 

 

  Проверка знаний Тест: Вычисление логических выражений

Задачи для самостоятельного решения

1. Вычислить значение логического выражения, если
X = Ложь, У = Истина, Z = Ложь:

а) X или Z;   

б) X и У;    

в) X и Z.

2.  Вычислить значение логического выражения, если
А = Истина, В = Ложь, С = Ложь:

а) не А и В;  

б) А или не В;   

в) А и В или С.

3.  Вычислить значение логического выражения, если
X = Истина, У = Истина, Z = Ложь:

а) не X и У;              

б) X или не У;        

в) X или У и Z.

4.  Вычислить значение логического выражения, если
А = Истина, В = Ложь, С = Ложь:

а) А или Б и не С;               

г) А и не В или С;

б) не А и не В;                       

д) А и (не В или С);

в) не (А и С) или В;               

е) А и (не (В или С)).

5.  Вычислить значение логического выражения, если
X = Ложь, У = Ложь, Z = Истина:

а) X или У и не Z;                  

г) X и не У или Z;

б) не X и не У;                       

д) X и (не У или Z);

в) не (X и Z) или У;               

е) X и (не (У или Z)).

6.  Вычислить значение логического выражения, если
А — Истина, В = Ложь, С = Ложь:

а) А или не (А и В) или С;

б) не А или А и (В или С);

в) (А или В и не С) и С.

7.  Вычислить значение логического выражения, если
X = Ложь, У = Истина, Z = Ложь:

а) X и не (Z или У) или не Z;

б)  не X или X и (У или Z);

в) (X или У и не Z) и Z.

8.  Вычислить значение логического выражения, если
X = Истина, У = Ложь, Z = Ложь:

а) не X или не У или не Z;

б) (не X или не У) и (X или У);

в)  X" и У или X и Z или не Z.

9.  Вычислить значение логического выражения, если
А = Ложь, В = Ложь, С = Истина:

а) (не А или не В) и не С;

б) (не А или не В) и (А или В);

в) А и В или А и С или не С.

10.  Вычислить значение логического выражения:

а) х2 + у2 ≥ 14                  при х = 3, у = -3;

б) (х ≥ 0) или (у2 ≠ 4)          при х = 1, у = 2;

в) (х ≥ 0) и (у2 ≠ 4 )           при х = 1, у = 2;

г) (х • y ≠ 0) и (у > х)         при х = 2, у = 1;

д) (х • y ≠ 0) или (y < х)       при х = 2, y = 1;

е) (не (х•у < 0)) и (у > х)      при х = 2, г/ = 1;

ж) (не (х • у < 0)) или (у > х)  при х = 1, у = 2.

11.  Вычислить значение логического выражения:

а) х2 - у2 < 0                   при х = 1, y = -1;

б) (х ≥ 2) или (у2 ≠ 4)          при х = 2, y = -2;

в) (х ≥ 0) и (у2 > 4)            при х = 2, у = 2;

г) (х • у ≠ 4) и (y > х)         при х = 1, у = 2;

д) (х • у ≠ 0) или (у < х)       при х = 2, y = 1;

е) (не (х • у < 1)) и (y > х)    при х = 1, у = 2;

ж) (не (х • y < 0)) или (y > х)  при х = 2, y = 1.

12.  Вычислить значение логического выражения при всех
возможных значениях логических величин А и В:

а) не (А и В);

б) не А или В;

в) А или не В.

13.  Вычислить значение логического выражения при всех
возможных значениях логических величин X и У:

а) не (X или У);

б)  не X и У;

в)  X и не У.

14.  Вычислить значение логического выражения при всех
возможных значениях логических величин А и В:

а) не А или не В;

б) А и (А или не В);

в) (не А или В) и В.

15.  Вычислить значение логического выражения при всех
возможных значениях логических величин X и У:

а) не X и не У;

б) X или (не X и У);

в) (не X или У) и У.

16.  Вычислить значение логического выражения при всех
возможных значениях логических величин А и В:

а) не А и не В или А;

б) В или не А и не В;

в)  В или не (А и не В).

 

 

 

СЕРВИС 

Copyright © 2008 СОШ №2 им. Н.П. Массонова г.Свислочь © Синица А.А.