Биквадратное уравнение имеет вид 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.
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.
Снизу
Объяснение:
Решение - Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [180]
Независимое управление моторами – Выкл
Устранение неполадок
Требуется корректировка угла – как правило, значение должно быть меньше 180 градусов.
Задача
Поверните робота на месте по часовой стрелке на 360 градусов, а затем против часовой стрелки на 360 градусов.
turnusingsensor-4
Решение - Сводка программы
Старт
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[3] (Больше чем или равно), Градусы [360]
Независимое управление моторами – Выкл
Ожидание – Секунды[2]
Независимое управление моторами – Мощность B[10], Мощность C[-10]
Ожидание – Гироскопический датчик – Сравнить угол – Тип[5] (Меньше чем или равно), Градусы [0]
Независимое управление моторами – Выкл
Совершенствование
(15 мин.)
Переход к исследованию
Создайте новую программу, используя цикл, чтобы заставить робота ехать по периметру квадрата.
Когда вы будете готовы, испытайте свою программу в исходной позиции 4 на учебном поле 1.