Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Види і властивості алгоритмів. Рішення завдання Майхілла (про стрілки)

Реферат Види і властивості алгоритмів. Рішення завдання Майхілла (про стрілки)





lt; 5; i ++)

{[i]=NULL;

}

}

//створення іменованого каналу для спілкування з клієнтом

//--------------------------------------------------------------------------- ConnectShooters (LPVOID lpvParam)

{Number=0; (Number lt; 5)

{fConnected;=CreateNamedPipe (lpszPipename, _ACCESS_DUPLEX, _TYPE_MESSAGE | _READMODE_MESSAGE | _WAIT, _UNLIMITED_INSTANCES ,,,

, NULL);=ConnectNamedPipe (hPipe, NULL); (fConnected)

{[Number]=hPipe;

//створення потоку для роботи з клієнтом

hThread=CreateThread (NULL,

, (LPTHREAD_START_ROUTINE) ShooterThread,

(LPVOID) Number,

, NULL); ++;

} (hPipe);

}

}

//потік для роботи з клієнтом

//---------------------------------------------------------------------------

void ShooterThread (LPVOID lpvParam)

{chBuf [BUFSIZE]; cbRead, cbWritten; fSuccess; n=(int) lpvParam; (1)

{

//зчитування відповідей клієнта з каналу=ReadFile (hProcPipe [n],

chBuf ,,

amp; cbRead,); (fSuccess)

{result=atoi (chBuf); (result)

{

//у разі відповіді клієнта 1 йде прямий рахунок

case (1): ++; - gt; StringGrid1- gt; Cells [0] [Count - 1]=IntToStr (Count) + -й raquo ;;

break;

//у разі відповіді клієнта 2 йде зворотний рахунок

case (2): - gt; StringGrid1- gt; Cells [1] [Count - 1]=IntToStr (Count) + -й команду прийняв raquo ;;

Count -;

//при закінченні зворотного рахунку виробляємо постріл

if (Count == 0) Shoot () ;;: break;

}

} break;

} (hProcPipe [n]); [n]=NULL;

}

//вистрелShoot ()

{(int i=1; i lt;=5; i ++) - gt; StringGrid1- gt; Cells [2] [i - 1]= Постріл raquo ;; - gt; Button1- gt; Enabled=true;

} __ fastcall TForm1 :: Button1Click (TObject * Sender)

{StartupInfo; _INFORMATION ProcessInfo; - gt; Button1- gt; Enabled=false;=CreateThread (NULL,

, (LPTHREAD_START_ROUTINE) ConnectShooters,

(LPVOID) 0,0, NULL); (hThread == NULL) {PrintInfo ( Помилка при створенні потоку ); return; }

//для кожного стрільця створюємо процес

for (int i=0; i lt; 5; i ++)

{( amp; StartupInfo, sizeof (StartupInfo)) ;. cb=sizeof (StartupInfo) ;. dwFlags=STARTF_USESHOWWINDOW ;. wShowWindow=SW_HIDE;

//параметр командного рядка, що визначає черговість рахунки

// стрільців-клієнтів ShooterSleep=(i + 1) * 1000; CommandLine= raquo ;;= Shooter + IntToStr (i) + + IntToStr (ShooterSleep); (! (NULL ,. c_str (),//Покажчик на рядок,

//визначальну командний рядок для виконання,

NULL ,,

, NULL, (). c_str (),//ім'я поточного каталогу

amp; StartupInfo,//інформація передустановки

amp; ProcessInfo))//інформація про процес

{PrintInfo ( Не можу створити процес ); return; }

hProcPipe [i]=ProcessInfo. hProcess;

}

//створюємо семафор Рахунок =CreateSemaphore (NULL,//Адреса структури TSecurityAttributes

SemaphoreMax,//початкове значення лічильника,//максимальне значення

//лічильника

SemaphoreCount );// Ім'я об'єкта

}

//---------------------------------------------------------------------------

Програма-клієнт ( Стрілок )

//---------------------------------------------------------------------------

# include lt; vcl. h gt;

# include lt; iostream. h gt;

# define BUFSIZE 512

# define N 5

# pragma hdrstop

//---------------------------------------------------------------------------

# pra...


Назад | сторінка 4 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Готовність молодого фахівця із соціальної роботи до самостійної роботи з кл ...
  • Реферат на тему: Навички спілкування з клієнтом
  • Реферат на тему: Поняття та сутність Спілкування юриста з Клієнтом
  • Реферат на тему: Взаємодія фахівця соціальної роботи і клієнта