Transcript False

10-В 23.11.2012
«Алгоритми з розгалуженнями»
Мета : вивчити поняння умови, логічного
виразу та логічних операцій
Алгоритми з розгалуженням
Крім лінійних алгоритмів нам приходиться в житті виконувати такі
алгоритми де за певних умов виконується та чи інша дія. Такі алгоритми
називаються ПОЧАТОК
ПОЧАТОК
Введення
Введення
розгалуженими
Дія 1
Умова
Дія 2
Дія 2
Дія 1
Дія 3
Дія n
Виведення
Виведення
Кінець
Кінець
Алгоритми з розгалуженням
Повна форма розгалуження
Скорочена форма розгалуження
ПОЧАТОК
ПОЧАТОК
Введення
Введення
Умова
Дія 2
Умова
Дія 1
Дія 1
Виведення
Виведення
Кінець
Кінець
Алгоритми з розгалуженням
Опис команди розгалуження
If
Умова істинна
then
Дія 1
Алгоритми з розгалуженням
else
Дія 2
Умова – це вираз логічного (булівського) типу
Результатом виконання логічного виразу є логічне
значення True або False
Проста умова: х>=y, a<b, c<= d, n<>m
Складені умови утворюються з
простих за допомогою логічних
операцій and, or, not
and
(x<=0) or (x>=1)
a and not (b=c)
при a=false, b=false,
c=true , значення
виразу - false
Алгоритми з розгалуженням
Логічна операція AND (і, та, кожне, обидва)
Складена умова (проста умова 1) and ( проста умова 2)
вірна, якщо вірні обидві простих умови. У інших випадках
така складена умова невірна.
Таблиця істинності логічної операції and
Значення умови
1
Значення умови
2
Значення
результату
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
FALSE
якщо одна з умов має значення FALSE . Весь вираз
буде мати значення FALSE. Операцію and називають логічним
множенням.
Алгоритми з розгалуженням
Приклади складання умов з логічною операцією AND
Ствердження
Умова
Число X належить інтервалу
[-2, 5], тобто -2<=x<=5
(x>=-2)and(x<=5)
Ціле число X двозначне
(x div 100=0)and(x div 10=0)
Натуральне число X кратне 7 та
закінчується цифрою 3
(x mod 7=0)and(x mod 10=3)
Кожне з двох цілих чисел X та Y парне
(x mod 2=0)and(y mod 2=0)
Точка з координатами (x, y) попадає
в заштриховану ділянку площини
(x>=-3)and(x<=-1) and (y>=1)and(y<=3)
Алгоритми з розгалуженням
Приклади обчислення логічних виразів з
логічною операцією AND
Програма
Пояснення
Const X=10;
Var Z:Boolean;
Begin
Z:=(x>2)and(x<5);
writeln(z);
end.
X=10, тому x>2 вірно, а x<5 невірно,
тому і весь
вираз невірний.
False
Const a=2; b=2;c=3;
Var Z:Boolean;
Begin
Z:=(a>0)and(b>0)and(c>0);
writeln(z);
end.
a=2; b=2; c=3, тому a>0 вірно, b>0
вірно, c>0 вірно, тому і весь вираз
вірний.
TRUE
Алгоритми з розгалуженням
Результат
Логічна операція OR (або, хоча б одне)
Складена умова (проста умова 1) or (проста умова 2) не вірна, якщо не вірні
обидві простих умови.
У інших випадках така складена умова вірна.
Таблиця істинності логічної операції or
Значення умови Значення умови
1
2
Значення
результату
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
Обчислюючи складену умову з логічною операцією or, можна не перевіряти значення
другої умови, якщо одна з умов має значення TRUE . Весь вираз буде мати значення
TRUE.
Алгоритми з розгалуженням
Приклади складання умов з логічною операцією OR
Твердження
Умова
Хоча б одне з чисел X та Y
додатне
(x>0)or(y>0)
Натуральне число X закінчується
цифрою 2 або 3
(x mod 10=2)or(x mod 10=3)
Точка з координатами X та Y
належить I або IIІ чверті
координатної площини
(X>0)and(y>0)or(x<0)and(y<0)
Алгоритми з розгалуженням
Приклади обчислення логічних виразів з логічною
операцією OR
Алгоритми з розгалуженням
Логічна операція XOR (тільки одне, при різних)
Складена умова (проста умова 1) xor (проста умова 2) вірна, при різних
значеннях операндів. При однакових значеннях операндів така складена умова
невірна.
Таблиця істинності логічної операції xor
Обчислюючи складену умову з логічною операцією xor, потрібно перевіряти
значення обох умов.
Логічну операцію xor називають рос. „исключающее или”. Без цієї операції можна
обійтись, але її використання значно скорочує запис.
Алгоритми з розгалуженням
Приклад складання умови з логічною операцією XOR
Ствердження
Умова без xor
Умова з xor
Тільки одне з чисел X та Y
парне
(x mod 2=0)and(y mod
2<>0) or (x mod
2<>0)and(y mod 2=0)
(x mod 2=0) xor (y mod
2=0)
Алгоритми з розгалуженням
Приклади обчислення логічних виразів з логічною
операцією XOR
Програма
Пояснення
Результат
Const X=1; y=-1;
Var Z:Boolean;
Begin
Z:=(x*y<1)xor(y>x);
writeln(z);
end.
X=1; y=-1, тому x*y<1 вірно, а y>x невірно.
Тобто прості умови мають різні
значення, тому весь вираз вірний.
TRUE
Const X=1; y=2;
Var Z:Boolean;
Begin
Z:=(x*y<3)xor(y>x);
writeln(z);
end.
X=1; y=2; тому x*y<3 вірно, а y>x вірно.
Тобто прості умови мають однакові вірні
значення, тому весь вираз невірний.
FALSE
Const X=2; y=1;
Var Z:Boolean;
Begin
Z:=(x*y=3)xor(y>x)and(x+y>2);
writeln(z);
end.
X=2; y=1;
FALSE
Спочатку обчислюється значення простих
умов:
x*y=3 невірно
y>x невірно
x+y>2 вірно.
Алгоритми
з розгалуженням логічна операція and.
Потім
обчислюється
Логічний префікс NOT (не).
Складена умова not (умова 1) вірна, якщо (умова 1) невірна. І
навпаки, складена умова невірна, якщо (умова 1) вірна.
Таблиця істинності логічної операції not
Значення умови 1
Значення результату
FALSE
TRUE
TRUE
FALSE
Алгоритми з розгалуженням
Приклади складання умов з логічною операцією
NOT
Ствердження
Умова без not
Умова з not
Число X не належіть
інтервалу [-2, 5]
(x<-2)or(x>5)
Not((x>=-2)and(x<=5))
Ціле число X не ділиться на 3
X mod 3<>0
Not (x mod 3=0)
Алгоритми з розгалуженням
Приклади обчислення логічних виразів з логічною операцією
NOT
ПРОГРАМА
ПОЯСНЕННЯ
Результат
Const X=10;
Var Z:Boolean;
Begin
Z:=not((x>=1)and(x<=5));
writeln(z);
end.
Операція not стоїть перед дужками, тому
спочатку виконуються дії у дужках. X=10,
тому (x>=1)and(x<=5) – невірно, а весь
вираз вірний.
TRUE
Const X=10;
Var Z:Boolean;
Begin
Z:=not(x>=1)and(x<=5);
writeln(z);
end.
У цьому випадку not відноситься тільки до
перших дужок. X=10, тому x>=1 – вірно,
not(x>=1) –невірно. Наступна операція and,
у якої перша умова невірна, тому значення
другої умови можна не обчислювати, весь
вираз буде невірний
FALSE
Алгоритми з розгалуженням
Алгоритми з розгалуженням