Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2013, 20:05   #1
KlIm16
Пользователь
 
Регистрация: 16.02.2013
Сообщений: 37
Вопрос Не могу найти решения???

Сделал половину кода в форме:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include <stdio.h>
#include <conio.h>
#include <windows.h>

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
int a[100];
int k=0;
const n=4; //количество потоков
DWORD WINAPI ThreadFunc(PVOID pvParam)
{
int num,sum = 0,i;
num = 25*(*((int *)pvParam));
for(i=num;i<num+25;i++) sum += a[i]*a[i];
*(int*)pvParam = sum;
DWORD dwResult = sum;
return dwResult;
}
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm2::ПоказатиClick(TObject *Sender)
{
int x[n];
int i,rez = 0;
DWORD dwThreadId[n],dw,dwResult[n];
HANDLE hThread[n];
for (i=0;i<100;i++) a[i] = i;
//создание n дочерних потоков
for (i=0;i<n;i++)
{
x[i] = i;
hThread[i] = CreateThread(NULL,0,ThreadFunc,(PVO ID)&x[i], 0, &dwThreadId[i]);
if(!hThread);
}
// ожидание завершения n потоков
dw = WaitForMultipleObjects(n,hThread,TR UE,INFINITE);
// получение значений, переданных потоком в return
for (i=0;i<n;i++)
{
GetExitCodeThread(hThread[i],&dwResult[i]);
Form2->Memo1->Lines->Add((int)dwResult[i]);
}
for(i=0;i<n;i++) rez+=x[i];

Form2->Edit1->Text=rez;

}
//---------------------------------------------------------------------------
Не могу разобраться как сделать так что-бы число потоков n вводил пользователь, а результат оставался тот же...
KlIm16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Триатлон на паскале..помогите найти аглоритм решения задачи? ЕвгениуS Помощь студентам 4 05.04.2009 12:22
Где найти поиск решения? Красавчег))) Microsoft Office Excel 3 10.05.2008 15:02
Помогите найти решения? Метод потенциалов! Dmitry_Boxing Свободное общение 0 16.02.2008 17:36
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] Zmey_by_Nojabrsk Помощь студентам 3 18.10.2007 22:08