M
MaxDDT
Здравствуйте уважаемые форумчане!
Нужно распаралелить программу которая меняет местами столбцы 2-х мерного массива. Массив размером 10*10
Количество потоков - 5.
ОС- WindowsXP
IDE - MS Visual Studio 2008 C++
Вот я сделал её, но не приложу ума как распаралелить.
<!--shcode--><pre><code class='c++'>#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP (1251);
int mas[10][10];
int i,j,n=10,stolbec_a,stolbec_b,buf;
cout << "Массив случайных чисел 10*10\n";
cout << endl;
/*-----------------------------Ввод массива------------------------------------*/
for (i=0; i<n; i++) //строки
for (j=0; j<n; j++) //столбцы
{mas[j]=rand()%50;}
/*--------------------------Вывод массива на экран-------------------------------*/
for (i=0; i<n; i++) //строки
{
for (j=0; j<n; j++) //столбцы
{cout << "a[" << i <<j << "]= " << mas[j] << "\t";}
cout << endl;
}
/*------------------------Выбор столбцов для перемещения------------------------*/
cout << "\nВведите номер столбца 'A' который вы хотите поменять местами с столбцом В\n";
cin >> stolbec_a;
cout << "Введите номер столбца 'B' (на место которого вы хотите поставить столбец А)\n";
cin >> stolbec_b;
if (stolbec_a >n && stolbec_b >n)
{
cout << "Вы ввели недопустимые значения \n";
}
cout << "Вы хотите поменять местами столбец номер " << stolbec_a <<" с столбцом номер " << stolbec_b << endl;
/*------------------------Перемещиние столбцов------------------------*/
for (i=0; i<n; i++)
{
buf = mas[stolbec_a];
mas[stolbec_a] = mas[stolbec_b];
mas[stolbec_b] = buf;
}
/*--------------------------Вывод результата на экран-------------------------------*/
for (i=0; i<n; i++) //строки
{
for (j=0; j<n; j++) //столбцы
{cout << "a[" << i <<j << "]= " << mas[j] << "\t";}
cout << endl;
}
cin.get();
cin.get();
}[/CODE]
Пожалуйста, кто разбирается в ПАРАЛЛЕЛЬНОМ программировании, дайте совет, или хотя бы ссылкой пните). Заранее Благодарен!
Нужно распаралелить программу которая меняет местами столбцы 2-х мерного массива. Массив размером 10*10
Количество потоков - 5.
ОС- WindowsXP
IDE - MS Visual Studio 2008 C++
Вот я сделал её, но не приложу ума как распаралелить.
<!--shcode--><pre><code class='c++'>#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleOutputCP (1251);
int mas[10][10];
int i,j,n=10,stolbec_a,stolbec_b,buf;
cout << "Массив случайных чисел 10*10\n";
cout << endl;
/*-----------------------------Ввод массива------------------------------------*/
for (i=0; i<n; i++) //строки
for (j=0; j<n; j++) //столбцы
{mas[j]=rand()%50;}
/*--------------------------Вывод массива на экран-------------------------------*/
for (i=0; i<n; i++) //строки
{
for (j=0; j<n; j++) //столбцы
{cout << "a[" << i <<j << "]= " << mas[j] << "\t";}
cout << endl;
}
/*------------------------Выбор столбцов для перемещения------------------------*/
cout << "\nВведите номер столбца 'A' который вы хотите поменять местами с столбцом В\n";
cin >> stolbec_a;
cout << "Введите номер столбца 'B' (на место которого вы хотите поставить столбец А)\n";
cin >> stolbec_b;
if (stolbec_a >n && stolbec_b >n)
{
cout << "Вы ввели недопустимые значения \n";
}
cout << "Вы хотите поменять местами столбец номер " << stolbec_a <<" с столбцом номер " << stolbec_b << endl;
/*------------------------Перемещиние столбцов------------------------*/
for (i=0; i<n; i++)
{
buf = mas[stolbec_a];
mas[stolbec_a] = mas[stolbec_b];
mas[stolbec_b] = buf;
}
/*--------------------------Вывод результата на экран-------------------------------*/
for (i=0; i<n; i++) //строки
{
for (j=0; j<n; j++) //столбцы
{cout << "a[" << i <<j << "]= " << mas[j] << "\t";}
cout << endl;
}
cin.get();
cin.get();
}[/CODE]
Пожалуйста, кто разбирается в ПАРАЛЛЕЛЬНОМ программировании, дайте совет, или хотя бы ссылкой пните). Заранее Благодарен!