Решение квадратного уравнения через паскаль. - Вопросы по Pascal

Вопрос Решение квадратного уравнения через паскаль.

Регистрация
10 Авг 2013
Сообщения
92
Репутация
11
Спасибо
1
Монет
0
Помогите решить проблему. В решении обязательно должны рассматриваться варианты, когда a,b,c равны 0
19426511_ceab81f71c6a25ceb678276498ba1223_800.png

 
Регистрация
19 Окт 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Вот так почти правильно: uses crt;
var a, b, c, d, e, x1, x2: real;
begin
textbackground(white);
textcolor(black);
clrscr();
write('a b c: ');
readln(a, b, c);
if a = 0 then
if b = 0 then
if c = 0 then writeln('x ∈ ℝ')
else writeln('x ∈ ∅')
else writeln('x = ', -c/b)
else
begin
d := b * b - 4 * a * c;
if d < 0 then writeln('x ∈ ∅')
else
if d = 0 then writeln('x = ', -0.5*b/a)
else
begin
e := sqrt(d);
x1 := 0.5*(-b - e)/a;
x2 := 0.5*(-b + e)/a;
if x1 > x2 then
begin
e := x1;
x1 := x2;
x2 := e
end;
writeln('x₁ = ', x1, ', x₂ = ', x2)
end
end
end. К сожалению, есть один неприятный случай, когда |4ac/b²|&lt;&lt;1. Вот специально для этого случая всю программу придётся переписывать, чтобы она работала корректна - тут требуется переходная асимптотика, что выходит далеко за рамки средней школы. Напиши́те мне если Вам этот случай обязательно необходимо учитывать!
 
Регистрация
28 Июл 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Ни черта не видно на фотке, но судя по ошибке должно быть что-то типа такого

if (a=0) and (b=0) and (c=0) then ...
 
Регистрация
17 Окт 2013
Сообщения
118
Репутация
0
Спасибо
0
Монет
0
Ты сам свой скрин с какой лупой рассматриваешь? На будущее: здесь мало кто получает адекватный ответ, когда нет кода в текстовом отформатированном виде.
 
Регистрация
21 Ноя 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
uses crt;
var
a,b,c,d,x1,x2,rx,ix: real;
begin
{Вводим значения a, b и c}
clrscr;
write(&#39;Wwedite A: &#39;);
readln(a);
write(&#39;Wwedite B: &#39;);
readln(b);
write(&#39;Wwedite C: &#39;);
readln(c);
if
{Вычисляем дискриминант}
d:= b*b - 4*a*c;
{Если дискриминант больше 0, то вычисляем корни и выводим на экран}
if d &gt;= 0 then
begin
x1:= (-b + sqrt(d))/(2*a);
x2:= (-b - sqrt(d))/(2*a);
writeln(&#39;x1 = &#39;,x1:4:2);
writeln(&#39;x2 = &#39;,x2:4:2);
end;

{Если дискриминант меньше 0, то выводим сообщение}
if d &lt; 0 then
begin
writeln(&#39;корни комплексные&#39;);
rx:= -b/(2*a);
ix:=sqrt(-d)/(2*a);
writeln(&#39;x1 = &#39;,rx:4:2,&#39; + &#39;,ix:4:2,&#39; i&#39;);
writeln(&#39;x1 = &#39;,rx:4:2,&#39; - &#39;,ix:4:2,&#39; i&#39;);
end;
readln;
end.
 
Сверху Снизу