Показать сообщение отдельно
  #1  
Старый 30.11.2009, 00:21
inferno mf inferno mf вне форума
Прохожий
 
Регистрация: 13.09.2009
Сообщения: 19
Репутация: 10
По умолчанию Какая-то синтаксическая ошибка

Помогите пожалуйста найти ошибку...

Условие задачи таково, что нужно определить является ли 4-ехугольник с заданными координатами квадратом,ромбом или трапецией... Все случаи проверяются нормально, но не работает отрицание, когда 4-ехугольник не явялется квадратом,ромбом или трапецией. Помогите разобраться. Есть ли какие-нибудь замечанию по поводу оптимальности кода? Можно ли сократить кол-во проверок и тд?

Код:
if (a=b) and (c=d) and (a=d)

then begin
if bd<>ac then
  edit9.text:=('Точки образуют ромб')
  else if bd=ac then edit9.text:=('Точки образуют квадрат')
  end
   else
   if  (b<>d) or (a<>c) then
  begin
    if  ((x3-x2)/(x4-x1)=(y3-y2)/(y4-y1)) or ((x1-x2)/(x4-x3)=(y1-y2)/(y4-y3)) then
     edit9.text:=('Точки образуют трапецию')
     else if (y3-y2=0) and (y4-y1=0) and (b<>d) then
      edit9.text:=('Точки образуют трапецию')
      else if (y1-y2=0) and (y4-y3=0) and (a<>c) then
      edit9.text:=('Точки образуют трапецию');
       end

else edit9.Text:=('Четырехугольник не является квадратом,ромбом или трапецией');
end;
Ответить с цитированием