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

Помогите создать программу с событием на с++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По введенному номеру единицы измерения и пути выдать значение в метрах http://www.cyberforum.ru/cpp-beginners/thread404173.html
Оператор выбора Написать программу, которая бы по введенному номеру единицы измерения (1-миллиметр, 2-сантиметр, 3-метр, 4-километр) и пути S выдавала бы соответствующее значения в метрах.
C++ Задача по теории вероятностей Помоги пожалуйста написать программу: Два игрока играют в игру с равной возможностью выигрыша, на следующих условиях, игра продолжается до того момента, когда один из игроков набирает n выигрышей. Перед началом игры они образуют призовую ставку. По независящим от игроков обстоятельствам игра заканчивается с определенным счетом, спрашивается, в каком отношении нужно поделить призовую... http://www.cyberforum.ru/cpp-beginners/thread404170.html
Написать программу, которая: 1)выводит текст на экран дисплея; 2)определяет количество предложений текста и количество слов в каждом предложении; C++
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: 1)выводит текст на экран дисплея; 2)определяет количество предложений текста и количество слов в каждом предложении; 3)по нажатию произвольной клавиши поочередно...
C++ Задача на структуры (С++)
Определите структуру или класс для представления записи информации о сданных студентом экзаменах (фамилия студента, число экзаменов, массив полученных оценок). Определите необходимые функции (или методы класса) для обработки отдельного объекта (например, метод, проверяющий, сданы ли все экзамены на 4 и 5). Используя спроектированный тип, напишите функцию или класс для обработки массива структур....
C++ Стеки, очереди. http://www.cyberforum.ru/cpp-beginners/thread404121.html
Здравствуйте, прошу помочь решить задачи. Просьба с комментариями,т.к. не очень хорошо понимаю. 1.Сформировать файл из символов и за один просмотр файла напечатать элементы файла в следующем порядке: сначала все знаки препинания в исходном порядке, а затем все согласные в обратном порядке. 2.Сформировать файл из натуральных чисел и с помощью очереди за один просмотр файла напечатать...
C++ Как правильно передать в процедуру массив строк char*? Нужно чтобы процедура возвращала измененный массив. Пытаюсь так: Void sss(char**arr) { *arr="i"; } возвращает segmentation fault. подробнее

Показать сообщение отдельно
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
14.12.2011, 19:01     Помогите создать программу с событием на с++
как то делал задачу, в принципе вам подходит.Вот задание
Написать программу, создающую три потока. Каждый поток выполняет какие-то
вычисления. При чём второму потоку на каком-то этапе вычисления необходимы
результаты работы первого потока, а третьему результаты работы второго
потока. Создавать потоки необходимо в таком порядке: третий, второй,
первый
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
#include<windows.h>
#include<iostream>
using namespace std;
void thr1(void *);
void thr2(void *);
HANDLE ev1,ev2;
int main() {
    HANDLE ht[2];
    DWORD dwInit[2];
    int ar[3][4];
    for(int i=0;i<3;i++)
    for(int j=0;j<3;j++) {
        ar[i][j]=1+rand()%50;
    }
    for(int i=0;i<3;i++) {
        for(int j=0;j<3;j++){
        cout.width(4);
        cout<<ar[i][j]<<" ";
        }
        cout<<endl;
    }
    ht[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thr1,(void *)ar,0,&dwInit[0]);
    ht[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)thr2,(void *)ar,0,
    &dwInit[0]);
    ev1=CreateEvent(NULL,FALSE,FALSE,NULL);
    ev2=CreateEvent(NULL,FALSE,FALSE,NULL);
    int sum=0;
    for(int i=0;i<4;i++) {
        if(i==3) {
            WaitForSingleObject(ev2,INFINITE);
            sum+=ar[1][i];
            ar[2][i]=sum;
        }
        sum+=ar[2][i];
    }
    cout<<"after\n\n";
    for(int i=0;i<3;i++) {
        for(int j=0;j<4;j++) {
        cout.width(4);
        cout<<ar[i][j]<<" ";
        }
        cout<<endl;
    }
    CloseHandle(ht[0]);
    CloseHandle(ht[1]);
    CloseHandle(ev1);
    CloseHandle(ev2);
    cin.get();
    return 0;
}
void thr1(void *tptr) {
    int *ptr=(int *)tptr;
    int sum=0;
    for(int i=0;i<4;i++) {
        if(i==3) {
           ptr[0*4+i]=sum;
            break;
        }
        sum+=ptr[0*4+i];
    }
    cout<<endl;
    SetEvent(ev1);
}
void thr2(void *tptr) {
    int *ptr=(int*)tptr;
    int sum=0;
    for(int i=0;i<4;i++) {
        if(i==3) {
        WaitForSingleObject(ev1,INFINITE);
           sum+=ptr[0*4+i];
            ptr[1*4+i]=sum;
            break;
        }
        sum+=ptr[1*4+i];
    }
    SetEvent(ev2);
}
 
Текущее время: 19:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru