Изучите данный материал, составьте конспект в тетради и решите любые три из предложенных задач.
Составные условия
Иногда при составлении программ в ветвлении необходимо
проверять насколько условий.
Например, надо написать программу, которая определяет, в
какой четверти находится точка с заданными координатами. Очевидно, что точка
находится в I четверти,
если x>0 И y>0, во II
– если x<0 И y>0 и т.д.
Или еще пример: заданы координаты точек A и B на координатной оси (A<B). Если точка с координатой X левее точки A
или правее точки B, то
вывести сообщение «не попал» и сообщение «попал» в противном случае. Сообщение
«не попал» выводится в том случае, когда X<A ИЛИ X>B.
Для написания подобных программ принято использовать
составные условия, состоящие из элементарных условий. При этом элементарные
условия соединяются союзами AND
(и) и OR (или). Заметим, что достаточно часто используется отрицание NOT (не) и исключающее или XOR.
Пусть A
и B – некоторые
элементарные условия. Логическое значение (истина или ложь) составного условия
можно определить с помощью следующей таблицы:
|
A
|
B
|
A and B
|
A or B
|
A xor B
|
|
ложь
|
ложь
|
ложь
|
ложь
|
ложь
|
|
ложь
|
ложь
|
ложь
|
истина
|
истина
|
|
истина
|
ложь
|
ложь
|
истина
|
истина
|
|
истина
|
истина
|
истина
|
истина
|
ложь
|
Оператор not(A) меняет логическое значение
условия на противоположное, т.е. истину превращает в ложь и наоборот.
Напишем программу, которая определит, в какой четверти
находится точка с координатами (X,Y):
Var
x,y: integer;
begin
write(‘задай
координаты точки’);
read(x,y);
if (x>0)
and (y>0) then
writeln(‘точка находится в I четверти’);
if (x<0) and (y>0) then
writeln(‘точка находится в II четверти’);
if (x<0) and (y<0) then
writeln(‘точка
находится в III
четверти’);
if (x>0) and (y>0) then
writeln(‘точка
находится в IV
четверти’);
if (x=0) or (y=0) then
writeln(‘точка
находится на координатных осях’);
end.
Задания.
Ø
Написать программу, которая определит наименьшее
из трех заданных пользователем чисел, используя связку AND.
Ø
Заданы координаты центра двух концентрических
окружностей и их радиусы. Написать программу, которая проверит, находится ли
задаваемая точка на кольце, образованном этими окружностями.
Ø
Прямоугольник, стороны которого параллельны
координатным осям, задается координатами верхней левой и правой нижней вершины.
Написать программу, которая проверит, находится ли точка с задаваемыми
координатами внутри прямоугольника.
Ø Заданы
размеры открытки (a,b) и конверта(x,y). Написать программу, которая
проверит, помещается ли открытка в конверт. Проверить работоспособность при
следующих значениях переменных:
o
a=3,
b=10, x=5, y=11 – открытка поместится в конверте;
o
a=10,
b=3, x=5, y=11 – открытка поместится в конверте;
o
a=6,
b=10, x=5, y=20 – открытка не поместится в конверте.
Ø
Написать программу, которая проверит, проходит
ли шкаф с длинами ребер A,
B и C сантиметров в дверь высотой X и шириной Y сантиметров.
Ø
Написать программу, которая проверит, пролезет
ли кирпич длинами ребер A,
B и C сантиметров в отверстие радиусом R сантиметров.
Ø
Проверить, находится ли точка с задаваемыми
координатами внутри квадрата, вершины которого находятся в точках (a,0), (0,a), (-a,0), (0,-a).
Проверить для a=10:
точка (9,9) – вне квадрата, точка (11,0) – вне квадрата, точка (9,0) – внутри
квадрата, точка (4,4) – внутри квадрата.
Комментариев нет:
Отправить комментарий