Форум программистов, компьютерный форум CyberForum.ru

Написать функцию, которая вычисляет сумму последовательности - C++

Восстановить пароль Регистрация
 
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
09.04.2013, 19:11     Написать функцию, которая вычисляет сумму последовательности #1
Начал недавно изучать С++, прошу помощи у вас, не могу написать прогу по массивам.
Вот условие: Написать функцию, которая по массивам действительных чисел x1, x2, ..., xn вычисляет: x1xn + x2xn-1 + ... + xnx1.
Заранее благодарен за помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 19:11     Написать функцию, которая вычисляет сумму последовательности
Посмотрите здесь:

Написать функцию, которая вычисляет а в b степени C++
Написать функцию, которая вычисляет сумму элементов C++
Создать функцию, которая вычисляет член рекуррентной последовательности C++
Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне C++
Написать функцию, которая вычисляет значение а^b C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 19:37     Написать функцию, которая вычисляет сумму последовательности #2
emrabbit, вот вам первый вариант

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <iomanip>
#include <vector>
#include <time.h>
#include <cstdlib>
#include <algorithm>
#include <iterator>
using namespace std;
 
void random(int &elem){
    elem = 1 + rand() % 11;
}
 
int main()
{
    srand(time(NULL));
 
    int size;
    cout << "Enter the size of array: ";
        cin >> size;
 
    vector<int> coll(size);
    for_each(coll.begin(), coll.end(), random);
 
    cout << "\nArray: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    transform(coll.begin(), coll.end(),
        coll.rbegin(), coll.begin(), multiplies<int>());
 
    cout << "\nNew array: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    cout << "\n\n";
    return 0;
}
и вот второй вариант, выбирайте сами уже какой понравится

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
 
 
int main()
{
    srand(time(NULL));
 
    const int size(5);
    int mas[size];
 
    for(int i = 0; i < size; ++i)
        mas[i] = 1 + rand() % 11;
 
    cout << "Array: ";
    for(int i = 0; i < size; ++i)
        cout << mas[i] << ' ';
 
    for(int i = 0, j = size - 1; i < size; ++i, --j)
        mas[i] *= mas[j];
    
    cout << "\nNew array: ";
    for(int i = 0; i < size; ++i)
        cout << mas[i] << ' ';
 
    cout << "\n\n";
    return 0;
}
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
09.04.2013, 19:58  [ТС]     Написать функцию, которая вычисляет сумму последовательности #3
а можно, пожалуйста, с комментариями, чтобы можно было разобраться?
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:10     Написать функцию, которая вычисляет сумму последовательности #4
emrabbit, к какому из двух?

Добавлено через 9 минут
emrabbit,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
 
int main()
{
    srand(time(NULL));          //чтобы случайные числа не повторялись
 
    const int size(5);          //размер массива - 5 элементов
    int mas[size];              //наш массив размера size 
 
    for(int i = 0; i < size; ++i)           //идем по массиву
        mas[i] = 1 + rand() % 11;           //заполняем случайными числами
 
    cout << "Array: ";
    for(int i = 0; i < size; ++i)           //идем по массиву
        cout << mas[i] << ' ';              //выводим массив
 
    for(int i = 0, j = size - 1; i < size; ++i, --j)
        /*i от начала масива до конца, j от конца до начала
        и паралелльно перемножаем элементы*/
        mas[i] *= mas[j];
    
    cout << "\nNew array: ";
    for(int i = 0; i < size; ++i)           //идем по массиву
        cout << mas[i] << ' ';              //выводим новый массив
 
    cout << "\n\n";
    return 0;
}
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
09.04.2013, 20:11     Написать функцию, которая вычисляет сумму последовательности #5
yoghurt92, Ваши программы для вычислений берут новые значения, хотя по задаче должны брать старые. Вот к чему я веду:
Есть массив (входные данные): 10, 11, 2, 6, 7
Тогда результатом должен быть: 10*7, 11*6, 2*2, 6*11, 7*10, то есть 70, 66, 4, 66, 70, а Ваша программа выдает 70 66, 4, 396, 490
Или я неправильно понял задачу?

Вот исправленный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <iomanip>
#include <vector>
#include <time.h>
#include <cstdlib>
#include <algorithm>
#include <iterator>
using namespace std;
 
void random(int &elem){
    elem = 1 + rand() % 11;
}
 
int main()
{
    srand(time(NULL));
 
    int size;
    cout << "Enter the size of array: ";
        cin >> size;
 
    vector<int> coll(size);
    
    for_each(coll.begin(), coll.end(), random);
 
    cout << "\nArray: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    coll.resize(coll.size()*2);
    transform(coll.begin(), coll.end() - size,
            coll.rbegin() + size, coll.begin() + size, multiplies<int>());
 
    coll.erase(coll.begin(), coll.end() - size);
    cout << "\nNew array: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    cout << "\n\n";
    return 0;
}
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:23     Написать функцию, которая вычисляет сумму последовательности #6
Olivеr, может вы и правы, тогда сейчас исправлю

Добавлено через 2 минуты
Olivеr,

ну вот так можно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <iomanip>
#include <vector>
#include <time.h>
#include <cstdlib>
#include <algorithm>
#include <iterator>
using namespace std;
 
void random(int &elem){
    elem = 1 + rand() % 11;
}
 
int main()
{
    srand(time(NULL));
 
    int size;
    cout << "Enter the size of array: ";
        cin >> size;
 
    vector<int> coll(size);
    for_each(coll.begin(), coll.end(), random);
 
    cout << "\nArray: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    vector<int> coll2(coll);
    transform(coll.begin(), coll.end(),
        coll2.rbegin(), coll.begin(), multiplies<int>());
 
    cout << "\nNew array: ";
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
 
    cout << "\n\n";
    return 0;
}
Добавлено через 5 минут
и вариант второй

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
 
int main()
{
    srand(time(NULL));          //чтобы случайные числа не повторялись
 
    const int size(5);          //размер массива - 5 элементов
    int mas[size], mas_s[size];              //наш массив размера size 
 
    for(int i = 0, j = size - 1; i < size; ++i, --j){           //идем по массиву
        mas[i] = 1 + rand() % 11;                               //заполняем случайными числами
        mas_s[j] = mas[i];
    }
 
    cout << "Array: ";
    for(int i = 0; i < size; ++i)           //идем по массиву
        cout << mas[i] << ' ';              //выводим массив
 
    for(int i = 0; i < size; ++i)
        mas[i] *= mas_s[i];
    
    cout << "\nNew array: ";
    for(int i = 0; i < size; ++i)           //идем по массиву
        cout << mas[i] << ' ';              //выводим новый массив
 
    cout << "\n\n";
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:24     Написать функцию, которая вычисляет сумму последовательности
Еще ссылки по теме:

написать функцию которая вычисляет сумму и произведение первых n нечетных чисел C++
C++ Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне
C++ Написать функцию, которая вычисляет значение выражения

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

Или воспользуйтесь поиском по форуму:
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
10.04.2013, 13:24  [ТС]     Написать функцию, которая вычисляет сумму последовательности #7
еще не понял, как отвечать конкретно лицам, но спасибо всем за помощь
если будут вопросы, теперь буду знать, к кому обратиться
Yandex
Объявления
10.04.2013, 13:24     Написать функцию, которая вычисляет сумму последовательности
Ответ Создать тему
Опции темы

Текущее время: 23:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru