Кто может сказать,в чем ошибка? Нужно получить значение выражения,но при вводе цифр...

0 голосов
36 просмотров

Кто может сказать,в чем ошибка? Нужно получить значение выражения,но при вводе цифр "1","0","1" значение = бесконечности. Т
program laba1;
var a,b,c,f:real;
begin
writeln ('введите a');
readln (a);
writeln ('введите b');
readln (b);
writeln ('введите c');
readln (c);
f:=(b+sqrt(b*b+4*a*c))/(2*a)-(a*a*a)*c+1/sqr(b);
writeln ('f= ', f);
readln;
end.


Информатика (16 баллов) | 36 просмотров
Дан 1 ответ
0 голосов

If отсутствует.
После строки readln(c); допиши:
if (a<>1) and (b<>0) and (c<>1) then
begin f:=(b+sqrt(b*b+4*a*c))/(2*a)-(a*a*a)*c+1/sqr(b);
          writeln('f=',f);
end
else writeln('f=oo'); {это у меня знак бесконечности, можно, наверное, и словами написать}
Т.е. у вас отсутствует альтернатива.
PS. Знаменателем функции является только 2а? Если так, то все.

(2.1k баллов)