* "99 bottles" em 1500 variações de linguagens de programação diferentes
"99 bottles of beer"
Vale a pena visitar este site apresenta a referida letra da musica escrita em +1500 variações de linguagens de programação diferentes:
Se o site estiver em baixo podemos consultar uma imagem do site no Wayback Machine em web.archive.org/web/20200601220637/http://www.99-bottles-of-beer.net/
Trata-se de uma canção repetitiva com versos iguais alterando somente o número que começa em 99 e vai decrescendo até 1.
Como tem esta repetição torna-se fácil de desenhar um programa que escreva a letra de toda a musica. Vamos ver como.
Abre o livro de apoio Javascript Programming (editora Head First). Nas páginas 29 a 34 do Capítulo 1, surge este exemplo da referida 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 pasta DRIVE de apoio):
(Estes links são reservados aos utilizadores do domínio)
Abre o ficheiro de texto, copia para o editor (Notepad++ por exemplo),executa e verifica o output na consola (carrega em F12 para visualizar a consola)
Aceder ao livro completo na seguinte pasta DRIVE (PDF)
A versão original faz o output para a consola:
<!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 mesma versão apresentada no livro, mas agora com as variáveis palavra e contador em português e outputs para o ecrã através da instrução document.write.
Ver código fonte no Github em https://lpitta.github.io/99bottles/v2.html
<!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: Identica à versão 2 mas com uma pequena "melhoria". Descobre qual é?
Ver código fonte no Github em https://lpitta.github.io/99bottles/v3.html
<!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>
Repositório Gitbub
Ver repositório completo no Github em https://github.com/lpitta/99bottles
Mais curiosidades sobre a letra da música "99 bottles of beer"
A Wikipedia tem uma pequena entrada sobre esta canção em en.wikipedia.org/wiki/99_Bottles_of_Beer
No Youtube surgem alguns vídeos com esta musica:
99 Bottles of Beer (Full Version with all 99 Beers) (18:55):
The ultimate BEER SONG (99 bottles - Zane Williams) (4:05):
E agora em vez de beer trocamos por milk!