Решение. Точка лежит внутри треугольника, если она расположена правее прямой 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
Построение ветвящихся программ