"99 bottles" em 1500 linguagens de programação diferentes

Publicado a 08/02/2019, 02:05 por Luis Pitta -org-   [ atualizado a 14/02/2019, 09:56 ]

"99 bottles of beer"

Trata-se de uma canção monótona e repetitiva com versos iguais alterando somente o número que começa em 99 e termina em 1.
Como tem esta enorme repetição torna-se fácil de desenhar um programa que escreva a letra da musica. Vamos ver como:

Nas páginas 29 a 34 do Capítulo 1, surge este exemplo da musica "99 bottles of beer" que resolve a repetição 
através de um ciclo while e de um ciclo if else.




Versão 1: A versão original apresentada no livro (ver na pasta DRIVE de apoio):
Esta versão faz o output para a consola (carregue em F12 para visualizar o output)


<!doctype html>
  <html lang="en">
  <head>
    <meta charset="utf-8">
    <title>My First JavaScript</title>
  </head>
<body>
<script>
  var word = "bottles";
  var count = 99;
  while (count > 0) {
     console.log(count + " " + word + " of beer on the wall");
     console.log(count + " " + word + " of beer,");
     console.log("Take one down, pass it around,");
     count = count - 1;
     if (count > 0) {
         console.log(count + " " + word + " of beer on the wall.");
     } else {
         console.log("No more " + word + " of beer on the wall.");
     }

 }
</script>
</body>
</html>


Versão 2: A versão apresentada no livro, mas agora com as variáveis palavra e contador em português + outputs para o ecrã através da instrução document.write:
Ver no Github

<!doctype html>
  <html lang="pt">
  <head>
    <meta charset="utf-8">
    <title>99 bottles of beer com um ciclo while</title>
  </head>
<body>
<script>
  var palavra = "bottles";
  var contador = 99;
  while (contador > 0) {
     document.write(contador + " " + palavra + " of beer on the wall" + "<br>");
     document.write(contador + " " + palavra + " of beer," + "<br>");
     document.write("Take one down, pass it around," + "<br><br>");
     contador = contador - 1;
     if (contador > 0) {
         document.write(contador + " " + palavra + " of beer on the wall.");
     } else {
         document.write("No more " + palavra + " of beer on the wall.");
     }
 }
</script>
</body>
</html>

Versão 3: Igual à versão 2 com uma pequena "melhoria". Descobre qual é?
Ver no Github.

<!doctype html>
<html lang="pt">
<head>
    <meta charset="utf-8">
    <title>99 bottles of beer com um ciclo while</title>
</head>
<body>
    <script>
        var palavra = "bottles";
        var contador = 99;
	while (contador > 0) {
	   if (contador == 1) {
	      palavra = ("garrafas");
           }
           document.write(contador + " " + palavra + " of beer on the wall" + "<br>");
           document.write(contador + " " + palavra + " of beer," + "<br>");
           document.write("Take one down, pass it around." + "<br><br>");
           contador = contador - 1;
	   if (contador > 0) {
    document.write(contador + " " + palavra + " of beer on the wall.");
           } else {
document.write("No more " + palavra + " of beer on the wall.");
           }
        }
    </script>
</body>
</html>


Ver repositório no Githubhttps://github.com/lpitta/99bottles



Sobre a letra da música "99 bottles of beer"

Este site apresenta a referida letra da musica escrita em +1500 linguagens de programação diferentes:

A Wikipedia tem uma pequena entrada sobre esta canção: en.wikipedia.org/wiki/99_Bottles_of_Beer

No Youtube surgem algumas musicas com esta letra: veja esta ou esta.