Все статьи / 99 бутылок


99 bottles

«99 bottles» — песенка, в следующий куплет строится на основе предыдущего, как показано ниже:

99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.

...

3 bottles of beer on the wall, 3 bottles of beer.
Take one down and pass it around, 2 bottles of beer on the wall.

2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.

1 bottle of beer on the wall, 1 bottle of beer.
Take one down and pass it around, no more bottles of beer on the wall.

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.

В русскоязычной версии песни построение куплетов выглядит следующим образом:

<количество> бутылок пива на стене
<количество> бутылок пива!
Возьми одну, пусти по кругу
<количество минус 1> бутылок пива на стене!

...

Нет бутылок пива на стене!
Нет бутылок пива!
Пойди в магазин и купи ещё,
99 бутылок пива на стене!

Упражнения

Вы можете выбрать один из вариантов ниже

  • (Easy) Напишите на языке C++ программу, печатающую текст песни на английском языке. Используйте циклы и ветвления вместо того, чтобы закладывать в программу полный текст песни. После завершения распечатки текста программа должна спрашивать, сколько ещё бутылок удалось получить пользователю:
How many bottles you taken in store?
<пользователь вводит число>

Должны обрабатываться ситуации, когда пользователь ввёл отрицательное число, не число, или ввод закончился (в консоли введён символ конца файла, т.е. Ctrl+Z на Windows или Ctrl+D на Unix). В любой подобной ситуации программа тихо завершает работу.

  • (Medium) Напишите на языке C++ программу, печатающую текст песни на русском языке. Используйте циклы и ветвления вместо того, чтобы закладывать в программу полный текст песни. После завершения распечатки текста программа должна спрашивать, сколько ещё бутылок удалось получить пользователю:
Сколько бутылок удалось получить?
<пользователь вводит число>

Должны обрабатываться ситуации, когда пользователь ввёл отрицательное число, не число, или ввод закончился (в консоли введён символ конца файла, т.е. Ctrl+Z на Windows или Ctrl+D на Unix). В любой подобной ситуации программа тихо завершает работу.

Полезные ссылки