Ir ao conteúdo
  • Cadastre-se

VisualG Exercício Guanabara - Analisador de Valores


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Algoritmo "analisadordevalores"

Var

   Cont, N, TOTNUL, TOTN, TOTDIV, TOTPAR: Inteiro

   TOTMED: Real

    
Inicio

   TOTNUL <- 0
   TOTN <- 0
   TOTDIV <- 0
   TOTPAR <- 0

   Para Cont <- 1 ate 5 faca
      Escreva ("Digite o", Cont, "º valor desejado: ")
      Leia (N)


      TOTN <- TOTN + N


       
      TOTMED <- TOTN/5

      Se (N%5=0) então

         TOTDIV <- TOTDIV + 1



         Se (N=0) então
            TOTNUL <- TOTNUL + 1

            FimSe
            FimSe

            Se (N%2=0) então

               TOTPAR <- TOTPAR + N

            FimSe


   FimPara
   Escreval ("                           ")
   Escreval ("                           ")
   Escreval ("        ANALISADOR DE VALORES         ")
   Escreval ("                           ")
   Escreval (" -------------------------------------") 
   Escreval (" A soma entre os valores é :     ", TOTN)
   Escreval (" -------------------------------------") 
   Escreval (" A média entre os valores é:     ", TOTMED)
   Escreval (" -------------------------------------") 
   Escreval (" Valores divisíveis por cinco:   ", TOTDIV)
   Escreval (" -------------------------------------") 
   EscrevaL (" Valores nulos:                  ", TOTNUL)
   Escreval (" -------------------------------------") 
   EscrevaL (" A soma dos valores pares é:     ", TOTPAR)
   Escreval (" -------------------------------------")
   Escreval ("                                    ")

FimAlgoritmo

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Beatriz Dorin Na sua contagem dos divisíveis por 5 também está entrando os nulos. Sua estrutura no teste do nulo pode ter o bloco SeNão, assim no caso condição verdadeira haverá o incremento de TOTNUL e caso contrário terá os testes das outras condições,

 

Se(N = 0) Então
    TOTNUL <- TOTNUL + 1
SeNão
    Se(N % 2 = 0) Então
        TOTPAR <- TOTPAR + N
    FimSe

    Se(N % 5 = 0) Então
        TOTDIV <- TOTDIV + 1
    FimSe
FimSe

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

Complementado:

 

1# Sobre inicialização das variáveis

Faltou inicializar o TOTMED. Pois pau que dá em Chico dá em Francisco..., ou seja, é necessário manter a coerência no código. Já que iniciou um, teria que inicializar os outros caos semelhantes. Exemplo:

 

TOTMED <- 0.0

 

Obs.: o VisualG já inicializa as variáveis globais automaticamente, ou seja, o desenvolvedor da "IDE" VisualG já programou o "compilador" para fazer isso por nós. As variáveis numéricas já ficam com "0" ao rodar o programa. Experimente criar um variável e depois já exibir o seu valor na tela. Desta forma, não seria necessário reinicializá-las com 0, certo?... Entretanto, como esse comportamento não é comum em outras linguagens de programação*, não vejo problemas em deixar assim. Seria o que chamaríamos de "boa prática".

 

 

 

2# Sobre cálculos de médias

Você está calculando a médias N vezes, mas só precisa calcular uma vez só!!! Não? Logo, o cálculo da média poderia ficar após o fimPara.

 

 

 

3# Sobre os casos

8 horas atrás, Midori disse:

@Beatriz Dorin Na sua contagem dos divisíveis por 5 também está entrando os nulos. Sua estrutura no teste do nulo pode ter o bloco SeNão, assim no caso condição verdadeira haverá o incremento de TOTNUL e caso contrário terá os testes das outras condições,

 

Creio que meio que dependeria do enunciado... Mas de um modo geral, o 0 seria nulo E seria múltiplo de 5 ao mesmo tempo, certo? Logo, o código estaria parcialmente correto... Só faltou considerar que o 0 também é par!

 

Daí, uma alternativa seria adicionar a verificação do zero também dentro do se do par, o que me pareceria deixar código redundante; outra poderia simplesmente deixa 3 se separados.

 

Exemplo:

      se (N = 0) então
         TOTNUL <- TOTNUL + 1
      fimSe
      
      se (N % 5 = 0) então
         TOTDIV <- TOTDIV + 1
      fimSe

      se (N % 2 = 0) então
         TOTPAR <- TOTPAR + N
      fimSe

 

Segue uma demonstração de resultado: (deixei com 3 valores para ficar mais simples)

image.png

 

PS: lembrando que o 0 é par. Daí, 10 + 0 = 10... Mas ele está sendo somando. 😄

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!