dashanovikova03
25.07.2022 20:12

Язык программирования RUBY Есть код, в котором необходимо добавить функцию, которая будет отвечать за раздевалку, в которую могут заходить b выходить только мужчины в количестве 2 человека, женщин пускать нельзя. require './semaphore_lib' class BathInOutControl def initialize @male = Semaphore.new(1) @female = Semaphore.new(1) @bath = Semaphore.new(1) @bathState = :neutral @people = 0 @maxpeople = 3 end # Функция входа мужчины в ванную комнату def GetInBathroomMale @male.up! @bath.up! if @bathState != :male && @people <= @maxpeople @bathState = :male @people += 1 @male.down! end # Функция выхода мужчины из ванной комнаты def GetOutBathroomMale @male.up! @people -= 1 @bathState = :neutral if @people == 0 @bath.down! if @people == 0 @male.down! end # Функция входа женщины в ванную комнату def GetInBathroomFemale @female.up! @bath.up! if @bathState != :female && @people <= @maxpeople @bathState = :female @people += 1 @female.down! end # Функция выхода женщины из ванной комнаты def GetOutBathroomFemale @female.up! @people -= 1 @bathState = :neutral if @people == 0 @bath.down! if @people == 0 @female.down! end end bathroom = BathInOutControl.new N = 4 N.times do Thread.new do sleep rand * 5 puts Thread.current.to_s + ' мужчина пытается войти в ванную комнату' bathroom.GetInBathroomMale puts Thread.current.to_s + ' мужчина вошёл в ванную комнату' sleep rand puts Thread.current.to_s + ' мужчина вышел из ванной комнаты' bathroom.GetOutBathroomMale end end N.times do Thread.new do sleep rand * 5 puts Thread.current.to_s + ' женщина пытается войти в ванную комнату' bathroom.GetInBathroomFemale puts Thread.current.to_s + ' женщина вошла в ванную комнату' sleep rand puts Thread.current.to_s + ' женщина вышла из ванной комнаты' bathroom.GetOutBathroomFemale end end Thread.list.each { |t| t.join unless t == Thread.main }

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Babocka1415
21.07.2022 12:07

Алгоритм - система последовательных операций.

Конечность алгоритма - означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений; конечность.

Понятность алгоритма - означает, что алгоритм должен содержать только те команды, которые входят в набор команд, который может выполнить конкретный исполнитель.

Точность алгоритма - детерминированность (определенность, точность, однозначность) . Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат.

0,0(0 оценок)
Ответ:
dwinchester15
27.05.2022 00:40
#include <iostream>
using namespace std;

int main()
{
int n, k;
cout << "n = ";
cin >> n;
cout << endl;
int a[n];
for (int i = 0; i < n; i++) {
cout << "a[" << i << "] = ";
cin >> a[i];
cout << endl;
}
cout << "k = ";
cin >> k;
cout << endl;
int c = 0;
for (int i = 0; i < n; i++) {
if (a[i] % 10 == k) c++;
}

int ret[c], pos = 0;
for (int i = 0; i < n; i++) {
if (a[i] % 10 == k) {
ret[pos] = a[i];
pos++;
}
}
cout << "Результат:" << endl;
for (int i = 0; i < c; i++) {
cout << ret[i] << ' ';
}
return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота