«99 бутылок пива» (англ. 99 Bottles of Beer) — традиционная песенка в США и Канаде. Песенка часто поётся во время длительных поездок, поскольку у неё повторяющийся и легко запоминающийся мотив, а её пение может занять много времени. Особенно часто песню поют дети во время продолжительных групповых поездок на автобусе, таких как экскурсия школьного класса или выезд на природу бойскаутов. Песенка происходит от традиционной британской песни «Десять зелёных бутылок».
Формат куплета является шаблонным и может быть выражен следующим образом:
Отсчёт ведётся от 99 до 1:
<количество> бутылок пива на стене
<количество> бутылок пива!
Возьми одну, пусти по кругу
<количество минус 1> бутылок пива на стене!
В оригинале:
<number> bottles of beer on the wall
<number> bottles of beer!
Take one down, pass it around
<number - 1> bottles of beer on the wall!
Таким образом, количество бутылок повторяется три раза (кроме числа 99). Предпоследняя строка в каждом куплете иногда изменяется на слова «если одна из бутылок упадёт», кроме того, у заключительного куплета есть множество разновидностей.
Одним из распространённых вариантов заключительного куплета (который может в принципе сделать песню бесконечной, смыкая её конечный куплет с первым), является:
Нет бутылок пива на стене!
Нет бутылок пива!
Пойди в магазин и купи ещё (или Пойди в магазин и стяни ещё),
99 бутылок пива на стене!
Текст песни используется при обучении программистов технике работы с циклами[1][2][3].
В связи со спецификой используемых языков реализация подобной программы перестаёт быть тривиальной: в случае с английским языком — необходимо менять слово bottles в предпоследнем цикле на bottle. На русском языке программист сталкивается с необходимостью учёта склонения существительного: если число находится в диапазоне от 11 до 19, нужно использовать слово "бутылок", иначе если при делении на 10 число равно 1, нужно использовать слово "бутылка", если число при делении на 10 число равно 2, 3 или 4, нужно использовать слово "бутылки", иначе используем слово "бутылок".
1 for i in reversed(range(1,100)):
2 word = ""
3 if (i <= 19) and (i >= 11):
4 word = " бутылок"
5 else:
6 if (i % 10) == 1:
7 word = " бутылка"
8 elif i % 10 in (2, 3, 4):
9 word = " бутылки"
10 else:
11 word = " бутылок"
12 print(str(i)+word+" пива на стене")
13 print(str(i)+word+" пива!")
14 print("Возьми одну, пусти по кругу")
15 if (i-1)==0:
16 print("Нет бутылок пива на стене")
17 else:
18 new_word = ""
19 if ((i-1) <= 19) and ((i-1) >= 11):
20 new_word = " бутылок"
21 else:
22 if ((i-1) % 10) == 1:
23 new_word = " бутылка"
24 elif (i-1) % 10 in (2, 3, 4):
25 new_word = " бутылки"
26 else:
27 new_word = " бутылок"
28 print(str(i-1)+new_word+" пива на стене\n")
99 бутылок молока на борту
99 на борту
берешь одну, пускаешь ко дну
98 осталось на борту
Для улучшения этой статьи желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .