Где здесь ошибка program n_11; var a, b, c: real; var d: real; var x, x1, x2: real; begin writeln('расширение квадратного уровнения'); write('введите коофиценты a, b, c > > '); readln(a, b, c,); d: =b*b-4*a*c; if d< 0 then writeln('корней нет') else if d=0 then begin x: =-b/2/a; writeln('корнень уровненияx=',x: 9: 3) end else begin x1: =(-b+sqrt(d))/2/a; x2: =(-b+sqrt(d))/2/a; writeln('корни уровнения: '); writeln(x1=',x1: 9: 3); writeln(x2=',x2: 9: 3) end end.

napokinnuu napokinnuu    2   13.09.2019 02:50    197

Ответы
Злая4Пташка4 Злая4Пташка4  26.08.2020 19:57
Program n_11;
var a, b, c, d, x, x1, x2:Real;
begin 
WriteLn('Решение квадратного уравнения');
Write('Введите коэффициенты a, b, c >>');
ReadLn(a, b, c);
d:=b*b-4*a*c;
if d<0 then WriteLn('Корней нет')
else
if d=0 then
begin 
x:=-b/2/a;
WriteLn('Корень уравнения=',x:9:3) 
end 
else 
begin 
x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
WriteLn('Корни уравнения:');
writeln('x1=',x1:9:3);
WriteLn('x2=',x2:9:3);
end
end.
ПОКАЗАТЬ ОТВЕТЫ
Воздух5 Воздух5  13.01.2024 13:50
Здравствуйте! Здесь приведена программа для решения квадратного уравнения. Однако, в коде содержится несколько ошибок, и я дам детальное объяснение об этих ошибках, а также исправлю их.

Перед тем, как перейти к ошибкам, давайте кратко разберем работу этой программы. Она решает квадратное уравнение вида ax^2 + bx + c = 0 и выводит корни этого уравнения.

Теперь перейдем к ошибкам в коде:

1. В самом начале программы строка "program n_11;" содержит пробелы между словами "program" и "n_11". В языке программирования Pascal пробелы не допускаются, поэтому эти пробелы следует удалить.

2. В определении переменных используется директива "var" перед каждой переменной. Однако, директива "var" должна быть использована только один раз, перед первой переменной. Поэтому нужно удалить повторные директивы "var" перед переменными "b", "c", "d", "x", "x1" и "x2".

3. В строке "d: =b*b-4*a*c;", перед знаком равенства присутствует пробел, это является ошибкой. Нужно убрать пробел и записать как "d := b*b - 4*a*c;".

4. В условном операторе "if d< 0 then writeln('корней нет')" используется символ "<", который используется для обозначения "меньше". В языке Pascal для обозначения "меньше" используется символ "<". Поэтому символ "<" следует заменить на "<": "if d < 0 then writeln('корней нет')".

5. В блоке "else if d=0 then begin x: =-b/2/a; writeln('корнень уровненияx=',x: 9: 3) end" ошибка заключается в записи корня уравнения. Переменная "x" должна быть записана без пробела и двоеточия после нее. Запись должна быть такой: "writeln('корень уравнения x = ', x:9:3)".

6. В блоке "else begin x1: =(-b+sqrt(d))/2/a; x2: =(-b+sqrt(d))/2/a; writeln('корни уровнения: '); writeln(x1=',x1: 9: 3); writeln(x2=',x2: 9: 3) end" также имеется несколько ошибок. Переменные "x1" и "x2" должны быть записаны без пробелов и двоеточия после них. А также, при записи второго корня уравнения "x2", должны быть использованы дефисы, а не плюсы перед знаком "sqrt". И строки вывода корней должны быть записаны без пробелов после знаков равенства. Учтите, количество пробелов: первый корень имеет ширину 9 символов, а второй корень имеет ширину 10 символов. Все это должно быть исправлено следующим образом: "writeln('корни уравнения:'); writeln('x1 = ', x1:9:3); writeln('x2 = ', x2:10:3)".

Вот исправленный код программы:

program n_11;
var
a, b, c: real;
d: real;
x, x1, x2: real;
begin
writeln('расширение квадратного уровнения');
write('введите коофиценты a, b, c >> ');
readln(a, b, c);
d := b*b - 4*a*c;

if d < 0 then
writeln('корней нет')
else if d = 0 then
begin
x := -b / (2*a);
writeln('корень уравнения x = ', x:9:3);
end
else
begin
x1 := (-b + sqrt(d)) / (2*a);
x2 := (-b - sqrt(d)) / (2*a);
writeln('корни уравнения:');
writeln('x1 = ', x1:9:3);
writeln('x2 = ', x2:10:3);
end;
end.

Я исправил все вышеупомянутые ошибки, и теперь программа должна работать правильно и выводить корни квадратного уравнения. Если у вас есть какие-либо вопросы, не стесняйтесь задавать!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика