Diferenças entre edições de "Descobrir o número"

De GNU Octave
Ir para: navegação, pesquisa
(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 aluno pensa num numero e o computador tenta adivinhar
+
#programa em que o utilizador pensa num numero e o computador descobre
inferior = 1
+
inferior=1;
superior = 100
+
superior=100;
 
do
 
do
   tentativa = inferior + floor((superior-inferior)/2)
+
   numero=inferior+ floor((superior-inferior)/2)
   printf("Aposto no %d\n", tentativa);
+
   printf('Aposto no %d, ', numero);
   feedback = input("Que tal (Baixo/Certo/Alto)?", "s");
+
   resposta=input ('que tal? (b/c/a)', 's')
   letra = lower(feedback(1));
+
   if (resposta(1)=='a')
   switch letra
+
    superior=numero;
    case "b"
+
   endif
      inferior = tentativa+1;
+
  if (resposta(1)=='b')
    case "a"
+
    inferior=numero;
        superior = tentativa-1;
+
  endif
   endswitch
+
  if (resposta(1)=='c')
until (letra == "c")
+
   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