Найти действительные корни уравнения Ax^4+Bx^2-C=0 - Free Pascal
Формулировка задачи:
Найти действительные корни уравнения Ax^4+Bx^2-C=0
Решение задачи: «Найти действительные корни уравнения Ax^4+Bx^2-C=0»
textual
Листинг программы
var
a, b, c: Single;
sq1, sq2: Double;
begin
Write('Input a, b, c: '); ReadLn(a, b, c);
if (a = 0) //вообще не хорошо на равенство число с плавающей точкой сравнивать
then
begin
if (b = 0)
then
begin
if (c = 0)
then
Write('Infinite set of solution')
else
Write('No one solution');
end
else
begin
sq1 := c / b;
if (sq1 < 0)
then
Write('2 imaginary solution')
else
begin
sq1 := Sqrt(sq1);
WriteLn('x1 = ', sq1:0:3);
Write('x2 = ', -sq1:0:3);
end;
end;
end
else
begin
sq1 := (-b + Sqrt(Sqr(b) + 4 * a * c)) / 2 / a;
sq2 := (-b - Sqrt(Sqr(b) + 4 * a * c)) / 2 / a;
if (sq1 < 0)
then
WriteLn('2 imaginary solution')
else
begin
sq1 := Sqrt(sq1);
WriteLn('x1 = ', sq1:0:3);
Write('x2 = ', -sq1:0:3);
end;
if (sq2 < 0)
then
Write('2 imaginary solution')
else
begin
sq2 := Sqrt(sq2);
WriteLn('x3 = ', sq2:0:3);
Write('x4 = ', -sq2:0:3);
end
end;
end.
Объяснение кода листинга программы
- Объявление переменных a, b, c типа Single для хранения коэффициентов уравнения.
- Запрос на ввод коэффициентов a, b, c с помощью функции ReadLn.
- Проверка на равенство a нулю. Если условие выполняется, то программа переходит к следующему пункту.
- Проверка на равенство b нулю. Если условие выполняется, то программа переходит к следующему пункту.
- Вычисление значения sq1 как частное c на b.
- Проверка на отрицательность значения sq1. Если условие выполняется, то программа переходит к следующему пункту.
- Вычисление значения sq1 как квадратного корня из предыдущего значения.
- Вывод значения x1 с точностью до 3 знаков после запятой.
- Вывод значения x2 с точностью до 3 знаков после запятой.
- Вычисление значения sq2 как частное c на b.
- Проверка на отрицательность значения sq2. Если условие выполняется, то программа переходит к следующему пункту.
- Вычисление значения sq2 как квадратного корня из предыдущего значения.
- Вывод значения x3 с точностью до 3 знаков после запятой.
- Вывод значения x4 с точностью до 3 знаков после запятой.