Логический тип данных. Условный оператор

Содержание

Слайд 2

Булева алгебра Двоичное кодирование – все виды информации кодируются с помощью

Булева алгебра

Двоичное кодирование – все виды информации кодируются с помощью 0

и 1.
Задача – разработать оптимальные правила обработки таких данных.
Джордж Буль разработал основы алгебры, в которой используются только 0 и 1 (алгебра логики, булева алгебра).
Почему «логика»? Результат выполнения операции можно представить как истинность (1) или ложность (0) некоторого высказывания.
Слайд 3

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

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

Логическое высказывание – это повествовательное предложение, относительно которого можно однозначно

сказать, истинно оно или ложно.
Высказывание или нет?
Сейчас идет дождь.
Жирафы летят на север.
История – интересный предмет.
У квадрата – 10 сторон и все разные.
Красиво!
В городе N живут 2 миллиона человек.
Который час?
Слайд 4

В Паскале логические значения обозначаются служебными словами false (ложь) и true

В Паскале логические значения обозначаются служебными словами false (ложь) и true

(истина), а идентификатор логического типа — boolean.
Var a: boolean;
Слайд 5

Операция НЕ (инверсия) Операция ИЛИ (логическое сложение, дизъюнкция) Операция И (логическое

Операция НЕ (инверсия)
Операция ИЛИ (логическое сложение, дизъюнкция)
Операция И (логическое умножение, конъюнкция)
Операция

«исключающее ИЛИ»
Операции отношений

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

Слайд 6

Операция НЕ (инверсия) Если высказывание A истинно, то «не А» ложно,

Операция НЕ (инверсия)

Если высказывание A истинно, то «не А» ложно, и

наоборот.

1

0

0

1

Таблица истинности логического выражения Х – это таблица, где в левой части записываются все возможные комбинации значений исходных данных, а в правой – значение выражения Х для каждой комбинации.

Слайд 7

Операция И (логическое умножение, конъюнкция) 1 0 0 0 конъюнкция –

Операция И (логическое умножение, конъюнкция)

1

0

0

0

конъюнкция – от лат. conjunctio — соединение


A ∧ B

Высказывание «A и B» истинно тогда и только тогда, когда А и B истинны одновременно.

Слайд 8

Операция ИЛИ (логическое сложение, дизъюнкция) 1 0 1 1 дизъюнкция –

Операция ИЛИ (логическое сложение, дизъюнкция)

1

0

1

1

дизъюнкция – от лат. disjunctio — разъединение


Высказывание «A или B» истинно тогда, когда истинно А или B, или оба вместе.

Слайд 9

Операция «исключающее ИЛИ» Высказывание «A ⊕ B» истинно тогда, когда истинно

Операция «исключающее ИЛИ»

Высказывание «A ⊕ B» истинно тогда, когда истинно А

или B, но не оба одновременно.

0

0

1

1

сложение по модулю 2: А ⊕ B = (A + B) mod 2

Слайд 10

Слайд 11

Вычислить значения логических выражений: а)К mod 7=K div 5-1 при К=15;

Вычислить значения логических выражений:
а)К mod 7=K div 5-1 при К=15;
б)odd(trunc(10*P)) при

Р=0.182;
В)not odd(n)при n=0;
г)t and (P mod 3=0) при t=true, P=10101;
Д) (x*y<>0) and (y>x) при х=2, y=l;
e) a or not b при a=false, b=true.
2. Если a=true и х=1, то какое значение получит логическая переменная dпосле выполнения оператора присваивания:
a) d:=x<2; б) d:=not a or odd(x);
Слайд 12

Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран

Разветвляющиеся алгоритмы

Задача. Ввести два целых числа и вывести на экран наибольшее

из них.
Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

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

Слайд 13

Вариант 1. Блок-схема полная форма ветвления блок «решение»

Вариант 1. Блок-схема

полная форма ветвления

блок «решение»

Слайд 14

Вариант 1. Программа max := a; max := b; полная форма

Вариант 1. Программа


max := a;

max := b;

полная форма условного оператора

program qq;
var

a, b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
if a > b then begin
end
else begin
end;
writeln ('Наибольшее число ', max);
end.
Слайд 15

Условный оператор if then begin {что делать, если условие верно} end

Условный оператор

if <условие> then begin
{что делать, если условие верно}

end
else begin
{что делать, если условие неверно}
end;

Особенности:
перед else НЕ ставится точка с запятой
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать слова begin и end

Слайд 16

Что неправильно? if a > b then begin a := b;

Что неправильно?

if a > b then begin
a := b;

end
else
b := a;
end;

if a > b then begin
a := b;
else begin
b := a;
end;

if a > b then begin
a := b;
end;
else begin
b := a;
end;

if a > b then begin
a := b;
end
else b > a begin
b := a;
end;

begin

end

begin

end

Слайд 17

Вариант 2. Блок-схема неполная форма ветвления

Вариант 2. Блок-схема

неполная форма ветвления

Слайд 18

Вариант 2. Программа program qq; var a, b, max: integer; begin

Вариант 2. Программа


program qq;
var a, b, max: integer;
begin
writeln('Введите два целых

числа');
read ( a, b );
max := a;
if b > a then
max := b;
writeln ('Наибольшее число ', max);
end.

неполная форма условного оператора

Слайд 19

Вариант 2Б. Программа program qq; var a, b, max: integer; begin

Вариант 2Б. Программа

program qq;
var a, b, max: integer;
begin
writeln('Введите два целых

числа');
read ( a, b );
max := b;
if ??? then
???
writeln ('Наибольшее число ', max);
end.

max := a;

a > b