Квадратное уравнение

Квадратным уравнением является уравнение следующего вида: ax² + bx + c = 0
Квадратное уравнение может иметь один или два корня, а может и не иметь корней.
Для решения квадратного уравнения необходимо в начале вычислить дискриминант: D = b² – 4ac
Если дискриминант отрицательный, то уравнение не имеет корней.
Если дискриминант равен нулю, то уравнение имеет единственный корень: x = –b ÷ 2a
Если дискриминант положительный, то уравнение имеет два корня:
x₁ = (–b + √D) ÷ 2a
x₂ = (–b – √D) ÷ 2a

Функция решения квадратного уравнения на языке Pascal

uses
	math;

type
	dptr = ^double;

procedure solveEquation(a: double; b: double; c: double; x1: dptr; x2: dptr);
var
	d: double;
	nan: double;
begin
	nan := 0.0 / 0.0;
	d := b*b - 4.0*a*c;
	if (d < 0.0) then begin
		x1^ := nan;
		x2^ := nan;
	end else if (d < 0.00001) then begin
		x1^ := -b / 2.0 / a;
		x2^ := -b / 2.0 / a;
	end else begin
		x1^ := (-b + sqrt(d)) / 2.0 / a;
		x2^ := (-b - sqrt(d)) / 2.0 / a;
	end;
end;
    

Функция решения квадратного уравнения на языке C

#include <math.h>

void solveEquation(double a, double b, double c, double* x1, double* x2) {
    double d = b*b - 4.0*a*c;
    if (d < 0.0) {
        *x1 = NAN;
        *x2 = NAN;
    } else if (d < 0.00001) {
        *x1 = -b / 2.0 / a;
        *x2 = -b / 2.0 / a;
    } else {
        *x1 = (-b + sqrt(d)) / 2.0 / a;
        *x2 = (-b - sqrt(d)) / 2.0 / a;
    }
}
        

Пример решения квадратного уравнения

В качестве примера, решим следующее квадратное уравнение: 2x² – 8x + 6 = 0
Вычислим дискриминант: D = b² – 4ac = 8² – 4·2·6 = 64 – 48 = 16
Дискриминант больше нуля, а значит уравнение имеет два корня:
x₁ = (–b + √D) ÷ 2a = (–8 + √16) ÷ 2·2 = (8 + 4) ÷ 4 = 3
x₂ = (–b - √D) ÷ 2a = (–8 - √16) ÷ 2·2 = (8 - 4) ÷ 4 = 1