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

Семафоры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поделитесь опытом с новичком http://www.cyberforum.ru/cpp-beginners/thread421473.html
Чет запутался с одной задачей, кажется легкая, а чет я не врубаюсь как ее решить)). Помогите, пожалуйста. Вот ссылка: http://********/index.asp?main=task&id_task=441 Вот мои наброски: #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int n={},bi,i;
C++ Мьютексы, семафоры Здравствуйте. Помогите пожалуйста, хочу найти примеры задач с использованием мьютексов, семафоров, потоков. А то надо решить задачу, вроде все делаю по шаблону, а не работает. http://www.cyberforum.ru/cpp-beginners/thread421472.html
Таблица,подсчет суммы ряда Sn и значения F(x) C++
C НОВым ГОДОМ!!!!!! помогите пожалуйста доделать программу.. Х изменяется в диапазоне от a до b с шагом h. Вычисление суммы вести до тех пор, пока очередное слагаемое не станет меньше e, причем это последнее слагаемое тоже учитывать. a = 0 b = 1.1 h = 0.1 e = 10-8 F(x)=\begin{cases} & \text{ \frac{\sqrt{x}}{1-x} } x<0.5 \\ & \text{...
рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей. C++
Задана матрица смежности размерности N*M. С помощью процедуры и матрицы меньшей размерности найти медианы и записать в виде матрицы размерности N*M, где крайние элементы равны 0. входные данные: 6 4 -17 3 -15 6 4 -9 2 14 1 5 -7 8 -7 -13 8 -9 -11 1 2 -3 -1 3 -6 3 выходные данные: 0 0 0 0 0 0
C++ Массивы: ручной ввод http://www.cyberforum.ru/cpp-beginners/thread421449.html
Всех с НОВЫМ ГОДОМ!!!!!!!!!!!!!! но НГ,а мне надо завтра сдавать работу.... очень-очень надо.... Помогите сделать ручной ввод массива!!!!!!1 пожалуйста!!!! #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream> int m; int main(void) {
C++ Ряд Тейлора С++ Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от значения х_нач до х_кон с шагом dx с точностью Экспоненты. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. подробнее

Показать сообщение отдельно
lexatigr
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 76
02.01.2012, 15:33     Семафоры
Помогите решить задачу.
Есть пример, но делаю по аналогии не получается.
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
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <math.h>
 
using namespace std;
 
const char* GetErrorMessage() {
  char *error_message;
  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
                FORMAT_MESSAGE_FROM_SYSTEM |
                FORMAT_MESSAGE_IGNORE_INSERTS,
                NULL, GetLastError(),
                MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                (LPTSTR) &error_message, 0, NULL);
  return error_message;
}
////////
HANDLE Empty, Full, Mutex;
int *A, nA=0, x=0,index=0, result=0;
double p=1;
////////
 
DWORD WINAPI ThreadFunc0(LPVOID) {
   for (int i=0; i<nA; i++) {
            WaitForSingleobject(Empty, INFINITE);
            WaitForSinglebject(Mutex, INFINITE);
            index=i;
            if (i!=0) p=pow(x, index);
            else p=1;
            ReleaseSemaphore(Mutex, 1, 0);
            ReleaseSemaphore(Full, 1, 0);
        }
   return 0;
  }
 
 
 
DWORD WINAPI ThreadFunc1(LPVOID ) {
   While (index<nA-1) {
        WaitForSingleObject(Full, INFINITE);
        WaitForSingleObject(Mutex, INFINITE);
 
result+=(int)p*A[index];
 
        ReleaseSemaphore(Mutex, 1, 0);
        ReleaseSemaphore(Empty, 1, 0);
   }
    return 0;
}
 
 int main(int argc, char* argv[]) {
    Empty = CreateSemaphore(0, 1, 1, 0);
    if (Empty == NULL) { cerr << GetErrorMessage(); return 1; };
 
    Full = CreateSemaphore(0, 0, 1, 0);
    if (Full == NULL) { cerr << GetErrorMessage(); return 1; };
 
    Mutex = CreateSemaphore(0, 1, 1, 0);
    if (Mutex == NULL) { cerr << GetErrorMessage(); return 1; };
 
 
  DWORD ThreadId[2];
  HANDLE Thread[2];
 
    srand(time(0));
    cout<<"Vvedite kol-vo coefficientov mnogochlena: " ; cin>>nA;
    cout<<"Mnogochlen: ";
    A=new int[nA];
    for (int i=0; i<nA; ++i) {
        A[i]=rand()%100;
    }
    for (int i=0; i<nA; ++i) {
        cout<<A[i]<<" * x^"<<i; if (i==nA-1) cout<<" = 0"; else cout<<" + ";
    }
    cout<<endl<<"Vvedite X: "; cin>>x;
    cout<<"Result: ";
    for (int i=0; i<nA; ++i) {
        cout<<A[i]<<" * "<<x<<"^"<<i; if (i!=nA-1) cout<<" + ";
    }
    cout<<" = ";
    Thread[0]=CreateThread(0, 0, ThreadFunc0, 0, 0, &ThreadId[0]);
    if (Thread[0] == NULL) { cerr << GetErrorMessage(); return 1; };
 
    Thread[1]=CreateThread(0, 0, ThreadFunc1, 0, 0, &ThreadId[1]);
    if (Thread[1] == NULL) { cerr << GetErrorMessage(); return 1; };
 
    WaitForMultipleObjects(2, Thread, 1, INFINITE);
    CloseHandle(Thread[0]); CloseHandle(Thread[1]);
    CloseHandle(Empty); CloseHandle(Full); CloseHandle(Mutex);
    cout<<(int)result<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
http://www.cyberforum.ru/attachment....6&d=1325501859- Пример
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru