How to improve this algorithm?

Asked

Viewed 182 times

7

The goal of my algorithm is to make the user train division: he will have to hit 10 times in a row the quotient whole (that is, without decimal places) and the rest of the division. I made this algorithm especially for my niece, for her to pass the high school selection test called Santa Isabel College. In case she hits it all, I give her three bounty cookies, in case she doesn’t, she’ll try until she hits it 10 times in a row.

That said, is there any way to improve my algorithm? Thanks 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
  • 2

    Cookies! I liked the gamification of the teaching, if it works, your niece will be a happy girl who learned to share!

1 answer

2

Could change from:

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

To:

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

Thus it would not need to validate if one is larger than the other besides facilitating the understanding for the user.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.