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

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

Войти
Регистрация
Восстановить пароль
 
DVGU.MAKC
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 35
#1

Вывод вычисления произведения - C++

11.06.2013, 13:54. Просмотров 260. Ответов 8
Метки нет (Все метки)

Есть цикл, в котором при помощи cout выводятся номера элементов массива, как вывести вычисления произведений?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    int a[10000];
    int res = 1;
 for (int i = 0; i < 10000; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<<"a="<<i<<endl;
}
    system("PAUSE");
    return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 13:54     Вывод вычисления произведения
Посмотрите здесь:

Вычисления смешанного произведения векторов - C++
Даны три вектора а=(a1, a2, a3), b=(b1, b2, b3) и c=(c1, c2, c3). Написать программу вычисления смешанного произведения этих векторов.

Разработать функцию вычисления произведения - C++
Разработать функцию, которая реализует метод динамического программирования «снизу-вверх», чтобы вычислить: произведение...

Вычисления произведения и суммы двух матриц - C++
Доброго времени суток! Помогите пожалуйста! Задана квадратная матрица А. Вычислить А^n. функции: Вычисления произведения и суммы двух...

Написать функцию вычисления произведения прямоугольных матриц - C++
Написать функцию вычисления произведения прямоугольной матрицы A размера k × m на прямоугольную матрицу B размера m × n. Всем привет,...

Как составить программу для вычисления произведения - C++
Пожалуйста, помогите составить программу для вычисления произведения 1*3*5*...*(n-1) n-ввод. Сам не силён в программировании, а...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
11.06.2013, 13:58     Вывод вычисления произведения #2
C++
1
2
3
4
5
 for (int i = 0; i < 10000; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
Это Вы таким образом сократили в 3 раза количество итераций? Как звучит задача?
DVGU.MAKC
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 35
11.06.2013, 14:03  [ТС]     Вывод вычисления произведения #3
Цитата Сообщение от Мимино Посмотреть сообщение
C++
1
2
3
4
5
 for (int i = 0; i < 10000; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
Это Вы таким образом сократили в 3 раза количество итераций? Как звучит задача?
Задача такая:
1) Оптимизировать вот этот код при помощи развертывания циклов:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{
    int a[10000];
    int res = 1;
 for (int i = 0; i < 10000; i++)
{
 res *= a[i];
 cout<<"a="<<i<<endl;
}
    system("PAUSE");
    return 0; 
}
получается:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    int a[10000];
    int res = 1;
 for (int i = 0; i < 10000; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<<"a="<<i<<endl;
}
    system("PAUSE");
    return 0; 
}
Так?
2) Вывел номера элементов массива. Необходимо вывести вычисления произведения. Чтоб показать что делает программа и потом сделать так что бы увидеть результат получающийся при развертки цикла:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    const clock_t start = clock();
    int a[100];
    int res = 1;
 for (int i = 0; i < 100; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<<"a="<<i<<endl;
}
    const double time = static_cast<double>(clock() 
    - start) / CLOCKS_PER_SEC;
    std::cout << time << " seconds" << std::endl;
    system("PAUSE");
    return 0; 
}
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
11.06.2013, 14:15     Вывод вычисления произведения #4
Цитата Сообщение от DVGU.MAKC Посмотреть сообщение
Необходимо вывести вычисления произведения.
То есть нужно вывести результат работы цикла, или как? В чем сложность добавить в нужном месте
C++
1
cout << res << endl;
?
DVGU.MAKC
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 35
11.06.2013, 14:19  [ТС]     Вывод вычисления произведения #5
Цитата Сообщение от Мимино Посмотреть сообщение
То есть нужно вывести результат работы цикла, или как? В чем сложность добавить в нужном месте
C++
1
cout << res << endl;
?
Ну я так понял да, что бы понять что он делает, а добавить надо за циклом или в самом цикле?

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<<"a="<<i<<endl;
 cout << res << endl;
}
Если так то выдает,
C
1
2
а=69
 0 - что обозначает нуль тогда
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
11.06.2013, 14:22     Вывод вычисления произведения #6
Цитата Сообщение от DVGU.MAKC Посмотреть сообщение
Ну я так понял да, что бы понять что он делает, а добавить надо за циклом или в самом цикле?
Ну можно так
C++
1
2
3
4
5
6
7
 for (int i = 0; i < 100; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<< "a=" << i << "   res = " << res <<endl;
}
А можно так
C++
1
2
3
4
5
6
7
8
 for (int i = 0; i < 100; i+=3)
{
 res *= a[i];
 res *= a[i+1];
 res *= a[i+2];
 cout<<"a="<<i<<endl;
}
cout << "res = " << res << endl;
Как больше нравится. так и делайте.

Добавлено через 1 минуту
Цитата Сообщение от DVGU.MAKC Посмотреть сообщение
Если так то выдает,
Код C
1
2
3
а=69
0 - что обозначает нуль тогда
А что содержится в Вашем массиве? Это еще хорошо, что 0 выдает.
DVGU.MAKC
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 35
11.06.2013, 14:25  [ТС]     Вывод вычисления произведения #7
сначала выдает такое а=0 res=673039520 потом а=3 res=0, а что нужно сделать чтобы массив что то содержал, то есть что бы программа что то делала и выдавалась время работы программы, а не как у меня получается время вывода значений массива или я не так все понимаю? чтоб короче показать что между выполнением этого for (int i = 0; i < iN; i++){ res *= a[i];} и этого for (int i = 0; i < iN; i+=3){ res *= a[i]; res *= a[i+1]; res *= a[i+2];} есть разница во времени
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
11.06.2013, 14:33     Вывод вычисления произведения #8
Массив можно заполнить рандомными числами. Дл этого
1.
C++
1
2
3
#include <stdlib>
или #include <stdlib.h>
#include <time.h>
2. Перед Вашим циклом расчета.
C++
1
2
3
srand(time(NULL));
for (int i = 0; i < 100; i++)
            a[i] = 1 + rand() % 99;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2013, 14:50     Вывод вычисления произведения
Еще ссылки по теме:

ScalarProduct для вычисления скалярного произведения двух векторов - C++
Написать программу для проверки работы процедуры ScalarProduct для вычисления скалярного произведения двух векторов. Заранее спасибо...

Составьте программу вычисления произведения элементов матрицы B(N,N), кратных 5. - C++
Составьте программу вычисления произведения элементов матрицы B(N,N), кратных 5.

Функция для вычисления следа матрицы и произведения матриц - C++
Дан ряд квадратных матриц A, {A}^{2}, ..., {A}^{N}. Причем N вводим сами. Надо вычислить след(сумма элементов на главной диагонали) каждой...

написать программу вычисления суммы (произведения) конечного ряд C++ - C++
написать программу вычисления суммы (произведения) конечного ряда. При разработке программы предусмотреть пропуск слагаемых (множителей),...


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

Или воспользуйтесь поиском по форуму:
DVGU.MAKC
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 35
11.06.2013, 14:50  [ТС]     Вывод вычисления произведения #9
Это получается:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <time.h>
#include <stdlib>
#include <iostream>
using namespace std;
 
int main()
{
    const clock_t start = clock();
    int a[100];
    int res = 1;
    srand(time(NULL));
    for (int i = 0; i < 100; i++)
            a[i] = 1 + rand() % 99;
 
{
 res *= a[i];
 cout<<"a="<<i <<"  res = " << res <<endl;
}
Так?
Yandex
Объявления
11.06.2013, 14:50     Вывод вычисления произведения
Ответ Создать тему
Опции темы

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