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. Вычислить значение логического выражения: х2+у2≤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 им. Н.П. Массонова г.Свислочь © Синица А.А.