Информатика, вопрос задал artemjk798 , 6 лет назад

помогите быстрее по информатике 9 класс найдите ошибки
var a,b,c,D,x1,x2:real;
begin
writeln('введите a,b,c');
readln(a,b,c);
if a=0 thn if b=0 then if c=0 then writeln('x любое')
else writeln('нет решений')
ele begin
x1:=c/b;
writeln('x=',x1:12:6);
end
else begin
d:=bb-4ac;
if d>0 then begin
x1:=(-b-sqrt(D))/(2a);
x2:=(-b+sqrt(D))/(2a);
writeln('x1=',x1:12:6);
writeln('x2=',x2:12:6);
end
else if D=0 then bgin
x1:=-b/(2a);
writeln('x=',x1:12:6);
end
else write ln('нет решений,);
end;
readln;
end.​

Ответы на вопрос

Ответил pIaksa
0

Ответ:

В 5 строчке надо было написать 'then', а написано 'thn'

В 7 строчке 'else' должно быть, а написано 'ele'

Строчка 'd:=bb-4ac' тоже неверная. Переменной bb не было, поэтому, кажется, должно быть b.

Там много ошибок, поэтому я немного подправила код. Но он всё равно не будет работать, потому что там используется конструкция if else неправильно (лучше ещё раз переписать код и как-то изменить эту конструкцию. там много else, а по правилам, к каждому if относится только одно else. Самостоятельно же else работать не может без if)

var a,b,c,D,x1,x2:real;

begin

writeln('введите a,b,c');

readln(a,b,c);

if a=0 then if b=0 then if c=0 then writeln('x любое')

else writeln('нет решений')

else begin

x1:=c/b;

writeln('x=',x1:12:6);

end;

else begin

d:=b-4ac;

if d>0 then begin

x1:=(-b-sqrt(D))/(2a);

x2:=(-b+sqrt(D))/(2a);

writeln('x1=',x1:12:6);

writeln('x2=',x2:12:6);

end;

else if D=0 then begin

x1:=-b/(2a);

writeln('x=',x1:12:6);

end;

else writeln('нет решений' );

end;

readln;

end.


artemjk798: плакса плохой ответ забыла '
pIaksa: мне казалось, что все ' на месте
artemjk798: нет
pIaksa: окей, в какой строчке её нет?
artemjk798: ты уже исправила
artemjk798: ок вот еще ошибка d
artemjk798: а нужно D
pIaksa: я не сильно вникала в суть этого кода. лишь немного поправила синтаксис. ты лучше обрати своё внимание на if else и подумай, как это можно было бы исправить
pIaksa: вся проблема в if else
pIaksa: var a,b,c,D,x1,x2:real;
begin
writeln('введите a,b,c');
readln(a,b,c);
if a=0 then
begin
if b=0 then
if c=0 then
writeln('x-любое')
else
writeln('нет решений');
end;
if a <> 0.0 then
begin
D:=b*b-4*a*c;
if D > 0 then
begin
x1:=(-b - sqrt(D))/(2*a);
x2:=(-b + sqrt(D))/(2*a);
writeln('x1 =',x1:12:6);
writeln('x2 =',x2:12:6);
end;
if D = 0 then
begin
x1:=-b/(2*a);
if b <> 0 then
writeln('x =',x1:12:6);
end;
if D < 0 then
writeln('нет решений');
end;
end.
Новые вопросы