Презентация

Download Report

Transcript Презентация

Использование составных
логических выражений
в условном операторе Паскаля
Логические величины
В основе логической величины лежит
высказывание
Высказывание – это повествовательное
предложение, в котором что-либо утверждается или
отрицается.
По поводу любого высказывания можно сказать, истинно
оно или ложно.
“Сейчас идет урок Информатика.”
Х = Сейчас идет урок Информатика
2
Логическое выражение
– это простое или сложное высказывание,
представленное в символической форме.
Примеры логических выражений
арифметические выражения, соединенные
операциями сравнения: =, <>, >, <, >=,<=
Например: X2+5>Y, принимает значения ИСТИНА
или ЛОЖЬ при различных значениях X и Y
3
Логическая переменная
– символически обозначенная логическая величина,
которая может принимать значение
TRUE (ИСТИНА) или FALSE (ЛОЖЬ)
B:=X*X+5>Y
B – логическая переменная. Принимает значения
TRUE, FALSE
На языке программирования Паскаль описывается:
Var B:boolean;
4
Логические выражения
• Простые – например, алгебраические
выражения, соединенные операциями
сравнения
(=; <>; >; >=; <; <=)
• Сложные (составные) – простые
условия, и логические переменные,
соединенные логическими операциями
(AND, OR, NOT, XOR).
5
Логические операции
Операция AND для двух логических значений дает
TRUE только тогда, когда оба значения истинны.
Операция OR для двух логических значений дает
FALSE только тогда, когда оба значения ложны.
Операция отрицания NOT для одного логического
значения. Дает FALSE, если значение истинно, и
наоборот.
6
Порядок выполнения операций –
I –
NOT
II –
*; /; DIV; MOD; AND
III – +; -; OR; XOR
IV – =; <>; >; >=; <; <=
(; ) – скобки изменяют порядок выполнения
операций.
7
Записать логические выражения, которые имеют значение
«истина» только при выполнении указанных условий:
a) X > 2 и y > 3;
b) X > 1 или y > -2;
c) X > 3 или x < -1;
d) Неверно, что x > 0 и x < 5;
e) 10 < x ≤ 20;
f) 0 < y ≤ 4 и x < 5;
8
Записать условие, которое будет истинным когда:
a) Каждое из чисел А и В больше 100;
b) Хотя бы одно из чисел А и В положительно;
c) Только одно из чисел Х и Y меньше 20;
d) Хотя бы одно из чисел Х и Y равно 0;
e) Только одно из чисел А, В и С меньше 50;
f) Хотя бы одно из чисел А,В,С отрицательно;
g) Только одно из чисел Х и Y четное;
h) Целое А кратно двум или трем;
i) Целое А не кратно трем и оканчивается нулем.
9
Рассмотрим примеры:
Пример 1
-6
0
6
И
Пример 2
-6
0
ИЛИ
6
Запишем логическое выражение
для случая
т. X принадлежит отрезку [-6, 6] :
Математическая запись:
-6 ≤ Х ≤ 6.
Логическое выражение:
(Х ≥ -6) И (х ≤ 6)
Запись выражения в Паскале:
(Х >= -6) AND (х <= 6)
Запишем логическое выражение для
случая
т. X не принадлежит отрезку [-6, 6] :
Математическая запись:
-6 < Х > 6.
Логическое выражение:
(Х < -6) ИЛИ (х > 6)
Запись выражения в Паскале:
(Х < -6) OR (х > 6)
Пример 3
Фирма осуществляет набор
сотрудников.
Условия приема требуют не
менее 5 лет рабочего стажа
и возраст не более 40 лет.
Написать программу,
проверяющую,
удовлетворяет ли кандидат
этим требованиям.
Решение
Пусть переменная a обозначает стаж
кандидата, а b – его возраст. Тогда должно
соблюдаться условие:
(a >= 5) and (b <= 40)
Программа:
Program ЕХ;
Var a, b: real;
Begin
Writeln (‘Задайте значения a, b’);
Readln (a, b);
If (a >= 5) and (b <= 40)
Then Writeln (‘Вы приняты’)
Else Writeln (‘Вы не приняты’);
Readln;
End.
Решение задач
12
Принадлежит ли точка кругу
R
Y
Y
S
0,0
Если точка лежит на окружности, то
расстояние от этой точки до начала
координат равно радиусу.
X
Если точка лежит внутри круга, то
расстояние от неё до начала
координат меньше радиуса
Если точка вне круга – расстояние
больше радиуса
Расстояние от любой точки до начала
координат определяем по теореме
Пифагора: S2=X2+Y2
Принадлежит ли точка кругу
начало
program z;
var x, y, r: real;
begin
write(‘x, y, r =’);
read(x,y,r);
if x*x+y*y<=r*r then
writeln(‘yes’) else
writeln(‘no’)
Ввод
X, Y, R
НЕТ
X2+Y2
ДА
<=R2
Вывод
No
Вывод
Yes
end.
конец
Написать условие: принадлежит ли точка с
координатами (X,Y) закрашенной области?
1
X*X + Y*Y <= 1
1
2
(X*X + Y*Y <=4) AND (X*X + Y*Y >=1)
1
Y = X/2 + 1
-2
1
Y = -X/2 - 1
-1
(X*X + Y*Y <=1) AND (X>=0)
OR (Y <= X/2 + 1 ) AND (Y >= -X/2 - 1) AND (X<0)
1
1
-1
-1
(abs(X)<= 1) AND (abs(Y)<=1)
1
2
Y=x/2
1
1
Y=x+1
Y = -x + 1
1
Y = -x - 1
Y=x-1
Y= - X
1
Y= X
Определить принадлежит ли точка с координатами (х, у)
(вводятся с клавиатуры) заштрихованной области..
Program tochka;
Var x,y: integer;
Begin Write('x,y= ');Read(x,y);
if ((sqr(x) + sqr(y))<=4)
and
((x<=0) and (y<=0)
or
(y>=-x) and (y>=0)
or
(x>0) and (x<1) and (y>0))
then write('Да') else write('Нет');
end.
24
Определить принадлежит ли точка с координатами (х, у)
(вводятся с клавиатуры) заштрихованной области..
VAR X,Y: Real; B: boolean;
BEGIN
Write('X= '); Readln(X);
Write('Y= '); Readln(Y);
Write(‘R= '); Readln(R);
B:=((X>=0) and (Y>=0) and (X<=R) and Y<=R))
or
((X<0) and (Y<0) and (X>=-R) and (Y>=-R))
or
((X>0) and (Y<0) and (X<=R) and (Y>=-R) and
(Sqrt(sqr(X-R)+sqr(y+R))>=R))
or
((X<0) and (Y>0) and (X>=-R) and (Y<=R) and
(Sqrt(sqr(X+R)+sqr(y-R))>=R));
Writeln(B); END.
25
Домашнее задание
1. Написать программу,
которая спрашивает
«Который час?» и, в
зависимости от
введенного времени,
выводит на экран
приветствие:
•
•
•
•
«Доброе утро»,
«Добрый день»,
«Добрый вечер»,
«Спокойной ночи».
2. Написать программу, которая
определяет, принадлежит ли точка
с координатами (X, Y)
заштрихованной области,
ограниченной точками (X1, Y1)
(X2, Y2)
(X2, Y2)
(X1, Y1)
Входные данные: координаты точек (X, Y)
, (X1, Y1), (X2, Y2)
Результат: слова «Да» или «Нет».
Самостоятельная работа
27
I вариант
1. Составить программу, которая определяет попадание точки
с заданными координатами (x;y) в закрашенную область на
рисунке.
2. Указать координаты точек:
a) A( ; ) – на границе области;
б) B( ; ) – вне закрашенной области;
в) C( ; ) - внутри закрашенной области.
II вариант
1. Составить программу, которая определяет попадание точки с заданными
координатами (x;y) в закрашенную область на рисунке.
2. Указать координаты точек:
a) A( ; ) – на границе области;
б) B( ; ) – вне закрашенной области;
в) C( ; ) - внутри закрашенной области
Определите принадлежность точки заштрихованной
области (на рисунках даны окружности с единичным
радиусом и парабола y=x2):
30
31