Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Задача о пяти обедающих философах

Автор: Catty 16.05.2006 1:23

В одном пансионе, открытом богатым филантропом, были собраны пять знаменитых философов. Предаваясь размышлениям, они независимо друг от друга заходили обедать в общую столовую. В столовой стоял стол, вокруг которого был поставлены стулья. Каждому философу свой стул. Слева от философа лежало по вилке, а в центре стола стояла большая тарелка спагетти. Спагетти можно было есть только двумя вилками, а потому, сев за стол, философ должен был взять вилку соседа справа (если она, конечно, свободна). Наверняка вы знаете эту задачу (алгоритм Дейкстры). Если есть исходник то киньте пожалуйста (на pascal или на c++).

Автор: Bokul 16.05.2006 1:27

Я не понял: какое задания? blink.gif

Автор: volvo 16.05.2006 1:36

Catty, вот тут глянь:
http://www.lib.csu.ru/dl/text/programm/info/paralell/endrus/004.htm

там есть решение задачи с использованием семафоров...

Автор: Catty 16.05.2006 21:53

Volvo но там ведь только кусок кода! и мне не все понятно как его дальше то дописать я с++ только недавно начала изучать.....и семафоры я не знаю, я читала там , но если можно пожалуйста прокоментировать, пожалуйста я ТАК хочу разобраться!!!! smile.gif

Автор: volvo 17.05.2006 0:01

Catty, понимаешь в чем дело... Задачка-то эта рассчитана на многопоточное исполнение (семафоры, мьютексы, и т.д.)... А у тебя какой компилятор, если не секрет? И под какой ОСью ты это делать будешь?

Можно попробовать реализовать на Дельфи (ну, или каком-то другом 32-битном Паскаль-компиляторе), или на С++ при условии, что это не TC++ 3.0, и запускаться это будет не под чистым ДОС-ом

Автор: Catty 17.05.2006 1:04

ну у меня VC++ 6.0 OS Windows XP....
ой ты меня напугал что еше за мютексы? а по проще там нельзя никак? ничего себе подкинули мне блин задачку....если ты сможешь написать код с коментами буду очень благодарна! а там много кода должно быть ввобще?? unsure.gif

Автор: volvo 17.05.2006 1:10

Тему переношу в "Другие языки"... Пример кода - по ссылке (под POSIX-системы, UNIX-подобные, для Windows будет немного по другому...)

blink.gif
http://www.intuit.ru/department/se/posix2/2/posix2_2.html#example.2.11

Автор: Catty 17.05.2006 2:34

blink.gif cпасибо.... мда в этом коде мне и пол года не хватит что бы разобраться...