Adivinhar um número
De GNU Octave
O computador pensa num número entre 1 e 100 e o utilizador tem que descobrir esse número no menor número de tentativas possíveis.
Pensar num número
Obviamente que o computador não pensa, mas pode imitar esse processo gerando um número aleatório.
A função rand gera um número aleatório entre 0 e 1. Exemplo:
octave:15> rand(1) ans = 0.61484
Para conseguirmos gerar um número entre 1 e 100 temos que usar alguma matemática. A expressão será:
numero = 1+round(rand(1)*99)
Ciclo para ver se o número do utilizador é o correto
numero = 1+round(rand(1)*99) do tentativa = input('Papite? '); until (tentativa == numero)
Programa completo
# primeiro vou gerar um número aleatório entre 1 e 100 # o rand(1) dá um número aleatório entre 0 e 1 numero = 1+round(rand(1)*99); do tentativa = input('Papite [1-100]? '); if (tentativa < numero) disp('A sua tentativa está abaixo. Tente um número maior.'); endif if (tentativa > numero) disp('A sua tentativa está acima. Tente um número menor.'); endif until (tentativa == numero) printf('Acertou! Era mesmo o número %d que eu tinha pensado!\n', numero)
Exemplo de execução
>>> adivinhanumero Papite [1-100]? 50 A sua tentativa está abaixo. Tente um número maior. Papite [1-100]? 75 A sua tentativa está acima. Tente um número menor. Papite [1-100]? 62 A sua tentativa está acima. Tente um número menor. Papite [1-100]? 56 A sua tentativa está acima. Tente um número menor. Papite [1-100]? 54 A sua tentativa está acima. Tente um número menor. Papite [1-100]? 52 Acertou! Era mesmo o número 52 que eu tinha pensado! >>>