Помощь - Поиск - Пользователи - Календарь
Полная версия: Счётчики
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Катя
Помогите.Возможно ли это реализовать в Паскале?
В общежитие общие ванные комнаты .Если в ванной комнате есть женщина ,то другая женщина может туда зайти ,а мужчина не может, и наоборот.На двери ванной есть индикатор,показывающий, в каком из трёх состояний находится ванная:

А)никого нет;
Б)в ванной женщина;
В)в ванной мужчина;

Напишите следующие процедуры:woman_wants_to_enter, man_wants_to_enter,woman_leaves,man_leaves.Вы можете использовать любые счётчики и синхронизаторы .
GoodWind
каким образом программа сигнализирует мужчине (женщине) можно или нельзя войти ?...
volvo
Катя, good.gif
Хорошее задание ...
Type
TIndicator = (bathEmpty, bathMan, bathWoman);
Var X: TIndicator;

И теперь в нужных тебе процедурах анализируешь значение переменной X, принимаешь решение, и если нужно - X изменяешь...

GoodWind, например, установкой глобального флага Entry в True/False ... Хотя я бы предпочел использовать функции yes2.gif
FreeMan
Ванных комнат много. Нужен массив.

Цитата
каким образом программа сигнализирует мужчине (женщине) можно или нельзя войти ?...

Ты в общаге был? smile.gif
virt
woman_wants_to_enter ::
if cur_in_bath in [woman,none] then can_enter := true else can_enter := false;

man_wants_to_enter аналогично

а вот woman_leaves и man_leaves что дложны делать? может нарисовать должны процесс выхода?
FreeMan
И кол-во студентов(ок) в ванной тоже надо учитывать. Ведь если войдёт две, а выйдет одна, а потом туда поломяться двое, тогда если не учесть кол-ва, ей будет плохо
GoodWind
Цитата
Ты в общаге был? smile.gif

был... но в этой общаге в каждой комнате по ванне.... и комнаты "однополые" blum.gif и не мылся я там в ванных, а интернет давал общаговской лохалке.



Цитата
а вот woman_leaves и man_leaves что дложны делать? может нарисовать должны процесс выхода?

уменьшать счетчики "n мужиков/баб"...
virt
To: GoodWind
ага ,учитывать соотношение мужиков и баб в ванной ,если баб больше то мужиков можно добавить.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.