М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kosmoz2005
kosmoz2005
12.11.2022 05:29 •  Информатика

КТО РАЗБИРАЕТСЯ В PYTHON РЕШИТЕ ЭТУ ЗАДАЧУ Бариста

На заводе «Кофейный» открывается новое кафе. Изначально есть некоторое количество кофейных зерен, молока и взбитых сливок.

Надо написать функцию choose_coffee(preference1, preference2,..., preferenceN), которая возвращает напиток, который можно приготовить из имеющихся продуктов (ingredients). На вход функция принимает заранее неизвестное количество предпочтений посетителя. Все напитки перечислены в порядке убывания предпочтений и гарантированно не повторяются. Бариста готовит наиболее предпочитаемый напиток из доступных.

Для Эспрессо требуется: 1 порция кофейных зерен.

Для Капучино требуется: 1 порция кофейных зерен и 3 порции молока.

Для Маккиато требуется: 2 порции кофейных зерен и 1 порция молока.

Для Кофе по-венски требуется: 1 порция кофейных зерен и 2 порции взбитых сливок.

Для Латте Маккиато требуется: 1 порция кофейных зерен, 2 порции молока и 1 порция взбитых сливок.

Для Кон Панна требуется: 1 порция кофейных зерен и 1 порция взбитых сливок.

При приготовлении напитка ингредиенты расходуются.

Если недостаточно ингредиентов, то вернуть сообщение: «К сожалению, не можем предложить Вам напиток».

Примечания
ingredients – список длины три, в котором хранится количество порций кофейных зерен, молока и сливок соответственно.


КТО РАЗБИРАЕТСЯ В PYTHON РЕШИТЕ ЭТУ ЗАДАЧУ Бариста На заводе «Кофейный» открывается новое кафе. Изна
КТО РАЗБИРАЕТСЯ В PYTHON РЕШИТЕ ЭТУ ЗАДАЧУ Бариста На заводе «Кофейный» открывается новое кафе. Изна
КТО РАЗБИРАЕТСЯ В PYTHON РЕШИТЕ ЭТУ ЗАДАЧУ Бариста На заводе «Кофейный» открывается новое кафе. Изна

👇
Ответ:
danchik00148
danchik00148
12.11.2022

В Вашем задание напитки стоят в следующем порядке по предпочтению

'Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо '

однако в приведённом примере [4, 4, 0] 'Капучино' почему то находится предпочтительнее 'Маккиато', что противоречит условию задачи. Ну да ладно.

Сделал на Python с применением рекурсии. Всё считается замечательно. Если будут вопросы - задавайте.

Объяснение:

Espresso=(1,0,0)

Capuchino=(1,3,0)

Maciato=(2,1,0)

Viena=(1,0,2)

LateMak=(1,2,1)

ConPanna=(1,0,1)

mss=(ConPanna, LateMak, Viena, Maciato, Capuchino, Espresso)  

mssName=('Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо ')

coff, milk, sl = map(int, input('Введите количество кофе_молока_сливок: ').split() )

def choose_coffee(ind, var, preference0, preference1, preference2):

 if ((mss[ind][0] <= preference0) and (mss[ind][1]<=preference1) and (mss[ind][2]<=preference2)):

     preference0 = preference0 - mss[ind][0]

     preference1 = preference1 - mss[ind][1]

     preference2 = preference2 - mss[ind][2]

     print(mssName[ind])

     var += 1  

 ind += 1

 if  ind<6:

   choose_coffee(ind, var, preference0 , preference1, preference2)

 if (var==0)and(ind==6):

   print('Вариантов нет')  

   exit

choose_coffee(0, 0, coff, milk, sl)


КТО РАЗБИРАЕТСЯ В PYTHON РЕШИТЕ ЭТУ ЗАДАЧУ Бариста На заводе «Кофейный» открывается новое кафе. Изна
4,6(38 оценок)
Открыть все ответы
Ответ:
СинийГраф
СинийГраф
12.11.2022

Проще всего решать такие задачи, приведя всё к одной системе, проще всего 16ричной(легче переводить), хотя можно и в10ричную, но сложней.

Итак

a = 91h

b = 352(8) = 011 101 010b =  1110 1010b =EAh

ч1 = 1000 1001b = 89h

ч2 = 1000 1100b = 8Ch

ч3 = 1101 0111b = D7h

ч4 = 1111 1000b = F8h

Ну и всё, теперь ясно видно, что заданному условию удовлетворяет только ч3.

Потому, что

если расположить все числа в поряде возрастания, то получим

 

89h   8Ch   91h   D7h   EAh   F8h

 ч1      ч2      а        ч3      b        ч4

 

Вот теперь очевидно.

 

 

4,6(93 оценок)
Ответ:
galkaoks056
galkaoks056
12.11.2022

program raf105;

var  

 white,blue,red,x,y,z: integer;

 w,b,r: boolean;

begin

writeln('Ввод:');

readln(white, blue, red, x, y, z);

repeat

 w:= false;

 b:= false;

 r:= false;

 if white >= x

   then begin

     white-= x;

     blue+= 1;

   end

   else w:= true;

 if blue >= y

   then begin

     blue-= y;

     red+= 1;

   end

   else b:= true;

 if red >= z

   then begin

     red-= z;

     white+= 1;

   end

   else r:= true;

until w and b and r;

writeln('Вывод:');

writeln(white,' ', blue,' ', red);

end.

PascalABC 3.4.2
4,5(19 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ