Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
#1

Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) уравнения

31.03.2017, 16:51. Просмотров 471. Ответов 17
Метки нет (Все метки)

Кто знает как решить задачу на С++, при помощи шаблонных функций?
Написать перегруженные шаблоны функций для нахождения корней линейного
(a*x + b = 0) и квадратного (a*x2
+b*x + c = 0) уравнений. Замечание: в функции
передаются коэффициенты уравнений
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2017, 16:51
Ответы с готовыми решениями:

Написать перегруженные шаблоны функций для уравнений
Написать перегруженные шаблоны функций для нахождения корней линейного...

Написать программу нахождения корней квадратного уравнения
Заданы коэффициенты квадратного уравнения. Найти его корни (написать...

Написать перегруженные функции для нахождения произведения
Написать перегруженые функции для нахождения произведения трех переданных чисел...

Для нахождения корней квадратного уравнения использовать функцию
Даны вещественные числа a,b,c,d,e,f.Переменноый S присвоить значение 1, если...

Почему перегруженные шаблоны функций должны возвращать один и тот же тип?
Так как я еще очень плохо знаю шаблоны и никак не могу понять. Почему у всех...

17
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
31.03.2017, 17:11 #2
В чём шаблонность-то должна выражаться?
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
31.03.2017, 18:11  [ТС] #3
nmcf, В перегруженности функций.
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
31.03.2017, 18:36 #4
Что именно там общее-то?
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
31.03.2017, 23:19  [ТС] #5
nmcf, Не знаю, это всё условие, которое есть.
0
nonedark2008
1036 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,154
01.04.2017, 01:12 #6
Может что-нибудь такое:
C++
1
2
3
4
template<typename A, typename B>
auto f(const A &a, const B&b) -> decltype(a + b) {
    return -b / a;
}
Ну и вторую по аналогии.

Добавлено через 1 час 6 минут
Для второго можно вот так:
C++
1
2
3
4
5
6
template<typename A, typename B, typename C>
auto f(const A &a, const B&b, const C &c) -> vector<complex<decltype(a + b + c)>> {
    using T = decltype(a + b + c);
    auto D_2 = static_cast<complex<T>>(sqrt(complex<double>(b * b - 4 * a * c)));
    return {(-T(b) - D_2) / T(2) / T(a), (-T(b) - D_2) / T(2) / T(a) };
}
1
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
01.04.2017, 01:23  [ТС] #7
nonedark2008, что-то ему не нравится...
0
Миниатюры
Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) уравнения  
nonedark2008
1036 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,154
01.04.2017, 01:52 #8
Bossx, ну вот даже не знаю что тебе сказать.
Функцию main хоть добавь.
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
01.04.2017, 02:34  [ТС] #9
nonedark2008, добавлял, всё равно ошибки выдаёт.
0
nonedark2008
1036 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,154
01.04.2017, 11:37 #10
Bossx, значит чего-то не хватает.
Либо у тебя слишком древний компилятор...
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
01.04.2017, 21:41  [ТС] #11
nonedark2008, 2013 года студия.
0
nonedark2008
1036 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,154
01.04.2017, 22:31 #12
Bossx, может и не будет работать. У меня нет 13 под рукой.
Ну, убери decltype, возвращаемый тип укажи как double.
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
13.04.2017, 21:50  [ТС] #13
Есть еще у кого-то варианты решения?
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
23.04.2017, 19:05  [ТС] #14
Знает кто-то, как решается данная задача?
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
23.04.2017, 20:29 #15
Предложили же вариант. У тебя не ясное задание.
0
Bossx
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
Завершенные тесты: 2
23.04.2017, 21:38  [ТС] #16
nmcf, У меня предложенный вариант не работает, задание скинул полностью, как задали, может кто-то знает как его сделать.
0
nonedark2008
1036 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,154
23.04.2017, 22:45 #17
Цитата Сообщение от Bossx Посмотреть сообщение
У меня предложенный вариант не работает
Когда что-то не работает, нужно точно указывать, что именно не работает, желательно с конкретными сообщениями об ошибках, которые выдает компилятор. Иначе, человек должен быть очень мотивированным, чтобы начать гадать, что же там у ТС пошло не так...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <complex>
#include <vector>
#include <iostream>
 
using namespace std;
 
template<typename T, typename A, typename B, typename C>
vector<T> f(const A &a, const B&b, const C &c) {
    auto D_2 = static_cast<T>(sqrt(T(b * b - 4 * a * c)));
    return{(-T(b) - D_2) / T(2) / T(a), (-T(b) - D_2) / T(2) / T(a)};
}
 
int main() {
    auto res = f<complex<double>>(1, 1, 1);
 
    cout << "Roots: ";
    for (auto &it : res)
        cout << it.real() << (it.imag() >= 0 ? "+": "") << it.imag() << "*i; ";
    cout << endl;
 
    return 0;
}
1
nmcf
23.04.2017, 23:10     Написать перегруженные шаблоны функций для нахождения корней линейного (a*x + b = 0) уравнения
  #18

Не по теме:

Цитата Сообщение от Bossx Посмотреть сообщение
задание скинул полностью, как задали
Ну так уточни задание. Оно понятно только тому, кто его придумал.

0
23.04.2017, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 23:10
Привет! Вот еще темы с ответами:

Перегруженные шаблоны функций возврата минимального значения одно- и двумерного массивов
Помогите с решением такой задачи. Надо найти минимальное значение одномерного и...

Реализовать решение линейного рекуррентного уравнения нахождения числа f (k) для любого натурального k
На вычислительной практие дали такое задание: Напишите программу,...

Написать прогу для вычисления корней квадратного уравнения
Очень прошу, помогите. На С++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru