Показать сообщение отдельно
  #1  
Старый 29.10.2013, 20:15
Luckduck Luckduck вне форума
Прохожий
 
Регистрация: 29.10.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите устронить ошибку

Совсем недавно начал работать с delphi, так что ошибка явно покажется вам элементарной)

Вот задание:
U = min(max(a, b), c), где
a:=sin(x+sqr(y))+exp(x+1);
b:=ln(abs(x-y))+abs(x-y);
c:=(sqr(x)+3*exp(3*ln(y)+2))/(y-1.5);

при x-y>0, y-1.5<>0

Нужно найти U.



Вот моя программа

Код:
var   
  Form1: TForm1;
   x,y,a,b,c,t,u:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
x:=strtofloat(edit1.Text);
y:=strtofloat(edit2.Text);

If (x>y) and ((y) <> (1.5)) then edit3.text:=Format('%10.3f',[u])
else
begin
edit3.Text:='Нет решения';
end;

a:=sin(x+sqr(y))+exp(x+1);
b:=ln(abs(x-y))+abs(x-y);
c:=(sqr(x)+3*exp(3*ln(y)+2))/(y-1.5);

If a>b then t:=a
else t:=b;

If t<c then u:=t
else u:=c;



end;

end.

Проблема в том, что если y=1.5, то выскакивает ошибка синего цвета (знаменатель равен нулю) и лишь затем U принимает значение 'Нет решения'. В первом же условии я написал, что х не должен быть равен 1,5. Почему выскакивает ошибка и как её устронить??
Ответить с цитированием