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

Айболит 2.0

25.01.2021, 15:43. Показов 8783. Ответов 3
Метки нет (Все метки)

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
Ваша карта не найдена

Примечания
Клиенты подходят к свободному окошку с минимальным номером.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2021, 15:43
Ответы с готовыми решениями:

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

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

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

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

3
13 / 12 / 1
Регистрация: 16.11.2019
Сообщений: 33
03.02.2022, 09:11 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
24
25
26
27
def hello(name):
    global query
    if not all(query):
        query[query.index(None)] = name
        print(f"Здравствуйте, {name}! Подойдите к окошку номер {query.index(name) + 1}")
    else:
        print(f"Простите, {name}. Все окна заняты")
        
    
def search_card(name):
    global query, base
    if name in query:
        if name in base:
            print(f"Ваша карта с номером {base.index(name) + 1} найдена")
        else:
            print("Ваша карта не найдена")
    else:
        print(f"Простите, {name}, дождитесь своей очереди")
        
        
def good_bye(name):
    global query
    if name in query:
        print(f"До свидания, не болейте, {name}")
        query[query.index(name)] = None
    else:
        print(f"Простите, {name}, дождитесь своей очереди")
1
10 / 10 / 0
Регистрация: 05.04.2023
Сообщений: 47
14.02.2024, 23:17 3
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
def hello(name):
    global query
    if None not in query:
        print('Простите,', name + '.', 'Все окна заняты')
    else:
        for i in range(len(query)):
            if query[i] is None:
                query[i] = name
                print('Здравствуйте,', name + '!', 'Подойдите к окошку номер', query.index(name) + 1)
                break
 
 
def search_card(name):
    global base, query
    if name not in query:
        print('Простите,', name + ',', 'дождитесь своей очереди')
    else:
        if name in base:
            for j in range(len(base)):
                if base[j] == name:
                    print('Ваша карта с номером', j + 1, 'найдена')
        else:
            print('Ваша карта не найдена')
 
 
def good_bye(name):
    global query
    if None not in query and name not in query:
        print('Простите,', name + ',', 'дождитесь своей очереди')
    else:
        print('До свидания, не болейте,', name)
        query[query.index(name)] = None
0
0 / 0 / 0
Регистрация: 07.05.2024
Сообщений: 1
07.05.2024, 15:37 4
c = 1
lst = []


def hello(name):
global query
global c
global lst
if c < (len(query) + 1):
print(f'Здравствуйте, {name}! Подойдите к окошку номер {c}')
c += 1
lst.append(name)
else:
print(f'Простите, {name}. Все окна заняты')


def search_card(name):
global lst
global base
if name in lst:
cc = 1
if name in base:
for i in base:
if i != name:
cc += 1
else:
break
print(f'Ваша карта с номером {cc} найдена')
else:
print('Ваша карта не найдена')
else:
print(f'Простите, {name}, дождитесь своей очереди')


def good_bye(name):
global lst
global c
if name in lst:
print(f'До свидания, не болейте, {name}')
lst.remove(name)
c -= 1
else:
print(f'Простите, {name}, дождитесь своей очереди')
0
07.05.2024, 15:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2024, 15:37
Помогаю со студенческими работами здесь

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

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

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


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

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

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