labelededit



Автор Вика Холод задал вопрос в разделе Другие языки и технологии

Как запретить деление на ноль в делфи чтобы он выдавал ошибку? и получил лучший ответ

Ответ от [гуру]
Перед делением, ifом проверять, не равен ли делитель нулю, если равен, выдавать ошибку

Ответ от Павел[гуру]
Проверить X, Y. a, b на ненулевость.

Ответ от Abc[гуру]
почему вычисление выражения вынесено за пределы блока try?
procedure TForm1.Button1Click(Sender: TObject);
var x,y,a,b,p,f: real;
begin
try
x:=StrToFloat(LabeledEdit1.Text);
y:=StrToFloat(LabeledEdit2.Text);
a:=StrToFloat(LabeledEdit3.Text);
b:=StrToFloat(LabeledEdit4.Text);
p:=StrToFloat(LabeledEdit5.Text);
f:=Power(1+x*sqr(y)+(sqr(x)+sqr(sqr(y))/x*sqr(y), p)- Power(1+a*b+(sqr(a)+sqr(b))/a*b, p)/2;
Label2.Caption:=FloatToStr(f)
except
on EZeroDivide do
ShowMessage ('Деление на ноль запрещено');
else
Label2.Caption:='Неверные данные';
end;

Ответ от Лиля Калиде[гуру]
многое зависит от задачи.
в одних случаях лучше заранее проверять
if a<>0 then...
а в других ловить аварии через try.
Лучше делать полную проверку на каждый чих.
Собираешься делить на N, ну дык проверь его перед делением.
игрек под корень загоняешь? а проверен ли он на неотрицательность? и тд
А обработку вылета обрабатывать только когда действительно всё грохнулось и непонятно почему
---
добавка: мелкий совет.
Если прога ругается на формулу - разбей её на простые попарные операции.
и только после отладки собирай постепенно обратно
Отлаживать кусок удобнее пошагово, а отлаживать прогу удобнее видя весь исползуемый логический блок как одну строку

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как запретить деление на ноль в делфи чтобы он выдавал ошибку?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*