"99 lahví piva" ( anglicky 99 Bottles of Beer ) je tradiční píseň ve Spojených státech a Kanadě . Píseň se často zpívá během dlouhých cest, protože má opakující se a snadno zapamatovatelnou melodii a její zpívání může trvat dlouho. Píseň je zvláště často zpívaná dětmi během dlouhých skupinových jízd autobusem, jako je školní výlet nebo skautský výlet . Píseň pochází z tradiční britské písně „ Ten Green Bottles “.
Formát dvojverší je šablona a může být vyjádřen následovně:
Odpočítávání je od 99 do 1:
<počet> lahví piva na zeď
<počet> lahví piva!
Vezměte si jednu, projděte kolem
<číslo mínus 1> lahví piva na zdi!
V originále:
<počet> lahví piva na zeď
<počet> lahví piva!
Sundej jednu dolů, dej ji kolem
<number - 1> lahví piva na zdi!
Počet lahví se tedy opakuje třikrát (kromě čísla 99). Předposlední řádek v každém verši se někdy mění na „pokud jedna z lahví spadne“ a závěrečný verš má mnoho variací.
Jedna z běžných možností pro závěrečnou sloku (která může v zásadě učinit píseň nekonečnou tím, že její závěrečnou sloku uzavře první slokou) je:
Žádné lahve piva na zdi!
Žádné lahve piva!
Jděte do obchodu a kupte si další (nebo jděte do obchodu a získejte více),
99 lahví piva na zeď!
Text písně slouží k tomu, aby se programátoři naučili pracovat se smyčkami [1] [2] [3] .
Vzhledem ke specifikům používaných jazyků již není implementace takového programu triviální: v případě anglického jazyka je nutné v předposledním cyklu změnit slovo bottle s na bottle . V ruštině se programátor potýká s potřebou vzít v úvahu skloňování podstatného jména: pokud je číslo v rozsahu od 11 do 19, musíte použít slovo „lahve“, jinak pokud zbytek při dělení čísla o 10 je 1, musíte použít slovo "lahev", ale pokud je zbytek při dělení čísla 10 2, 3 nebo 4, musíte použít slovo "lahve", jinak používáme slovo "lahve" .
def count_bottle ( count ): zbytek = počet % 10 pokud zbytek == 1 a nepočítá se == 11 : return f ' { count } bottle' elif zbytek >= 2 a zbytek <= 4 a ne ( počet >= 12 a počet <= 14 ): return f ' { count } bottles' jinak : return f ' { count } bottles' defbase ( ): tisknout ( f ' { count_bottle ( N ) } pivo na zdi' ) tisknout ( f ' { count_bottle ( N ) } pivo!' ) vytisknout ( 'Vezmi si jednu, běhej' ) pokud N == 1 : konečné () jinak : tisknout ( f ' { count_bottle ( N - 1 ) } pivo na zdi! \n ' ) def final (): tisknout ( 'Už žádné lahve od piva na zdi! \n ' ) tisk ( 'Žádné lahve piva na zdi!' ) tisknout ( „Žádné lahve piva!“ ) tisknout ( 'Jděte do obchodu a kupte si více' ) tisk ( '99 lahví piva na zdi!' ) pro N obráceně ( rozsah ( 1 , 100 ) ): základna ()99 lahví mléka na palubě
99 na palubě
vezměte jednu a potopte
98 zbylých na palubě