
Помогите найти ошибку в паскале пишет false Program Math1; var a,b,c,D,x,x1,x2: real; begin
readln(a,b,c); if b=0 then if (c=0) then writeln( 'x=0') else if (-c/a<0) then writeln('корней нет') else writeln ( x1=sqrt(-c/a), x2=-sqrt(-c/a)) else if (c=0) then writeln ( 'x1=0', x2=-b/a) else D :=b*b-4*a*c; if (D<0) then writeln( 'корней нет' ) else if (D=0) then writeln ( x= -b/a) else writeln ( x1= -b+sqrt(D)/(2*a) , x2= -b-sqrt(D)/(2*a) ) end.

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

Program Math;
var
d,e,f, a, b, c: real;
begin
writeln('Решение квадратного уравнения(ax^2+bx+c=0).');
write('Введите a: ');
readln(a);
write('Введите b: ');
readln(b);
write('Введите c: ');
readln(c);
d:=sqr(b)-4*a*c;
writeln('D=b*b-4*a*c=',d:6:2);
if (d>0)
then begin
e:= (-b/(2*a));
f:= (sqrt(d)/(2*a));
writeln('D> 0, значит 2 корня: ');
writeln('x1= ',e-f:6:2);
writeln('x2= ',e+f:6:2);
end;
if(d=0) then writeln(' D=0, значит 1 корень: ',-b/2*a:6:2);
if (d<0) then
writeln(' D<0, значит корней нет ');
end.



Ошибка в коде Pascal
В предоставленном коде Pascal есть несколько ошибок, из-за которых программа не будет работать правильно. Вот список обнаруженных ошибок и предложенное исправление:
1. Ошибка в записи условных операторов: - Вместо `if (-c/a<0)` должно быть `if -c/a < 0`. - Вместо `if (c=0) then writeln (+'x1=0', x2=-b/a)` должно быть `if c = 0 then writeln('x1=0', 'x2=', -b/a)`.
2. Ошибка в вычислении корней: - Вместо `x1=sqrt(-c/a), x2=-sqrt(-c/a)` должно быть `x1 := sqrt(-c/a); x2 := -sqrt(-c/a)`. - Вместо `x=+-b/a` должно быть `x := -b/a`. - Вместо `x1=+-b+sqrt(D)/(2*a), x2=+-b-sqrt(D)/(2*a)` должно быть `x1 := (-b + sqrt(D))/(2*a); x2 := (-b - sqrt(D))/(2*a)`.
3. Ошибка в выводе текста: - Вместо `writeln(+'x=0')` должно быть `writeln('x = 0')`. - Вместо `writeln(+'корней нет')` должно быть `writeln('корней нет')`. - Вместо `writeln(+'корней нет')` должно быть `writeln('корней нет')`. - Вместо `writeln(+'корней нет'+)` должно быть `writeln('корней нет')`. - Вместо `writeln(+'x=',+-b/a)` должно быть `writeln('x = ', -b/a)`. - Вместо `writeln(+'x1=',+-b+sqrt(D)/(2*a),+x2=+-b-sqrt(D)/(2*a)+)` должно быть `writeln('x1 = ', (-b + sqrt(D))/(2*a), ' x2 = ', (-b - sqrt(D))/(2*a))`.
Исправленный код Pascal выглядит следующим образом:
``` Program Math1; var a, b, c, D, x, x1, x2: real; begin readln(a, b, c); if b = 0 then begin if c = 0 then writeln('x = 0') else if -c/a < 0 then writeln('корней нет') else begin x1 := sqrt(-c/a); x2 := -sqrt(-c/a); writeln('x1 = ', x1, ' x2 = ', x2); end; end else begin D := b*b - 4*a*c; if D < 0 then writeln('корней нет') else if D = 0 then begin x := -b/a; writeln('x = ', x); end else begin x1 := (-b + sqrt(D))/(2*a); x2 := (-b - sqrt(D))/(2*a); writeln('x1 = ', x1, ' x2 = ', x2); end; end; end. ```
Теперь код должен выполняться корректно и выводить правильные результаты.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili