Descobrir o número

De GNU Octave
Revisão em 10h17min de 10 de dezembro de 2013 por Jgrocha (Discussão | contribs)

(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Ir para: navegação, pesquisa

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