Решение. Точка лежит внутри треугольника, если она расположена
правее прямой x,
выше прямой y
и ниже прямой x+y=2. Таким образом, принадлежность точки с координатами
(x,y) нашему треугольнику определяется истинностью логического выражения
.
Поэтому наше решение будет содержать ровно один условный оператор:
module ПроверкаРасположенияТочки;
const НУЛЬ = 0;
var X,Y : Real;
begin
read(X,Y);
writeLn ('Точка с координатами (',X, ', ', Y, ')
');
if (X > НУЛЬ) & (Y > НУЛЬ )&
(X + Y< 2)
then write (' принадлежит ')
else write (' не принадлежит ')
end;
writeln (' треугольнику.')
end ПроверкаРасположенияТочки.
Очевидно, что условные операторы
if A then B else C end и
if not A then C else B end
при любых логических выражениях
и любых операторах
эквивалентны, т.е. дают один и тот же эффект. Заметим, далее, что эквивалентны
также выражения
~((X
НУЛЬ )&(Y
НУЛЬ ) &(X+Y
2)) и (X
=
НУЛЬ) or (Y
=
НУЛЬ) or (X+Y
= 2).
Поэтому печать ответа можно записать чуть короче:
module ПроверкаРасположенияТочки2;
const НУЛЬ = 0;
var X,Y : Real;
begin
read(X,Y);
writeln ('Точка с координатами (',X, ', ', Y, ')
');
if (X <= НУЛЬ ) or (Y <= НУЛЬ
) or (X+Y > = 2)
then write (' не ')
end;
writeln (' принадлежит треугольнику.')
end ПроверкаРасположенияТочки2.
Next:3.2.2
Максимум из трех
Up:3.2
Построение ветвящихся программ
Previous:3.2
Построение ветвящихся программ