D
dimka2409
Задача:
Отсортировать буквы английского алфавита. Программу разбить на два синхронизированных потока в одном из которых производится ввод букв, а во втором сортировка и вывод на консоль.
Отсортировать буквы английского алфавита. Программу разбить на два синхронизированных потока в одном из которых производится ввод букв, а во втором сортировка и вывод на консоль.
C++:
#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
HANDLE hMutex;
void Thread (void* pParams)
{
char *I;
int n,K,i,L,size,j;
while(true)
{
WaidForSingleObject(hMutex, INFINITITE);
clrscr();
printf("\nVvedite kolichestvo simvolov");
cin>>size;
I=new char[size];
printf("Vvedite elimenty\n");
for(j=0;j<size;j++)
{
cin>>I[j];
if(j<size)
printf("Oshibka vvoda\n");
}
ReleaseMutex(hMutex);
}
}
void Thread1 (void* pParams)
{
char *I;
int n,K,i,L,size,j;
while(true)
{
WaidForSingleObject(hMutex, INFINITITE);
printf("\nSortirovka metodom pryamogo vklucheniya");
printf("\nIshodniy massiv");
for(n=0;n<j;n++)
printf("%2c",I[n]);
printf("\n");
for(i=1;i<j;i++)
{
K=I[i];
L=i;
while(K<I[L-1])
{
I[L]=I[L-1];
L--;
}
I[L]=K;
}
getch();
printf("\n Otsartirovannyi massiv:\n");
for(n=0;n<j;n++)
printf("%2c",I[n]);
printf("\n");
getch();
closegraph();
ReleaseMutex(hMutex);
}
}
void main()
{
hMutex = CreateMutex( NULL, FALSE, NULL );
_beginthread( Thread, 0, NULL );
_beginthread( Thread1, 0, NULL );
return 0;
}