How to improve this algorithm?

7

The purpose of my algorithm is to make the user train division: he will have to hit the integer quotient (ie no decimal places) and the rest of the division 10 times in a row. I made this algorithm especially for my niece, so she passed the check test of a college called Santa Isabel College. If she hits it all, I'll give her 3 reward buns, otherwise she'll try to hit 10 times in a row.

Having said that, would there be any way to hone my algorithm? Thank you in advance.

algoritmo "Divisão Adrya"
// Função : Treinar Adrya para a prova do Colégio Santa Isabel
// Autor : Rodrigo Matos Aguiar
// Data : 21/10/2016
// Seção de Declarações 
var
   NS1, NS2, NL, C, Q, VR, R, Fa: Inteiro // NS1 - Número Sorteado 1, NS2 - Número Sorteado 2, NL - Número Lido, C - Contador, Q - Quociente
   // VR - Valor do Resto, R - Resto, Fa - Falhou
inicio
// Seção de Comandos
Para C de 1 ate 10 faca
   NS1 <- Randi(100)
   NS2 <- Randi(100)
   EscrevaL("Calcule o quociente entre ", NS1, " e ", NS2, " (Maior pelo menor): ")
   Leia(Q)
   EscrevaL("Calcule o resto dessa divisão: ")
   Leia(R)
   Se (NS1 > NS2) entao
      VR <- NS1 % NS2
   senao
        VR <- NS2 % NS1
   FimSe
   Se (NS1 > NS2) entao
      Se (VR = 0) entao
         Se (Q = NS1 / NS2) entao
            Se (R = NS1 % NS2) entao
               EscrevaL("Você acertou tudo Adrya, parabéns!!!")
            senao
                 EscrevaL("Você acertou o quociente, mas errou o resto, foi quase lá!!!")
            FimSe
         senao
           EscrevaL("Você errou Adrya, presta atenção hein...")
           Fa <- Fa + 1
         FimSe
      senao
           Se (Q = (NS1 - VR) / NS2) entao
              Se (R = NS1 % NS2) entao
                 EscrevaL("Você acertou tudo Adrya, parabéns!!!")
              senao
                   EscrevaL("Você acertou o quociente, mas errou o resto, foi quase lá!!!")
              FimSe
           senao
                EscrevaL("Você errou Adrya, presta atenção hein...")
                Fa <- Fa + 1
           FimSe
      FimSe
   senao
        Se (VR = 0) entao
           Se (Q = NS2 / NS1) entao
              Se (R = NS2 % NS1) entao
                 EscrevaL("Você acertou tudo Adrya, parabéns!!!")
              senao
                   EscrevaL("Você acertou o quociente, mas errou o resto, foi quase lá!!!")
              FimSe
           senao
                EscrevaL("Você errou Adrya, presta atenção hein...")
                Fa <- Fa + 1
           FimSe
        senao
             Se (Q = (NS2 - VR) / NS1) entao
                Se (R = NS2 % NS1) entao
                   EscrevaL("Você acertou tudo Adrya, parabéns!!!")
                senao
                     EscrevaL("Você acertou o quociente, mas errou o resto, foi quase lá!!!")
                FimSe
             senao
                  EscrevaL("Você errou Adrya, presta atenção hein...")
                  Fa <- Fa + 1
             FimSe
        FimSe
   FimSe
FimPara
Se (Fa = 0) entao
   EscrevaL("Parabéns Adrya, você é fera em matemática! E ganhará 3 biscoitos!!!!!")
senao
   EscrevaL("Que pena Adrya, sem biscoito pra você. Se quiser ganhar os biscoitos, tente novamente e acerte todas as somas!!!!!")
FimSe
fimalgoritmo
    
asked by anonymous 21.10.2016 / 23:37

1 answer

2

You could change from:

NS1 <- Randi(100)
NS2 <- Randi(100)

To:

NS1 <- Randi(100)
NS2 <- Randi(NS1)

So you would not need to validate if one is larger than the other, rather than making it easier for the user to understand.

    
28.12.2016 / 18:33