Тема: Задачка з використання шаблонів
Я старався.
Умова:
Написати перегружені шаблони функцій для знаходження коренів лінійного (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;
}
}