
Program cd6059e5; var a, b, c, d, x, xx, f: real;begin Write('а:'); read(a); write('b:') ;
read(b); write('c:') ; read(c); d:=b*b-4*a*c; f:=Sqrt(d); writeln('D=', d); writeln('√D=', f); if d > 0 then begin x:=-b-f/2*a; xx:=-b+f/2*a; writeln('x1=', x); writeln('x2=', xx); end; if d=0 then begin x:=-b/2*a; end; if d < 0 then begin Writeln('Корней нет'); end;end.написал программу на паскале где должно решатся квадратное уровнения но когда дискриминант ниже нуля то происходит ошибка (в паскаль N-IDE) 

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

Программа:
Pascal:
program cd6059e5;
var a, b, c, d, x, xx, f: real;
begin
write('а = '); read(a);
write('b = '); read(b);
write('c = '); read(c);
d := b*b - 4*a*c;
f := sqrt(d);
writeln('D = ', d);
if d > 0 then begin
writeln('√D = ', f);
x := (-b-f)/(2*a);
xx := (-b+f)/(2*a);
writeln('x1 = ', x);
writeln('x2 = ', xx);
end;
if d = 0 then x := -b/(2*a);
if d < 0 then writeln('Корней нет.');
end.
Исправил вашу программу. Корни неверно вычислялись, пару других моментов поправил.



В представленной программе на Pascal решается квадратное уравнение. В начале программы объявляются переменные a, b, c, d, x, xx, f как вещественные числа. Затем программа просит пользователя ввести значения a, b и c.
Далее вычисляется значение дискриминанта d по формуле d = b^2 - 4ac. Значение дискриминанта выводится на экран с помощью команды writeln.
Затем происходит вычисление корня из дискриминанта с помощью функции sqrt. Полученное значение присваивается переменной f. Значение корня выводится на экран с помощью команды writeln.
Далее программа проверяет условие, если дискриминант больше нуля, то происходит вычисление корней и вывод их значений на экран с помощью команд writeln.
Если дискриминант равен нулю, то происходит вычисление одного корня и его значение выводится на экран с помощью команды writeln.
Если дискриминант меньше нуля, то выводится сообщение "Корней нет" с помощью команды writeln.
Ошибка, которую вы испытываете при выполнении программы, вызвана неправильным использованием скобок в некоторых выражениях. Вместо "/2*a" и "/2*a" в формулах для вычисления корней, следует использовать "/(2*a)" для правильного выполнения математических операций. Исправленный код приведен ниже:
var a, b, c, d, x, xx, f: real; begin write('a:'); read(a); write('b:'); read(b); write('c:'); read(c); d := b*b - 4*a*c; f := sqrt(d); writeln('d=', d); writeln('√d=', f); if d > 0 then begin x := (-b-f)/(2*a); xx := (-b+f)/(2*a); writeln('x1=', x); writeln('x2=', xx); end; if d = 0 then begin x := -b/(2*a); writeln('x=', x); end; if d < 0 then begin writeln('Корней нет'); end; end.
После внесения исправлений, программа должна корректно решать квадратное уравнение для всех возможных значений дискриминанта.


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







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