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

Задача обедающих философов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача написана для окна, переделать её для формы http://www.cyberforum.ru/cpp-beginners/thread732747.html
//--------------------------------------------------------------------------- #pragma hdrstop #include <conio.h> #include <stdio.h> #include <stdlib.h> //--------------------------------------------------------------------------- #pragma argsused
C++ С++ сложение цифр числа Здание такое : С клавиатуры вводится целое четырехзначное число. Найти сумму всех четных цифр данного числа. Просто сложить составляющие числа у меня получается, а вот сложить только четные числа .. увы .. не могу выделить для сложения четные числа. Вот собственно мой код.. #include "stdafx.h" #include <iostream> #include <locale> #include <math.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread732742.html
Подсчет среднего балла каждой группы C++
Подсчет среднего балла каждой группы и вывода студентов группы, средний балл которой является крупнейшим, в порядке убывания среднего балла каждого студента
C++ Построить каркас графа
Простой граф задан списками смежности. Построить каркас этого графа с использованием поиска вглубь
C++ Построить эйлеров цикл или путь http://www.cyberforum.ru/cpp-beginners/thread732719.html
Задали множество смежности упорядоченных пар вершин, соответствующих дугам ориентированного мультиграфом, и кратность каждой дуги. Определить имеет ли он эйлеров цикл а если нет то эйлеров путь. Построить эйлеров цикл или путь если они существуют.
C++ Организовать очередь, заполнить ее случайными числами Организовать очередь, заполнить ее случайными числами и сделать функции добавления в очередь и нахождения среднего арифметического чисел записанных в очередь и их количества. Величина очереди заранее неизвестна. подробнее

Показать сообщение отдельно
xsxs2
2 / 2 / 0
Регистрация: 06.05.2012
Сообщений: 28
15.12.2012, 19:18     Задача обедающих философов
Здраствуйте.
Нужно написать программу, которая реализует классическую задачу обедающих философов с помощью мониторов. Не могу разобраться как применить монитор:
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
monitor dp
 
{
    enum {thinking, hungry, eating} state [5];
    condition self [5];
 
void pickup (int i) {
    state [i] = hungry;
    test (i);
    if (state[i] != eating) {
    self[i].wait ();
}
}
/* pickup */
void putdown (int i) {
    state [i] = thinking;
    test ((i+4) % 5));
    test ((i-1) % 5));
    /* когда палочка свободна, проверить соседей */
}            /* putdown */
 
void test (int i) {
    if (state((i+4)%5) != eating &&
        state [i] = hungry &&
        state((i+1)%5) != eating)) {
    state[i] = eating;
    self[i].signal;
 
void init () {
for (int i = 0; i < 5; i++) {
state[i] = thinking;
}
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru