Тема: Задачка з використання шаблонів
Я старався.
Умова:
Написати перегружені шаблони функцій для знаходження коренів лінійного (a*x + b = 0) і квадратного (ax^2 + bx + c = 0) рівнянь. У функції передаються коефіцієнти.
Мій код, який не працює:
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
template <typename t> t res(t q, t w);
template <typename t> t res(t a, t b, t c);
int main()
{
    system("color A");
    setlocale(LC_CTYPE, "ukr");
    cout << "Лінійне рівняння ax + b = 0" << endl;
    cout << "Введіть коефіцієнти [a,b] --> ";
    int x, y;
    cin >> x >> y;
    cout << "\n" << "Розв'язки: " << res(x, y) << endl;
    cout << "\n=-=-=-=-=-=-=-=-=-=-=-=-=-</>-=-=-=-=-=-=-=-=-=-=-=-=-=" << endl;
    cout << "Квадратне рівняння ax^2 + bx + c = 0" << endl;
    cout << "Введіть коефіцієнти [a,b,c] --> " << endl;
    int a, b, c;
    cin >> a >> b >> c;
    cout << "Розв'язки: " << res(a, b, c) << endl;
    _getch();
    return 0;
}
template <typename t> t res(t q, t w)
{
    return (-b) / a;
}
template <typename t> t res(t a, t b, t c)
{
    t D;
    D = (b*b )- 4 * a*c;
    if (D < 0)
        return -1;
    else if (D == 0)
        return (-b + sqrt(D)) / 2 * a;
    else {
        cout << (-b - sqrt(D)) / 2 * a;
        return (-b + sqrt(D)) / 2 * a;
    }
}