Задать вопрос
@orimiqq

Как сделать задание на pascal через case?

Дана точка А(х, у). Определить, принадлежит ли она треугольнику с
вершинами в точках (х1, у1), (х2, у2), (x3, y3).

вот такой код через if,нужно переделать под case

var x1,x2,x3,x, y1,y2,y3,y, A,B,C,S:integer;
begin
read(x1,x2,x3,y1,y2,y3,x,y);
S:=(x1-x3)(y2-y3)-(x2-x3)(y1-y3);
if S=0 then writeln('Треугольник не существует...')
else
begin
A:=(x-x3)(y2-y3)-(x2-x3)(y-y3);
B:=(x1-x3)(y-y3)-(x-x3)(y1-y3);
C:=(x-x2)(y1-y2)-(x1-x2)(y-y2);
if (S<0) and (S<=A) and (A<=0) and (S<=B) and (B<=0)and (S<=C) and (C<=0) or
(S>0) and (S>=A) and (A>=0) and (S>=B) and (B>=0) and (S>=C) and (C>=0)then
writeln('Да')
else
writeln('Нет')
end
end.
  • Вопрос задан
  • 44 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Ни как, только можешь в конце сделать case для Boolean переменной (что по сути только ухудшит код)
case (S<0) and (S<=A) and (A<=0) and (S<=B) and (B<=0)and (S<=C) and (C<=0) or
(S>0) and (S>=A) and (A>=0) and (S>=B) and (B>=0) and (S>=C) and (C>=0) of 
  True: writeln('Да');
  False: writeln('Нет');
end;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы