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

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

 
Вот так почти правильно: 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. Вот специально для этого случая всю программу придётся переписывать, чтобы она работала корректна - тут требуется переходная асимптотика, что выходит далеко за рамки средней школы. Напиши́те мне если Вам этот случай обязательно необходимо учитывать!
 
Ни черта не видно на фотке, но судя по ошибке должно быть что-то типа такого

if (a=0) and (b=0) and (c=0) then ...
 
Ты сам свой скрин с какой лупой рассматриваешь? На будущее: здесь мало кто получает адекватный ответ, когда нет кода в текстовом отформатированном виде.
 
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.
 
Назад
Сверху