Diferenças entre edições de "Descobrir o número"
De GNU Octave
(Criou nova página com '=== Versão inicial === <syntaxhighlight> # o aluno pensa num numero e o computador tenta adivinhar inferior = 1 superior = 100 do tentativa = inferior + floor((superi...') |
|||
Linha 2: | Linha 2: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | # o | + | #programa em que o utilizador pensa num numero e o computador descobre |
− | inferior = 1 | + | inferior=1; |
− | superior = 100 | + | superior=100; |
do | do | ||
− | + | numero=inferior+ floor((superior-inferior)/2) | |
− | printf( | + | printf('Aposto no %d, ', numero); |
− | + | resposta=input ('que tal? (b/c/a)', 's') | |
− | + | if (resposta(1)=='a') | |
− | + | superior=numero; | |
− | + | endif | |
− | + | if (resposta(1)=='b') | |
− | + | inferior=numero; | |
− | + | endif | |
− | + | if (resposta(1)=='c') | |
− | until ( | + | endif |
+ | until (resposta =='c') | ||
+ | printf('Acertou! %d era o numero que tinha pensado\n', numero); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Edição atual desde as 10h17min de 10 de dezembro de 2013
Versão inicial
#programa em que o utilizador pensa num numero e o computador descobre inferior=1; superior=100; do numero=inferior+ floor((superior-inferior)/2) printf('Aposto no %d, ', numero); resposta=input ('que tal? (b/c/a)', 's') if (resposta(1)=='a') superior=numero; endif if (resposta(1)=='b') inferior=numero; endif if (resposta(1)=='c') endif until (resposta =='c') printf('Acertou! %d era o numero que tinha pensado\n', numero);
Versão mais robusta
# o aluno pensa num numero e o computador tenta adivinhar inferior = 1 superior = 100 do tentativa = inferior + floor((superior-inferior)/2) printf("Aposto no %d\n", tentativa); feedback = input("Que tal (Baixo/Certo/Alto)?", "s"); letra = lower(feedback(1)) switch letra case "b" inferior = tentativa+1; if (inferior == 100) superior = 101; endif case "a" if tentativa > 1 superior = tentativa-1; else inferior = tentativa superior = tentativa endif case "c" inferior = tentativa superior = tentativa otherwise disp("Nao te entendo") endswitch until (inferior == superior) if (letra != "c") disp("Esqueceu-se do numero?") endif