Вопрос задан 01.10.2023 в 19:21. Предмет Информатика. Спрашивает Filippova Arina.

Что не так сделал подскажите Program Roots; Var a, b, c, d, x, x1, x2: real; begin

WriteLn('Введите коэфициенты квадратного уравнения: '); Write('a=');ReadLn(a); Write('b=');ReadLn(b); Write('c=');ReadLn(c); if a=0 then writeln('Ошибка ввода даных'); writeln('Повторите ввод'); end else begin WriteLn('Введите коэфициенты квадратного уравнения: '); Write('a=');ReadLn(a); Write('b=');ReadLn(b); Write('c=');ReadLn(c); if a>0 then if b=0 then if c=0 then WriteLn('Любое x - решение') else WriteLn('Нет решений') else begin x:=-c/b; WriteLn ('x=',x) end else begin d:=b*b-4*a*c; if d<0 then WriteLn ('Нет вещественных корней') else begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; WriteLn('x1=', x1); WriteLn('x2=', x2) end end end.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Попова Дарья.

Это не точно но я думаю нужно везде ";"

Объяснение:

После каждого Enter нужно писать.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код содержит несколько ошибок:

  1. Ваш код имеет смешанный порядок выполнения и повторяющийся код. Лучше объединить одинаковые части кода в одно место.

  2. У вас есть лишний блок else в середине кода, который делает код менее структурированным.

  3. Ваши условия проверки a=0 и a>0 не включают обработку случая a<0.

  4. Вы забыли добавить символ ";" после "if a=0 then writeln('Ошибка ввода даных')".

  5. Ошибки сравнения a>0 и d<0 - должно быть a > 0 и d < 0.

  6. Не стоит выводить "Введите коэфициенты квадратного уравнения" дважды. Можно это сделать один раз перед проверкой a.

Исправленный код:

pascal
Program Roots; Var a, b, c, d, x1, x2: real; begin WriteLn('Введите коэфициенты квадратного уравнения: '); Write('a='); ReadLn(a); Write('b='); ReadLn(b); Write('c='); ReadLn(c); if a = 0 then begin writeln('Ошибка ввода данных'); writeln('Повторите ввод'); end else begin d := b * b - 4 * a * c; if d < 0 then WriteLn('Нет вещественных корней') else if d = 0 then begin x1 := -b / (2 * a); WriteLn('x1=', x1); end else begin x1 := (-b + sqrt(d)) / (2 * a); x2 := (-b - sqrt(d)) / (2 * a); WriteLn('x1=', x1); WriteLn('x2=', x2); end; end; end.

Теперь код структурирован лучше и корректно обрабатывает различные случаи.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос