LINUX.ORG.RU

История изменений

Исправление 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)