История изменений
Исправление LightDiver, (текущая версия) :
-- Функция для решения квадратного уравнения
function solveQuadratic(a, b, c)
if a == 0 then
print("Ошибка: коэффициент 'a' не может быть равен нулю.")
return
end
-- Вычисляем дискриминант
local D = b * b - 4 * a * c
if D > 0 then
-- Два вещественных корня
local x1 = (-b + math.sqrt(D)) / (2 * a)
local x2 = (-b - math.sqrt(D)) / (2 * a)
print("Уравнение имеет два вещественных корня:")
print("x1 =", x1)
print("x2 =", x2)
elseif D == 0 then
-- Один вещественный корень
local x = -b / (2 * a)
print("Уравнение имеет один вещественный корень:")
print("x =", x)
else
-- Комплексные корни
local realPart = -b / (2 * a)
local imaginaryPart = math.sqrt(-D) / (2 * a)
print("Уравнение имеет два комплексных корня:")
print("x1 =", realPart, "+", imaginaryPart, "i")
print("x2 =", realPart, "-", imaginaryPart, "i")
end
end
-- Пример использования
print("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:")
io.write("a = ")
local a = tonumber(io.read())
io.write("b = ")
local b = tonumber(io.read())
io.write("c = ")
local c = tonumber(io.read())
solveQuadratic(a, b, c)
#include <stdio.h>
#include <math.h>
// Функция для решения квадратного уравнения
void solveQuadratic(double a, double b, double c) {
if (a == 0) {
printf("Ошибка: коэффициент 'a' не может быть равен нулю.\n");
return;
}
// Вычисляем дискриминант
double D = b * b - 4 * a * c;
if (D > 0) {
// Два вещественных корня
double x1 = (-b + sqrt(D)) / (2 * a);
double x2 = (-b - sqrt(D)) / (2 * a);
printf("Уравнение имеет два вещественных корня:\n");
printf("x1 = %.2f\n", x1);
printf("x2 = %.2f\n", x2);
} else if (D == 0) {
// Один вещественный корень
double x = -b / (2 * a);
printf("Уравнение имеет один вещественный корень:\n");
printf("x = %.2f\n", x);
} else {
// Комплексные корни
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-D) / (2 * a);
printf("Уравнение имеет два комплексных корня:\n");
printf("x1 = %.2f + %.2fi\n", realPart, imaginaryPart);
printf("x2 = %.2f - %.2fi\n", realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
// Ввод коэффициентов
printf("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
// Решение уравнения
solveQuadratic(a, b, c);
return 0;
}
4 секунды на первое, шесть на второе
Исправление LightDiver, :
-- Функция для решения квадратного уравнения
function solveQuadratic(a, b, c)
if a == 0 then
print("Ошибка: коэффициент 'a' не может быть равен нулю.")
return
end
-- Вычисляем дискриминант
local D = b * b - 4 * a * c
if D > 0 then
-- Два вещественных корня
local x1 = (-b + math.sqrt(D)) / (2 * a)
local x2 = (-b - math.sqrt(D)) / (2 * a)
print("Уравнение имеет два вещественных корня:")
print("x1 =", x1)
print("x2 =", x2)
elseif D == 0 then
-- Один вещественный корень
local x = -b / (2 * a)
print("Уравнение имеет один вещественный корень:")
print("x =", x)
else
-- Комплексные корни
local realPart = -b / (2 * a)
local imaginaryPart = math.sqrt(-D) / (2 * a)
print("Уравнение имеет два комплексных корня:")
print("x1 =", realPart, "+", imaginaryPart, "i")
print("x2 =", realPart, "-", imaginaryPart, "i")
end
end
-- Пример использования
print("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:")
io.write("a = ")
local a = tonumber(io.read())
io.write("b = ")
local b = tonumber(io.read())
io.write("c = ")
local c = tonumber(io.read())
solveQuadratic(a, b, c)
-- Функция для решения квадратного уравнения
function solveQuadratic(a, b, c)
if a == 0 then
print("Ошибка: коэффициент 'a' не может быть равен нулю.")
return
end
-- Вычисляем дискриминант
local D = b * b - 4 * a * c
if D > 0 then
-- Два вещественных корня
local x1 = (-b + math.sqrt(D)) / (2 * a)
local x2 = (-b - math.sqrt(D)) / (2 * a)
print("Уравнение имеет два вещественных корня:")
print("x1 =", x1)
print("x2 =", x2)
elseif D == 0 then
-- Один вещественный корень
local x = -b / (2 * a)
print("Уравнение имеет один вещественный корень:")
print("x =", x)
else
-- Комплексные корни
local realPart = -b / (2 * a)
local imaginaryPart = math.sqrt(-D) / (2 * a)
print("Уравнение имеет два комплексных корня:")
print("x1 =", realPart, "+", imaginaryPart, "i")
print("x2 =", realPart, "-", imaginaryPart, "i")
end
end
-- Пример использования
print("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:")
io.write("a = ")
local a = tonumber(io.read())
io.write("b = ")
local b = tonumber(io.read())
io.write("c = ")
local c = tonumber(io.read())
solveQuadratic(a, b, c)
4 секунды на первое, шесть на второе
Исходная версия LightDiver, :
-- Функция для решения квадратного уравнения
function solveQuadratic(a, b, c)
if a == 0 then
print("Ошибка: коэффициент 'a' не может быть равен нулю.")
return
end
-- Вычисляем дискриминант
local D = b * b - 4 * a * c
if D > 0 then
-- Два вещественных корня
local x1 = (-b + math.sqrt(D)) / (2 * a)
local x2 = (-b - math.sqrt(D)) / (2 * a)
print("Уравнение имеет два вещественных корня:")
print("x1 =", x1)
print("x2 =", x2)
elseif D == 0 then
-- Один вещественный корень
local x = -b / (2 * a)
print("Уравнение имеет один вещественный корень:")
print("x =", x)
else
-- Комплексные корни
local realPart = -b / (2 * a)
local imaginaryPart = math.sqrt(-D) / (2 * a)
print("Уравнение имеет два комплексных корня:")
print("x1 =", realPart, "+", imaginaryPart, "i")
print("x2 =", realPart, "-", imaginaryPart, "i")
end
end
-- Пример использования
print("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:")
io.write("a = ")
local a = tonumber(io.read())
io.write("b = ")
local b = tonumber(io.read())
io.write("c = ")
local c = tonumber(io.read())
solveQuadratic(a, b, c)
-- Функция для решения квадратного уравнения
function solveQuadratic(a, b, c)
if a == 0 then
print("Ошибка: коэффициент 'a' не может быть равен нулю.")
return
end
-- Вычисляем дискриминант
local D = b * b - 4 * a * c
if D > 0 then
-- Два вещественных корня
local x1 = (-b + math.sqrt(D)) / (2 * a)
local x2 = (-b - math.sqrt(D)) / (2 * a)
print("Уравнение имеет два вещественных корня:")
print("x1 =", x1)
print("x2 =", x2)
elseif D == 0 then
-- Один вещественный корень
local x = -b / (2 * a)
print("Уравнение имеет один вещественный корень:")
print("x =", x)
else
-- Комплексные корни
local realPart = -b / (2 * a)
local imaginaryPart = math.sqrt(-D) / (2 * a)
print("Уравнение имеет два комплексных корня:")
print("x1 =", realPart, "+", imaginaryPart, "i")
print("x2 =", realPart, "-", imaginaryPart, "i")
end
end
-- Пример использования
print("Введите коэффициенты a, b и c для уравнения ax^2 + bx + c = 0:")
io.write("a = ")
local a = tonumber(io.read())
io.write("b = ")
local b = tonumber(io.read())
io.write("c = ")
local c = tonumber(io.read())
solveQuadratic(a, b, c)