Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Среднее гармоническое 
:(
    Опции темы
Кли
Дата 15.6.2018, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.11.2016

Репутация: нет
Всего: нет



Здравствуйте!!! Помогите пожалуйста с заданием: Дан рандомный массив положительных чисел.Найти среднее гармоническое этих чисел с помощью параллельного программирования(новичок с++)
PM MAIL   Вверх
Romikgy
Дата 15.6.2018, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 1
Всего: 146



.... т.е. просите сделать вместо вас???


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Кли
Дата 3.7.2018, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.11.2016

Репутация: нет
Всего: нет



Я тут написал код, но правильный ли?
Код

/* Найти среднее гармоническое массива */
#include <iostream>
#include <cstdlib>
#include <ctime> 
#include <math.h>
#include <stdio.h>
#include <omp.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    float sum = 0.0; // сумма элементов массива
    const  int n = 10;
    int a[n];
    srand(time(NULL));
#pragma omp parallel for private(i,j) shared(res)\
            reduction(+:sum) 
    for (int i = 0; i < n; i++)
    {
        a[i] = rand()%n ;   
    }
    cout << endl << "Массив: ";
    for (int i = 0; i < n; i++)
    {
        cout << a[i] << "  ";
    }
    for (int j=0; j <= n; j++)
    {
           if (a[j]!=0){
           sum +=(1.0/a[j]);
        }
    }
    
    float res = n/sum;
    cout << endl;
    cout << "res = " << res;
    cout << endl;
    system("pause");
    return 0;
}

PM MAIL   Вверх
xvr
Дата 4.7.2018, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Нет, не правильный.
Прагма стоит не там, лишняя переменная в прагме, ну и банальный выход за пределы массива

Ну и на закуску - делать параллельность на 10 элементах это нонсенс
И к тому же печать массива (которая в принципе не параллелится) убъёт на коню любые попытки что то выиграть от распараллеливания самого среднего

PM MAIL   Вверх
Кли
Дата 4.7.2018, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.11.2016

Репутация: нет
Всего: нет



Цитата(xvr @ 4.7.2018,  11:54)
Нет, не правильный.

А как правильно?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1162 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.