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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
#1

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

09.04.2013, 19:11. Просмотров 602. Ответов 6
Метки нет (Все метки)

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

Написать функцию, которая вычисляет сумму элементов - C++
Написать функцию, которая вычисляет сумму элементов, удовлетворяющих условию A<x<B. Числа А, В вводить с клавиатуры.

Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне - C++
Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне Код: long int Fact(long int N) { // если...

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

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

Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K) - C++
Здравствуйте, нужна помощь по решению двух зачад в TC++(Turbo C++); Задача 1. Написать функцию, которая вычисляет объем и площадь...

Создать функцию, которая вычисляет сумму - C++
Дано то, что на картинке. Даже представить не могу, как написать саму рекурсию? Пыталась много всего сделать, знаки тоже не понимаю....

6
yoghurt92
374 / 345 / 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;
}
1
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
09.04.2013, 19:58  [ТС] #3
а можно, пожалуйста, с комментариями, чтобы можно было разобраться?
0
yoghurt92
374 / 345 / 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;
}
1
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
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;
}
1
yoghurt92
374 / 345 / 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;
}
1
emrabbit
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 9
10.04.2013, 13:24  [ТС] #7
еще не понял, как отвечать конкретно лицам, но спасибо всем за помощь
если будут вопросы, теперь буду знать, к кому обратиться
0
10.04.2013, 13:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 13:24
Привет! Вот еще темы с ответами:

Написать функцию, которая вычисляет значение а^b - C++
Write a function that calculates the value of a ^ b. Numbers a and b can be any positive fractional numbers.

Написать функцию, которая вычисляет а в b степени - C++
1.Записать в файл последовательность доступа N действительных чисел. Вычислить произведение компонентов файла и вывести их на экран. ...

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

Написать функцию, которая вычисляет периметр треугольника - C++
Здравствуйте,имеется такая задача: Написать функцию, которая вычисляет периметр треугольника по трем сторонам. И вот такая программа...


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

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

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