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

Вычислить сумму произведений всех троек соседних чисел массива - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
05.09.2011, 12:15     Вычислить сумму произведений всех троек соседних чисел массива #1
Дан одномерный числовой массив A из n элементов. Вычислить сумму произведений всех троек соседних чисел.
Вот на паскале
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const
  n=10;
var
  a:array[1..n]of integer;
  i,j,sum:longint;
begin
  writeln('Исходный массив:');
  sum:=0;
  for i:=1 to n do
  begin
    a[i]:=random(8)-4;
    if i>=3 then
      inc(sum,a[i]*a[i-1]*a[i-2]);
    write(a[i],' ')
  end;
  WriteLn;
  WriteLn(sum)
end.
Перевел на С++. Но у меня что-то не так. Прошу поясните что не так или что лишний
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
#include <iostream.h>
#include <cstdlib>
 
const n = 10;
 
int main () {
 
    int mas[n];
    int i, j, sum;
    
    cout << "Ishodnoi massiv: ";
    sum = 0;
 
    for (i = 0; i < n; i++)
 
        mas[i] = rand();
        
        if (i >= 3)
            sum = sum + mas[i] * mas[i-1] * mas[i -2];
 
    for (i = 0; i < 10; i++)
    cout << mas[i] << ' ';
        
    cout << endl;
    cout << "Summa proizvedenii vsex troek sosednih chisel: " << sum << endl;
 
 
    
 
 
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2011, 12:15     Вычислить сумму произведений всех троек соседних чисел массива
Посмотрите здесь:

Задан одномерный массив,вычислить сумму произведении всех пар соседних чисел C++
перегруженые функции для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел C++
C++ Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел
Вычислить и отобразить сумму всех целых чисел C++
C++ Имеем число, вычислить суму произведений цифр для всех чисел длиной
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
05.09.2011, 12:23     Вычислить сумму произведений всех троек соседних чисел массива #2
Цитата Сообщение от proger2030 Посмотреть сообщение
Но у меня что-то не так.
перед использованием rand нужно вбить srand(0), сейчас подправлю

Добавлено через 38 секунд
Цитата Сообщение от proger2030 Посмотреть сообщение
for (i = 0; i < n; i++)
mas[i] = rand();
if (i >= 3)
* * * * * * * * * * * * sum = sum + mas[i] * mas[i-1] * mas[i -2];
Скобки цикла забыл!!!
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
05.09.2011, 12:27     Вычислить сумму произведений всех троек соседних чисел массива #3
Если это переводить максимально близко, то
Pascal
1
2
    a[i]:=random(8)-4;
    if i>=3 then
соответствует
C++
1
2
    mas[i] = rand()%9 - 4;
    if (i >= 2)
Добавлено через 1 минуту
И да, у цикла for из строк 14—19 должны быть фигурные скобки, окружающие тело.
-=ЮрА=-
Заблокирован
Автор FAQ
05.09.2011, 12:33     Вычислить сумму произведений всех троек соседних чисел массива #4
Вот код
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.h>
#include <cstdlib>
 
const n = 10;
int GetRandNum(int iMax);
 
int main () 
{
 
    int mas[n];
    int i, sum;
    char ch;
    do
    {
        srand(0);
        cout << "Ishodnoi massiv: ";
        sum = 0;
 
        for (i = 0; i < n; i++)
        {
            cout<<(mas[i] = GetRandNum(10))<<"\r\n";
            if (i >= 3)
                sum += (mas[i] * mas[i - 1] * mas[i - 2]);
        }
        cout << "Summa proizvedenii vsex troek sosednih chisel: " << sum << endl;
        cout<<"Y - new enter\r\n";
        cin>>ch;
    }
    while(ch == 'Y' || ch == 'y');
    return 0;
}
 
int GetRandNum(int iMax)
{
    int ret = rand();
    while(iMax < ret)
        ret = rand();
    return ret;
}
Добавлено через 1 минуту
Кроме скобок біла проблемма здесь
Цитата Сообщение от proger2030 Посмотреть сообщение
mas[i] = rand();
- программа генерировала на сколь угодно больше int - при 3-х кратном произведении был возможен выход за пределы INT_MAX, что и происходило, поэтому ввёл функцию GetRandNum - которая ограничивает величину генерируемого числа

Добавлено через 58 секунд
Цитата Сообщение от grizlik78 Посмотреть сообщение
И да, у цикла for из строк 14—19 должны быть фигурные скобки, окружающие тело.
уже писал об этом
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Скобки цикла забыл!!!
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
05.09.2011, 12:36  [ТС]     Вычислить сумму произведений всех троек соседних чисел массива #5
[QUOTE=grizlik78;1961423]
C++
1
2
    mas[i] = rand()%9 - 4;
    if (i >= 2)
Можешь объяснить для чего это делается? (именно тот часть где после rand()) %9 -4
-=ЮрА=-
Заблокирован
Автор FAQ
05.09.2011, 12:38     Вычислить сумму произведений всех троек соседних чисел массива #6
Цитата Сообщение от proger2030 Посмотреть сообщение
rand()) %9
- это остаток от целочисленного деления на 9, потом от этого числа отнимаешь 4
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
05.09.2011, 12:38     Вычислить сумму произведений всех троек соседних чисел массива #7
x % 9 это нахождения остатка от деления на 9.
То есть rand() % 9 будет возвращать числа от 0 до 8 включительно.
Ну а вычитая 4 получаем числа от -4 до 4
Ann831
 Аватар для Ann831
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 7
05.09.2011, 12:43     Вычислить сумму произведений всех троек соседних чисел массива #8
В массиве 20 элементов, Увеличить положительные элементы на 2, отрицательные элементы уменьшить на 1, а нулевые оставить без изменений.Добрые хорошие люди помогите пожалуйсто решить задачу.
-=ЮрА=-
Заблокирован
Автор FAQ
05.09.2011, 12:52     Вычислить сумму произведений всех троек соседних чисел массива #9
Цитата Сообщение от Ann831 Посмотреть сообщение
В массиве 20 элементов,
- как они получены, заданы изначально, путём вводу или же как в этом топике рандомно сгенерированы?PS:Создай отдельный топик, тогда его все видеть смогут...
Ann831
 Аватар для Ann831
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 7
05.09.2011, 12:59     Вычислить сумму произведений всех троек соседних чисел массива #10
В массиве B 20 элементов.Найти и напечатать,Увеличить положительные элементы на 2, отрицательные элементы уменьшить на 1, а нулевые оставить без изменений. Что есть топик. Сильно надо мной не смейтесь, потому как я в компе аще полный аут. Спасибо что не проигнорировали Блондинку
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.09.2011, 13:07     Вычислить сумму произведений всех троек соседних чисел массива #11
Цитата Сообщение от Ann831 Посмотреть сообщение
В массиве 20 элементов, Увеличить положительные элементы на 2, отрицательные элементы уменьшить на 1, а нулевые оставить без изменений.Добрые хорошие люди помогите пожалуйсто решить задачу.
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 <iomanip>
#include <boost/foreach.hpp>
#include <cstdlib>
 
int main()
{
    srand(time(0) );
    int arr[10];
    
    std::cout << "Before: ";
    BOOST_FOREACH(int &x, arr )
    {
        x = rand() % 20 - 10;
        std::cout << std::setw(3) << x << ' ';
    }
    
    std::cout << "\nAfter:  ";
    
    BOOST_FOREACH(int &x, arr)
    {
        if (x < 0)
            --x;
        if (x > 0)
            ++++x;
        std::cout << std::setw(3) << x << ' ';
    }
    
    std::cout << std::endl;
}
Bash
1
2
3
4
diagon@shadeware:~$ g++ 11.cpp && ./a.out
Before:   9  -8   1  -1   9  -2   5  -4   4  -5 
After:   11  -9   3  -2  11  -3   7  -5   6  -6 
diagon@shadeware:~$
Ann831
 Аватар для Ann831
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 7
05.09.2011, 14:20     Вычислить сумму произведений всех троек соседних чисел массива #12
Код Pascal Мне нужно это сделать в Паскале. А в этой форме я не шпрейхен.Вот еще такое задание: Массив В состоит из 25 элементов.Поменять местами элементы, расположенные в первой и второй половине массива. Вот как изучить этот Паскаль за 4часа лекции. Пипец пардон какой то. Спасибо.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
05.09.2011, 14:23     Вычислить сумму произведений всех троек соседних чисел массива #13
Цитата Сообщение от Ann831 Посмотреть сообщение
Мне нужно это сделать в Паскале
Так какого чёрта ты пишешь мало того, что в чужой теме, так ещё и в разделе C++ ?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.09.2011, 14:28     Вычислить сумму произведений всех троек соседних чисел массива #14
Код Pascal Мне нужно это сделать в Паскале
Вам сюда

Не по теме:

В последнее время у меня создается впечатление, что только я(ну и еще несколько сотен счастливчиков) проходили паскаль в школе. И алгебру. И русский. И...

C++
1
2
for(int i = 2; i < subjInSchool; ++i) 
std::cout << schoolSubj[i];

diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.09.2011, 14:44     Вычислить сумму произведений всех троек соседних чисел массива #15
Цитата Сообщение от Ann831 Посмотреть сообщение
В массиве B 20 элементов.Найти и напечатать,Увеличить положительные элементы на 2, отрицательные элементы уменьшить на 1, а нулевые оставить без изменений.
Цитата Сообщение от Ann831 Посмотреть сообщение
Код Pascal Мне нужно это сделать в Паскал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var arr:array[1..20] of integer;
i:byte;
begin
 randomize;
 write('Before: ');
 for i:= 1 to 20 do
 begin
  arr[i]:=random(10) - 5;
  write(arr[i], ' ');
 end;
 writeln;
 write('After: ' );
 for i:= 1 to 20 do
 begin
 if arr[i] < 0 then dec(arr[i]);
 if arr[i] > 0 then arr[i]:=arr[i] + 2;
 write(arr[i], ' ');
 end;
 writeln;
 readln;  
end.
Ann831
 Аватар для Ann831
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 7
05.09.2011, 16:05     Вычислить сумму произведений всех троек соседних чисел массива #16
randomize;А это что ? Вот проверти еще пожалуйсто.Массив В состоит из элементов.Поменять местами элементы,расположенные в первой и второй половине массива.
var A: array [1......16];
begin write ( введите n <16);
readln (n);
for i:=1 to n do
writeln (введите A, i);
readln (A[i]);
И так далее. Я просто не знаю как правильно напечатать задачу в форуме К сожалению в школе Паскале,да и информатики не было. Спасибо за понимание.

Добавлено через 7 минут
Цитата Сообщение от grizlik78 Посмотреть сообщение
Так какого чёрта ты пишешь мало того, что в чужой теме, так ещё и в разделе C++ ?
Ой простите ради бога. А вот хрен его знает почему я ввашу тему залезла. Приношу извенения глубочайшие. Я понимаю, что на фоне ваших умов выгляжу полной дурой. Из за не знания я и обратилась на ваш сайт.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
05.09.2011, 16:28     Вычислить сумму произведений всех троек соседних чисел массива #17
Цитата Сообщение от Ann831 Посмотреть сообщение
randomize;А это что ?
Это процедура (не путать с полной дурой ), которая инициализирует генератор случайных чисел (вроде от текущего времени).

Цитата Сообщение от Ann831 Посмотреть сообщение
А вот хрен его знает почему я ввашу тему залезла.
Она не наша

Цитата Сообщение от Ann831 Посмотреть сообщение
Я понимаю, что на фоне ваших умов выгляжу полной дурой.
Не было такого. Просто на форуме есть тематические разделы. И в разделе Паскаля значительно больше шансов получить помощь, чем в разделе, где на Паскаль смотрят с... э... Ну как на ребетёнка (хотя ни C, ни C++, ни даже сам Pascal толком не знают )
Ann831
 Аватар для Ann831
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 7
05.09.2011, 16:35     Вычислить сумму произведений всех троек соседних чисел массива #18
Цитата Сообщение от grizlik78 Посмотреть сообщение
Это процедура (не путать с полной дурой ), которая инициализирует генератор случайных чисел (вроде от текущего времени).


Она не наша


Не было такого. Просто на форуме есть тематические разделы. И в разделе Паскаля значительно больше шансов получить помощь, чем в разделе, где на Паскаль смотрят с... э... Ну как на ребетёнка (хотя ни C, ни C++, ни даже сам Pascal толком не знают )
Ой спасибо вам большое. Тогда раз все не так уж плохо,ну в смысле что вы меня не гоните. Я там выше изложила начало решения верно ли оно. Я конечно обращусь в тему Паскаля. Но все же раз уж нацарапала каку то штуку посмотрите пожалуйсто.
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
05.09.2011, 19:04  [ТС]     Вычислить сумму произведений всех троек соседних чисел массива #19
Добавлено через 4 минуты
Как (на консол) выводить тех чисел которые суммирутся и умнажается ? Хочу проверить ручную

Добавлено через 49 минут
Как выводит тех чисел которые суммирутся и умнажается?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2011, 19:14     Вычислить сумму произведений всех троек соседних чисел массива
Еще ссылки по теме:

C++ Дано двумерный массив целых чисел. Найти сумму произведений всех строк
C++ вычислить сумму всех составных чисел от 1 до М
C++ В заданном числовом массиве вычислить сумму произведений всех троек соседних чисел.

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

Или воспользуйтесь поиском по форуму:
#pragma
06.09.2011, 19:14     Вычислить сумму произведений всех троек соседних чисел массива
  #20

Не по теме:

soon, а как Вы сделали такой меленький шрифт в коде С++? Выглядит симпатично. Это он сам таким стаёт,если пользоваться тегом OFF?

Yandex
Объявления
06.09.2011, 19:14     Вычислить сумму произведений всех троек соседних чисел массива
Ответ Создать тему
Опции темы

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