Биквадратное уравнение имеет вид ax⁴+bx²+c=0 Замена z=y² приводит к уравнению решение которого хорошо известен. Поскольку в задании указан уровень "5-9 классы", варианты с комплексными корнями рассматриваться не будут, т.е. при отрицательном дискриминанте D мы считаем, что корней нет.
var a,b,c,d,z1,z2:real; begin Writeln('Введите коэффициенты биквадратного уравнения по убыванию степеней'); Read(a,b,c); d:=b*b-4*a*c; if d<0 then Writeln('Нет корней') else begin d:=sqrt(d); z1:=(-b-d)/(2*a); z2:=(-b+d)/(2*a); if z1<0 then begin z1:=z2; if z1<0 then Writeln('Нет корней') else Writeln(-sqrt(z1),' ',sqrt(z1)) end else begin Write(-sqrt(z1),' ',sqrt(z1),' '); if z2>=0 then Writeln(-sqrt(z2),' ',sqrt(z2)); Writeln end end end.
si0000
29.11.2022
var a, b, c, D, x, y: real; begin readln(a, b, c); {ax^4 + bx^2 + c = 0} if a = 0 then writeln('Non-bisquare') else begin D := b * b - 4 * a * c; if D < 0 then writeln('No solutions') else begin if D = 0 then begin x := -b / 2 / a; if x < 0 then writeln('No solutions') else writeln('2 solutions: ', sqrt(x), ' ', -sqrt(x)); end else begin x := (-b + sqrt(D)) / 2 / a; y := (-b - sqrt(D)) / 2 / a; if x < 0 then writeln('No solutions'); if x = 0 then writeln('1 solution: 0'); if (x > 0) and (y < 0) then writeln('2 solutions: ', sqrt(x):0:3, ' ', -sqrt(x):0:3); if (x > 0) and (y = 0) then writeln('3 solutions: ', sqrt(x):0:3, ' ', -sqrt(x):0:3, ' 0'); if y > 0 then writeln('4 solutions: ', sqrt(x):0:3, ' ', -sqrt(x):0:3, ' ', sqrt(y):0:3, ' ', -sqrt(y):0:3); end; end; end; end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Кумир написать программу в кумире! Написать программу в кумире для рисования m рядов по n фрагментов в ряду. Расстояние между фрагментами 1 клеточка.
Замена z=y² приводит к уравнению решение которого хорошо известен. Поскольку в задании указан уровень "5-9 классы", варианты с комплексными корнями рассматриваться не будут, т.е. при отрицательном дискриминанте D мы считаем, что корней нет.
var
a,b,c,d,z1,z2:real;
begin
Writeln('Введите коэффициенты биквадратного уравнения по убыванию степеней');
Read(a,b,c);
d:=b*b-4*a*c;
if d<0 then Writeln('Нет корней')
else begin
d:=sqrt(d);
z1:=(-b-d)/(2*a);
z2:=(-b+d)/(2*a);
if z1<0 then begin
z1:=z2;
if z1<0 then Writeln('Нет корней')
else Writeln(-sqrt(z1),' ',sqrt(z1))
end
else begin
Write(-sqrt(z1),' ',sqrt(z1),' ');
if z2>=0 then Writeln(-sqrt(z2),' ',sqrt(z2));
Writeln
end
end
end.