"99 bottles of beer" ( eng. 99 Bottles of Beer ) on perinteinen laulu Yhdysvalloissa ja Kanadassa . Laulua lauletaan usein pitkillä matkoilla, koska siinä on toistuva ja helposti muistettava sävel ja sen laulaminen voi kestää kauan. Erityisen usein lapset laulavat laulua pitkillä ryhmäbussimatkoilla, kuten koulun luokkaretkellä tai partioretkillä . Kappale tulee perinteisestä brittiläisestä kappaleesta " Ten Green Bottles ".
Parimuoto on malli, ja se voidaan ilmaista seuraavasti:
Lähtölaskenta on 99:stä 1:een:
<numero> pulloa olutta seinällä
<numero> pulloa olutta!
Ota yksi, ohita
<luku miinus 1> olutpulloa seinällä!
Alkuperäisessä:
<numero> pulloa olutta seinällä
<numero> pulloa olutta!
Ota yksi alas, laita se
<numero - 1> olutpullon ympärille seinällä!
Siten pullojen lukumäärä toistetaan kolme kertaa (lukuun ottamatta numeroa 99). Jokaisen säkeen toiseksi viimeinen rivi muutetaan joskus "jos yksi pulloista putoaa", ja viimeisessä säkeessä on monia muunnelmia.
Yksi yleisimmistä vaihtoehdoista viimeiselle säkeelle (joka periaatteessa voi tehdä kappaleesta loputtoman sulkemalla sen viimeisen säkeen ensimmäisellä) on:
Ei olutpulloja seinällä!
Ei olutpulloja!
Mene kauppaan ja osta lisää (tai Mene kauppaan ja hanki lisää),
99 pulloa olutta seinällä!
Kappaleen sanoilla opetetaan ohjelmoijia työskentelemään silmukoiden kanssa [1] [2] [3] .
Käytettyjen kielten erityispiirteistä johtuen tällaisen ohjelman toteuttaminen ei ole enää triviaalia: englannin kielen tapauksessa on tarpeen muuttaa toiseksi viimeisessä syklissä oleva sana pullo sanaksi pullo . Venäjän kielellä ohjelmoijalla on tarve ottaa huomioon substantiivin käänne: jos luku on välillä 11-19, sinun on käytettävä sanaa "pullot", muuten, jos loput jaettaessa numeroa luvulla 10 on 1, sinun on käytettävä sanaa "pullo", mutta jos jäännös, kun luku jaetaan 10:llä, on 2, 3 tai 4, sinun on käytettävä sanaa "pullot", muuten käytämme sanaa "pullot" .
def count_bottle ( count ): loppu = laskenta % 10 jos jäännös == 1 eikä laske == 11 : _ palauttaa f ' { count } pullo' elif jäännös >= 2 ja jäännös <= 4 ja ei ( count >= 12 and count <= 14 ): palauttaa f ' { count } pulloa' muuta : palauttaa f ' { count } pulloa' defbase ( ): print ( f ' { count_bottle ( N ) } olut seinällä' ) print ( f ' { count_bottle ( N ) } olut!' ) tulosta ( 'Ota yksi, juokse ympäri' ) jos N == 1 : lopullinen () muuta : tulosta ( f ' { count_bottle ( N - 1 ) } olutta seinälle! \n ' ) lopullinen ( ): print ( 'Ei enää olutpulloja seinällä! \n ' ) print ( 'Ei olutpulloja seinällä!' ) print ( 'Ei olutpulloja!' ) tulosta ( 'Mene kauppaan ja osta lisää' ) print ( '99 pulloa olutta seinällä!' ) N :lle käänteinen ( alue ( 1 , 100 ) ): pohja ()99 maitopulloa aluksella 99 pulloa
aluksella
ottaa yhden ja upottaa
98 jäljellä