99 бутылок пива на стене java
Для 3-х бутылок получается следующий текст песенки :
3 bottles of beer on the wall
3 bottles of beer!
Take one down, pass it around
2 bottles of beer on the wall!
2 bottles of beer on the wall
2 bottles of beer!
Take one down, pass it around
1 bottle of beer on the wall!
1 bottle of beer on the wall
1 bottle of beer!
Take one down, pass it around
No bottles of beer on the wall!
3 бутылки пива на стене
3 бутылки пива!
Возьми одну, пусти по кругу
2 бутылки пива на стене
2 бутылки пива на стене
2 бутылки пива!
Возьми одну, пусти по кругу
1 бутылка пива на стене!
1 бутылка пива на стене
1 бутылка пива!
Возьми одну, пусти по кругу
Нет бутылок пива на стене!
Будем работать с Английской версией песни (перевод на русский приведен для удобства восприятия).
На что здесь следует обратить внимание?
В предпоследнем и последнем куплетах необходимо слово bottles (множ. число) менять на bottle (ед. число).
P.S. Если работать с русским вариантом текста песни, то для программиста он сложнее, так как нужно будет учитывать склонение существительного 99, 98. 95 бутылок; 94, 93, 92 бутылки; 91 или 81 бутылка; 11. 14 бутылок.
На следующей иллюстрации будут закончены комментарии к коду программы.
Далее код в текстовом варианте, может быть, кому-нибудь пригодится.
Стоит обратить внимание : на этот раз мы имеем дело с 99-ю бутылками.
Теперь Вам известно, как запрограммировать песню «99 бутылок пива» на Javascript.
Отзывы и комментарии:
Добавил(а): Максим
Дата: 2018-03-18
Самый лучший сайт, видимо без всяких движков типа wordpress
Добавил: Admin
Дата: 2018-06-18
Head First Java (непонятный пример)
В книге указан такой пример
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Задача из Head first java
Если не сложно объясните логику программы! package HeadFirst.Java.lesson120; public class.
Непонятный пример из книги
Не могу никак разобраться в одном маленьком примере из книги, речь идёт про условную операцию.
Ошибка Java Head Space
Доброе время суток. Подскажите пожалуйста, приложение выдает ошибку Java Head Space, в детализации.
Кстати 4 из 99 бутылки в такой реализации выводятся неправильно тоже угадайте какие
не торопитесь заглядывать под спойлер сначала попробуйте решить
Согласен по поводу типа ошибки с exiqa.
Но решение Kivnikcan не работает, а выдаёт белиберду в конце.
Исправил исходную программу простым перемещением условия изменения окончания слова сразу за вычитание бутылки. Всё работает.
В песенке поётся так:
» бутылок пива на стене
бутылок пива!
Возьми одну, пусти по кругу
бутылок пива на стене!»
То есть, в первый раз это строчка должна быть, дальше она будет повторятся из цикла «if (beerNum > 0)», следовательно, нужно, чтобы строчка была лишь 1 раз, для этого есть подсказка(если кто не заметил, строчка имеет отступ).
и после этого, текст песенки будет в норме.
Вот верный вариант, просто нужно было закомментировать 10 строку.
Знаю,что некропост, но вдруг кому поможет
Считаю вариант Gleb1524 самым правильным из всех предложенных, сам сделал немного по другому:
Шел 2020 год, а люди все продолжали решать задачу Сьерра / Бейтс.
Я не хочу продолжать некропост, но у меня новый вопрос.
Сама ошибка, как уже сказали, заключалась в окончании для последней итерации. Когда остается одна бутылка
Тема: Java программирование для нубов
Опции темы
Java программирование для нубов
Спасибо всем людям которые подошли к моей прошлой теме без насмешки, и дали мне подсказки что мне делать.
В итоге я взял пособие по которому сейчас занимаюсь.
В этом пособии дали задание найти ошибку в программе из-за которой она выдаёт ответ не соответствующий ожиданию. Вообщем вот она:
public static void main(String[] args) <
int x = 99;
String word = «бутылок»;
5 бутылок пива на стене
5 бутылок пива на стене
5 бутылок пива
Возьми одну
Пусти по кругу
4 бутылок пива на стене
4 бутылки пива на стене
4 бутылки пива
Возьми одну
Пусти по кругу
3 бутылки пива на стене
3 бутылки пива на стене
3 бутылки пива
Возьми одну
Пусти по кругу
2 бутылки пива на стене
2 бутылки пива на стене
2 бутылки пива
Возьми одну
Пусти по кругу
1 бутылки пива на стене
1 бутылка пива на стене
1 бутылка пива
Возьми одну
Пусти по кругу
Нет бутылка пива на стене
(я не стал писать полный ответ по понятным причинам)
Прикол тут как вы заметили состоит в том что первый принт не реагирует на изменение в ворде. Проблему я конечно через некоторое время решил, но понять почему так происходит не получилось.
Если можете пожалуйста объяснить как так получается.
СОДЕРЖАНИЕ
Текст песни
Текст песни следующий:
Тот же самый стих повторяется каждый раз с на одну бутылку меньше, пока не останется ни одной. Вариации на последний стих, следующий за последней опущенной бутылкой, включают такие строки, как:
Ни бутылок пива на стене, ни бутылок пива.
Мы сняли их и раздали; теперь мы пьяны и потеряли сознание!
Другие альтернативные строки гласят:
Если эта бутылка упадет, какая трата алкоголя!
Ни бутылок пива на стене, ни бутылок пива.
Падать больше не на что, потому что на стене больше нет бутылок с пивом.
Рутина Энди Кауфмана
Скучный и отнимающий много времени характер песни «99 Bottles of Beer» означает, что, вероятно, заключительный куплет сделан лишь в незначительной степени. Американский комик Энди Кауфман использовал этот факт в своей рутине в начале своей карьеры, когда он фактически спел все 100 стихов.
Аттикус
Математически вдохновленные варианты
Дональд Берд собрал десятки вариантов, вдохновленных математическими концепциями и написанных им самим и другими. (Часть его коллекции была опубликована.) Берд утверждает, что коллекция имеет как педагогическую ценность, так и развлекательную ценность. Среди его вариантов:
Ссылки по информатике
Программа написана более чем на 1500 различных языках программирования.
Простой пример с использованием классического синтаксиса BASIC :
Другой пример с использованием C # :
Другой пример с использованием PHP :
Другой пример с использованием Python:
Другой пример с использованием JavaScript :
1.Из-за русского языка необходимо учитывать склонение сущ.:
If число находится в диапазоне to 11 do 19, пишем- «бутылок», else если при делении на 10 = 1, then «бутылка»,
If число при делении на 10 = 2, 3 или 4, «бутылки», else «бутылок».
2.В Java в одном файле может содержаться только один класс, при этом файл должен называться так же, как и класс ( с точностью до регистра букв).
И один и другой языки используют ООП, то есть, если хорошо поняли тему «Классы», то проблем возникнуть не должно. Если первым учили C++, то придется немного перестроиться на Java, потому как все в этом языке построено на классах, что очень удобно, но поначалу слегка непривычно. Синтаксис особо отличаться не будет, запомнить достаточно просто, циклы, переменные создаются аналогично. Не думаю, что возникнут какие-то особые трудности. Если поставите цель, то все получится за достаточно короткий промежуток времени.
Прямые ссылки можно вытащить при помощи такой программы, как:
Еще один способ для вытаскивания ссылок, он действует на основе переданного urla в виде скрипта, многим пользователям это помогло, но для этого способа обязательно нужен URL:
С помощью jmf.jar можно. Вот этот код пробовал сам. У меня работает:
public class NewJFrame extends javax.swing.JFrame implements ActionListener <
/*Переменные для вывода видео на экран пользователя*/
//класс определяющий устройство (веб камеру) в системе
MediaLocator ml = new MediaLocator(«vfw://0»);
//Класс осуществляющий управление выводом видео на экран
private Player player;
public DataSource data = null;
//таймер вывода изображений на экран
Timer timer = new Timer(40, this);
public BufferedImage grabFrameImage() <
FrameGrabbingControl fGrabbingControl = null;
fGrabbingControl = (FrameGrabbingControl) player.getControl(«javax.media.control.FrameGrabbingControl»);
javax.media.Buffer buffer = fGrabbingControl.grabFrame();
image = new BufferToImage((VideoFormat) buffer.getFormat()).createImage(buffer);
return (BufferedImage) image;
/** Creates new form NewJFrame */
> catch (NoDataSourceException ex) <
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
> catch (IOException ex) <
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
> catch (NoPlayerException ex) <
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
private void initComponents() <
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
.addGap(0, 100, Short.MAX_VALUE)
.addGap(0, 100, Short.MAX_VALUE)
public void actionPerformed(java.awt.event.ActionEvent evt) <
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) <
public static void main(String args[]) <
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
// End of variables declaration
public void actionPerformed(ActionEvent e) <
jPanel1.getGraphics().drawImage(this.grabFrameImage(), 0, 0, 100, 75, null);
____________________________________________________________________________ _______
Полное пошаговое описание можно посмотреть здесь.