Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
help.me
1 / 1 / 0
Регистрация: 20.05.2012
Сообщений: 16
#1

Добавить комментарии - C++

09.06.2012, 17:08. Просмотров 354. Ответов 3
Метки нет (Все метки)

Помогите...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Semaphore.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "Semaphore.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 
/////////////////////////////////////////////////////////////////////////////
// The one and only application object
 
CWinApp theApp;
 
using namespace std;
 
static DWORD WINAPI FirstThread(void *pv);
static DWORD WINAPI SecondThread(void *pv);
 
HANDLE g_hSemaphore;
HANDLE hStdout; 
int Lid=0, g_nIndex=0;
int a[20], IndexResours=0;
LONG MaxCount = 2;
 
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;
    hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        cerr << _T("Fatal Error: MFC initialization failed") << endl;
        nRetCode = 1;
    }
    else
    {
        // TODO: code your application's behavior here.
        DWORD dw;
        LONG g_iCount = 0;
            
        HANDLE hThreads[2];
        g_hSemaphore = ::CreateSemaphore(NULL, g_iCount, MaxCount, NULL);
        hThreads[0] = ::CreateThread(NULL, 0, FirstThread, NULL, 0 , &dw);
        hThreads[1] = ::CreateThread(NULL, 0, SecondThread, NULL, 0 , &dw);
        ::ResumeThread(hThreads[0]);
        ::ResumeThread(hThreads[1]);
        ::WaitForMultipleObjects(2, hThreads, TRUE, INFINITE);
        ::CloseHandle(hThreads[0]);
        ::CloseHandle(hThreads[1]);
        ::CloseHandle(g_hSemaphore);
        switch (Lid)
        {
            case 1 : cout << "\n nepBbIu' noTok *I*uHuLLIupoBaJI nepBbIM!!!\n"; break;
            case 2 : cout << "\n BTopou' noTok *I*uHuLLIupoBaJI nepBbIM!!!\n"; break;
            default : break;
        }
 
    }
    cout << endl << "The END!!!" << endl << "Press Any Key...";
    getch();
    return nRetCode;
}
 
static DWORD WINAPI FirstThread(void *pv)
{
    COORD pos;
    pos.X=3;
    BOOL fDone=FALSE;
    while (!fDone)
    {
        ::WaitForSingleObject(&g_hSemaphore, INFINITE);
        if(g_nIndex>=MaxCount)
            fDone=TRUE;
        else
        {
            g_nIndex++;
            for (int i=0; i<10; i++)
            {
            srand(time(NULL));
            IndexResours++;
            a[IndexResours-1]= rand()%1000;
            pos.Y = i;
            SetConsoleCursorPosition (hStdout ,pos);
            printf("%d", a[IndexResours-1]);
            Sleep(a[IndexResours-1]);   
            }
        }
        ::ReleaseSemaphore(g_hSemaphore,1,0);
    }
    if (!Lid)
        Lid = 1;
    return 0;
}
 
static DWORD WINAPI SecondThread(void *pv)
{
    COORD pos;
    pos.X=25;
    BOOL fDone=FALSE;
    while (!fDone)
    {
        ::WaitForSingleObject(&g_hSemaphore, INFINITE);
        if(g_nIndex>=MaxCount)
            fDone=TRUE;
        else
        {
            g_nIndex++;
            for (int i=0; i<10; i++)
            {
                IndexResours++;
                a[IndexResours-1]= rand()%1000;
                pos.Y = i;
                SetConsoleCursorPosition (hStdout ,pos);
                printf("%d", a[IndexResours-1]);
                Sleep(a[IndexResours-1]);   
            }
        }
        ::ReleaseSemaphore(g_hSemaphore,1,0);
    }
    if (!Lid)
        Lid = 2;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 17:08     Добавить комментарии
Посмотрите здесь:

Комментарии к функциям добавить необходимо - C++
Всем вечер добрый. Подскажите пожалуйста где и что какая функция выполняет. #include&lt;iostream.h&gt; #include&lt;conio.h&gt; class m_string {...

Добавить комментарии к коду (список - стек) - C++
//Список вида &quot;стек&quot; #include &lt;iostream&gt; using namespace std; //объявляем структуру с данными struct monitor ...

Объяснить решение задачи (добавить комментарии в код) - C++
На паре нам дали задание - закомментировать всю свою задачу. Я ученица первого курса, и задачу мне помогли решить здесь. Решение сама я не...

Добавить комментарии по тексту программы и выполнить изменения в коде - C++
#include &lt;iostream&gt; using namespace std; int a=1; char b='f'; int main()

Изъять комментарии и добавить вместо них символ "пробел" - C++
В языке паскаль комментарии записываются в фигурных скобках: begin {начало цикла } i:=i+1;{ увеличиваем i на 1} Написать программу на...

Работа со списком...Не могу добавить функцию добавить элементы в начало списка... - C++
В моей программе есть функция добавить элементы, она добавляет элементы в конец списка, уже очень долго не могу сделать функцию добавить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.06.2012, 20:14     Добавить комментарии #2
давали бы мне лабы с многопоточностью в универе (
rofl113
10 / 10 / 1
Регистрация: 26.02.2012
Сообщений: 36
09.06.2012, 20:17     Добавить комментарии #3
А нам давали.)) О великий getch() - только ты спасаешь старушку conio.h

Кстати вот тебе один коммент .))

C++
1
#include <conio.h> // для getch()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 23:43     Добавить комментарии
Еще ссылки по теме:

Комментарии - C++
Напишите комментарии к программе. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; void main() { char s, tbw, tew,...

Комментарии - C++
Добрый вечер. В интернете нашел код сортировки слиянием.Сам смог разобрать только int main(). Напишите пожалуйста комментарии к int...

Комментарии - C++
Есть такая вот программа: #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; ...

Комментарии - C++
Добрый вечер! Если у кого то есть время и желание помочь, просьба прокоментировать строчки, вот в таком коде : #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.06.2012, 23:43     Добавить комментарии #4
rofl113, там еще есть kbhit ...)
Yandex
Объявления
09.06.2012, 23:43     Добавить комментарии
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru