Ir ao conteúdo

VisualG Estruturas condicionais: Como funciona a atribuição de variáveis?


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Postado

Fiz um código pra pratica e a ideia era o algoritmo analisar cada aluno e dizer qual a maior nota, mas eu não entendi direito o porque de uma variável (nome) e atribuir outra variável (melhorAluno) faz com que ela mostre o aluno que tirou a maior nota, queria saber o porque disso, parece que e diferente queria uma breve explicação

algoritmo "semnome"
var
   cont,a:inteiro
   nota,maiorNota:real
   nome,melhorAluno:caractere
inicio
   escreva("Quantos alunos tem na sala? ")
   leia(a)
   cont <- 1
   enquanto (cont <= a) faca
      escreval("ALUNO",cont)
      escreval("Nome do aluno: ")
      leia(nome)
      escreval("Nota do ",nome,": ")
      leia(nota)
      se(nota > maiorNota)então
         maiorNota <- nota
         melhorAluno <- nome
      fimse
      cont <- cont + 1
   fimenquanto
   escreva("O melhor paroveitamento foi de ",melhorAluno," com a nota ",maiorNota)
fimalgoritmo

 

  • Curtir 1
  • Membro VIP
  • Solução
Postado
8 horas atrás, Caiomqc disse:
   escreva("Quantos alunos tem na sala? ")
   leia(a)

 

Reforçando: já comece a procurar dar nomenclaturas mais semânticas. Isso ajuda até evitar se cansar. Acredite!. Tipo: "para que serve a mesmo?" ou "qual a variável que está armazenando a quantidade de alunos?".

 

Que tal: qtdAlunos

 

Veja como as expressões ficam mais autoexplicativas:

enquanto (cont <= qtdAlunos) faca

 

Nem precisa do restante do código para inferir para que serve...

 

 

 

 

8 horas atrás, Caiomqc disse:

Fiz um código pra praticar

8 horas atrás, Caiomqc disse:

eu não entendi direito o porque de uma variável (nome) e atribuir outra variável (melhorAluno) faz com que ela mostre o aluno que tirou a maior nota, queria saber o porque disso, parece que e diferente queria uma breve explicação

 

Você fez um algoritmo e não entendeu o que fez ou está analisando código de outra fonte?

 

Mas vamos lá:

8 horas atrás, Caiomqc disse:
      se(nota > maiorNota)então
         maiorNota <- nota
         melhorAluno <- nome
      fimse

 

A possível lógica aplicada seria que, a cada nova nota lida, verifica se essa nota é maior que a maior nota, ou seja, se for, essa nota atual seria a nova nota maior... Certo? Daí, quando essa condição for verdadeira, utiliza de uma variável auxiliar para copiar a tal nota e, como eventualmente quer o nome de quem tem a maior nota, também copia o nome... já que no contexto do algoritmo, estão relacionados.

 

Por exemplo, se quiser apenas o nome do aluno com a melhor nota, sem precisar da informação do valor da nota dele, utilizaria apenas a variável melhorAluno... Por aí vai. A solução sempre vai depende da necessidade.

 

 

O programa deve mostrar a nota e o nome do melhor aluno pois ao terminar de ler as notas (após o laço de repetição), vai está mostrando esses dados que foram obtidos.

 

Dica: vá pressionando F8 e acompanhando linha a linha. Veja no canto deito os valores da variáveis a vá entendendo o fluxo natural dos programas. O VisualG vai lendo da esquerda para direita, de cima para baixo (mas vai mostrando uma linha completa por vez). Quando chega num se, e a condição é verdadeira, o código "entra no se", caso contrário, o código pula... por isso que também o se é chamado de "desvio condicional", pois faz o código sair do tal fluxo natural. O laço de repetição é semelhante... só que a condição faz repetir ou não o código. Vá testando que vai assimilando... 

  • Curtir 1

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...