template<class T, int N>
T CalcMass(T* mass)
{
int n = N;
T result = 1;
while(n)
{
T poly = 0;
for(int i = 0; i < n; ++i)
poly += mass;
result *= poly;
n--;
}
return result;
}
int main()
{
int imass[] = {1, 2, 3};
double dmass[] = {1.1, 2.0, 3.0};
cout << CalcMass<int, 3>(imass) << endl;
cout << CalcMass<double, sizeof(dmass)/sizeof(double)>(dmass) << endl;
return 0;
}
чтение из файла в массив, вычисление по формуле
в текстовом файле имеются в первой строке натуральные числа n, записанные через пробел; аналогично во второй - действительные a1,a2,a3...an; программе нужно найти значение функции:
y=an(an+an-1)(an+an-1+an-2)...(an+an-1+...a1)
где n, n-1, n-2... - индексы чисел a; a1 - a с индексом 1;
Я так понимаю, сначала читаем из файла в массив целые числа, затем вещественные из того же файла в другой массив? А как быть с формулой - не знаю. Может кто-нибудь написать хотя бы набросок?
Если же нужно написать программу, то будьте добры, укажите на каком языке программирования, и что вам не понятно в задаче.
P.S. Наиболее простое и легкое решение можно реализовать с помощью рекурсии. Гугл или википедия вам в помощь.
извиняюсь, что не указал язык сразу, C++. предполагаю, числа из файла нужно записать в два массива и передавать их в функию, которая будет считать y? как записать выражение, считающее у - мне не понятно.
Пишется рекуррентные соотношение и в цикле вычисляется.
не сочтите за дерзость, но не мог бы кто-нибудь написать код? мне с ней не справиться, а задача очень нужна, спасибо.
Цитата: get.life
мне с ней не справиться, а задача очень нужна
А ты попробуй как-нибудь начать решать.
Ладно, окажу медвежью услугу.
Код:
Не очень красиво, правда. Green как-то показывал как передать массив в шаблонную функцию, но я забыл как, а искать лень, ибо массивы почти не использую.
Kogrom, спасибо большое!