22 / 22 / 0
Регистрация: 11.11.2019
Сообщений: 108
1

Айболит - 2

22.01.2020, 22:39. Показов 16676. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Модифицируйте функцию hello(name), которая принимает на вход имя пациента. Теперь она должна проверять наличие свободных окон и если такое есть писать сообщение "Здравствуйте, <имя>! Подойдите к окошку номер <номер окна>" и занять окно данным пациентом. Если свободных окон нет, то должно выводиться сообщение "Простите, <name>. Все окна заняты"
Модифицируйте функцию search_card(name), которая принимает на вход имя пациента. Теперь она перед поиском карты должна проверять обслуживается ли данный пациент в настоящий момент. Если нет, то выводить сообщение "Простите, <имя>, дождитесь своей очереди", иначе проводить поиск карты и выводить те же сообщения, что и в предыдущей версии программы.
Напишите функцию good_bye(name), которая тоже принимает на вход имя пациента, и, если он обслуживается в настоящее время, выводит - "До свидания, не болейте, <имя>", и освобождает окошко, в котором обслуживался данный пациент. Иначе выводит сообщение "Простите, <имя>, дождитесь своей очереди".

Список имён пациентов, пронумерованный с 1, находится в списке base, который является глобальным. Номер пациента соответствует номеру карты. Список окон (нумерация также с единицы) находится в глобальном списке query, где значение элемента None говорит о том, что окошко с соответствующим индексом свободно и готово обслуживать следующего клиента.

Пример
Ввод
base = ["Иван", "Юлия Иванкова"]
query = [None, None, None]

hello("Иван")
search_card("Иван")
hello("Юлия Иванова")
search_card("Юлия Иванова")

Вывод
Здравствуйте, Иван! Подойдите к окошку номер 1
Ваша карта с номером 1 найдена
Здравствуйте, Юлия Иванова! Подойдите к окошку номер 2
Извините, Ваша карта не найдена

Примечания
Клиенты подходят к свободному окошку с минимальным номером.


У меня есть код, помогите, пожалуйста, доработать немного
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
names = []
 
 
def hello(name):
    names.append(name)
    number_in_queue = str((int(names.index(name))) + 1)
    query.append(number_in_queue)
    print(f"Здравствуйте, {name}! Подойдите к окошку номер " + number_in_queue)
 
 
def search_card(name):
    if name in base:
        number_of_card = str((int(base.index(name))) + 1)
        print('Ваша карта с номером ' + number_of_card + ' найдена')
    else:
        print('Ваша карта не найдена')
 
 
def good_bye(name):
    if name in names:
        print(f"До свидания, не болейте, {name}")
    else:
        print(f"Простите, {name}, дождитесь своей очереди")
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2020, 22:39
Ответы с готовыми решениями:

Айболит 2.0
Модифицируйте функцию hello(name), которая принимает на вход имя пациента. Теперь она должна...

Айболит
Напишите функцию hello(name), которая принимает на вход имя пациента, приветствует его и сообщает,...

Айболит
На прием к доктору Айболиту как всегда большая очередь. Так как желающих очень много, то было...

Айболит 2.0
Предыдущее решение по автоматизации клиники Айболита не принесло свои плоды. Многие посетители...

5
SkyJump
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,070
Записей в блоге: 4
23.01.2020, 09:10 2
Лучший ответ Сообщение было отмечено CoMeLLa как решение

Решение

А что не так? Код хороший.

Добавлено через 11 секунд
Но можно попроще.

Добавлено через 9 минут
Python
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
names = []
 
 
def hello(name):
    if None in query:
        names.append(name)
        number_in_queue = names.index(name)
        query[number_in_queue] = name
        print(f"Здравствуйте, {name}! Подойдите к окошку номер",number_in_queue+1)
        search_card(name)
    else:
        print(f"Простите, {name}, все окна заняты.")
 
def search_card(name):
    if name in base:
        number_of_card = str((int(base.index(name))) + 1)
        print('Ваша карта с номером ' + number_of_card + ' найдена')
    else:
        print('Ваша карта не найдена')
 
 
def good_bye(name):
    if name in names:
        print(f"До свидания, не болейте, {name}")
    else:
        print(f"Простите, {name}, дождитесь своей очереди")
 
base = ["Иван", "Юлия Иванова","Петя Журиков","Князь Мамай"]
query = [None, None, None]
 
for name in base:
    hello(name)
1
64 / 61 / 3
Регистрация: 02.11.2019
Сообщений: 227
29.01.2020, 18:40 3
Не работает!!!
0
SkyJump
132 / 118 / 29
Регистрация: 09.07.2019
Сообщений: 1,070
Записей в блоге: 4
30.01.2020, 15:53 4
geargoose, работает!!!
0
36 / 34 / 2
Регистрация: 24.03.2020
Сообщений: 39
24.03.2020, 18:44 5
Ожидаемый результат
Здравствуйте, Иван! Подойдите к окошку номер 1
Ваша карта с номером 1 найдена
Здравствуйте, Юлия Иванова! Подойдите к окошку номер 2
Ваша карта не найдена

Вывод
Здравствуйте, Иван! Подойдите к окошку номер 1
Ваша карта с номером 1 найдена
Ваша карта с номером 1 найдена
Здравствуйте, Юлия Иванова! Подойдите к окошку номер 2
Ваша карта не найдена
Ваша карта не найдена
0
5 / 5 / 1
Регистрация: 06.12.2020
Сообщений: 18
12.04.2021, 11:16 6
Python
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
names = []
 
 
def hello(name):
    if None in query:
        names.append(name)
        number_in_queue = names.index(name)
        query[number_in_queue] = name
        print(f"Здравствуйте, {name}! Подойдите к окошку номер", number_in_queue + 1)
    else:
        print(f"Простите, {name}, все окна заняты.")
 
 
def search_card(name):
    if name in base:
        print(f'Ваша карта с номером {base.index(name) + 1} найдена')
        return None
    print('Ваша карта не найдена')
 
 
def good_bye(name):
    if name in names:
        print(f"До свидания, не болейте, {name}")
    else:
        print(f"Простите, {name}, дождитесь своей очереди")
 
 
base = ["Иван", "Юлия Иванкова"]
query = [None, None, None]
0
12.04.2021, 11:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2021, 11:16
Помогаю со студенческими работами здесь

Доктор Айболит решил собрать робота, который поможет ему делать стандартные назначения
задали такую задачу Доктор Айболит решил собрать робота, который поможет ему делать стандартные...

Айболит
На прием к доктору Айболиту как всегда большая очередь. Так как желающих очень много, то было...

Айболит
Напишите функцию hello(name), которая принимает на вход имя пациента, приветствует его и сообщает,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru