Предмет: Информатика,
автор: Sasharogatin
Даны действительные числа a,b,c (a>0).полностью исследовать биквадратное уравнение a*x^4+b*x^2+c=0. Паскаль!
Ответы
Автор ответа:
0
var
a, b, c, D, x1, x2, x3, x4, y1, y2: double;
begin
Write('Введите через пробел коэффициенты a,b,c: ');
Readln(a, b, c);
if b = 0 then begin
if c > 0 then Writeln('Нет действительных корней')
else
if c = 0 then Writeln('Единственный корень x=0')
else begin
y1 := -c / a;
if y1 > 0 then begin
y1 := sqrt(y1); x1 := -sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else
Writeln('Нет действительных корней')
end
end
else
if c = 0 then
if b > 0 then Writeln('Единственный корень x=0')
else begin
y1 := -b / a;
if y1 > 0 then begin
x1 := sqrt(-b / a); x2 := -x1;
Writeln('Три действительных корня: 0, ', x1, ', ', x2)
end
else
Writeln('Единственный корень x=0')
end
else begin
D := sqr(b) - 4 * a * c;
if D < 0 then Writeln('Нет действительных корней')
else
if D = 0 then begin
y1 := -b / (2 * a);
if y1 < 0 then
Writeln('Нет действительных корней')
else begin
x1 := sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
end
else begin
D := sqrt(D);
y1 := (-b - D) / (2 * a); y2 := (-b + D) / (2 * a);
if y1 < 0 then
if y2 < 0 then Writeln('Нет действительных корней')
else begin
x1 := -sqrt(y2); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else
if y2 < 0 then begin
x1 := -sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else begin
x1 := -sqrt(y1); x2 := -x1;
x3 := -sqrt(y2); x4 := -x3;
if x1 = x2 then
Writeln('Три действительных корня: ', x1, ', ', x3, ', ', x4)
else
if x3 = x4 then
Writeln('Три действительных корня: ', x1, ', ', x2, ', ', x3)
else
Writeln('Четыре действительных корня: ', x1, ', ', x2, ', ', x3, ', ', x4)
end
end
end
end.
Тестовое решение:
Введите через пробел коэффициенты a,b,c: 1 -25 144
Четыре действительных корня: -3, 3, -4, 4
Введите через пробел коэффициенты a,b,c: -1 -4 5
Два действительных корня: -1, 1
a, b, c, D, x1, x2, x3, x4, y1, y2: double;
begin
Write('Введите через пробел коэффициенты a,b,c: ');
Readln(a, b, c);
if b = 0 then begin
if c > 0 then Writeln('Нет действительных корней')
else
if c = 0 then Writeln('Единственный корень x=0')
else begin
y1 := -c / a;
if y1 > 0 then begin
y1 := sqrt(y1); x1 := -sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else
Writeln('Нет действительных корней')
end
end
else
if c = 0 then
if b > 0 then Writeln('Единственный корень x=0')
else begin
y1 := -b / a;
if y1 > 0 then begin
x1 := sqrt(-b / a); x2 := -x1;
Writeln('Три действительных корня: 0, ', x1, ', ', x2)
end
else
Writeln('Единственный корень x=0')
end
else begin
D := sqr(b) - 4 * a * c;
if D < 0 then Writeln('Нет действительных корней')
else
if D = 0 then begin
y1 := -b / (2 * a);
if y1 < 0 then
Writeln('Нет действительных корней')
else begin
x1 := sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
end
else begin
D := sqrt(D);
y1 := (-b - D) / (2 * a); y2 := (-b + D) / (2 * a);
if y1 < 0 then
if y2 < 0 then Writeln('Нет действительных корней')
else begin
x1 := -sqrt(y2); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else
if y2 < 0 then begin
x1 := -sqrt(y1); x2 := -x1;
Writeln('Два действительных корня: ', x1, ', ', x2)
end
else begin
x1 := -sqrt(y1); x2 := -x1;
x3 := -sqrt(y2); x4 := -x3;
if x1 = x2 then
Writeln('Три действительных корня: ', x1, ', ', x3, ', ', x4)
else
if x3 = x4 then
Writeln('Три действительных корня: ', x1, ', ', x2, ', ', x3)
else
Writeln('Четыре действительных корня: ', x1, ', ', x2, ', ', x3, ', ', x4)
end
end
end
end.
Тестовое решение:
Введите через пробел коэффициенты a,b,c: 1 -25 144
Четыре действительных корня: -3, 3, -4, 4
Введите через пробел коэффициенты a,b,c: -1 -4 5
Два действительных корня: -1, 1
Автор ответа:
0
В реальной жизни такие вещи пишут с использованием функций и процедур - получается гораздо более ясный алгоритм, без такой жуткой вложенности условий.
Похожие вопросы
Предмет: Қазақ тiлi,
автор: kar0704
Предмет: Алгебра,
автор: ibraimovaardak16
Предмет: Математика,
автор: Аноним
Предмет: Математика,
автор: parovozovaz