Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите найти ошибку в коде
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
nowichok9
Помогите найти ошибку

Код

program algebra23;
var a,b,c,d,i,e,f: integer;
begin
     writeln('видите a b c');
     readln(a, b, c);
     writeln;
     for i:= -10 to 10 do
     begin
          e:=a*sqr(i)+b*i+c;
          write('  (',i,';',e,')');
     end;
     write('нахождение дискриминанта');
     D:= sqr(b)-(4*a*b);
     writeln;
     writeln('дискриминант  = ',d);
     writeln('x1=',-b,'+',sqrt(d),' / ',2*a,' = ',(-b+sqrt(d))/(2*a),' ');  {ошибка 207: ошибочная операция с плавающей точкой}
     writeln('x2 = ',-b*-1,'-',sqrt(d),'  / ',2*a,' = ',(b*-1-sqrt(d))/(2*a));
     readln;
end.

если дискриминант = 0 то выполняется
чувствую какая то простая ошибка а понять в чём не могу wacko.gif
TarasBer
Если дискриминант меньше нуля, то облом наступает при попытке извлечь квадратный корень из отрицательного числа. Если равен, то ничего происходить не должно.
Ещё облом - если a=0 - тогда деление нуля на ноль будет.
nowichok9
Спасибо good.gif
тогда как сделать что бы программа не завершалась

Добавлено через 7 мин.
всё догадался попробую через метки smile.gif
TarasBer
Зачем метки?!


if d>= 0 then begin
writeln;
writeln('дискриминант = ',d);
writeln('x1=',-b,'+',sqrt(d),' / ',2*a,' = ',(-b+sqrt(d))/(2*a),' ');
writeln('x2 = ',-b*-1,'-',sqrt(d),' / ',2*a,' = ',(b*-1-sqrt(d))/(2*a));
end else begin
writeln('дискрииминант меньшу нуля, решений нет');
end;

Lapp
Цитата(TarasBer @ 4.02.2011 13:31) *
Зачем метки?!

хи-хи ))
Тарас настолько испугался, что сразу выложил код ))
страааашный GOTO diablo.gif !fire.gif
TarasB
Lapp, тут тогда нужна картинка не с демоном, а с велоцераптором.
TarasBer
Изображение
Lapp
Цитата(TarasB @ 5.02.2011 13:13) *
Lapp, тут тогда нужна картинка не с демоном, а с велоцераптором.

Спасибо. А то я все ломал голову, что за зверь такой (про WD знаю, и даже использую)).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.