Ir ao conteúdo
  • Cadastre-se

VisualG Como fazer um programa que me retorne as maiores notas dos alunos da sala


Posts recomendados

bom noite rapaziada tava fazendo um exercicio de um curso de logica da programaçao, na atividade deixada para fazer ele explicou que queria um programa q retornasse a maior nota da sala, fiz e ficou assim:

Var
   // Seção de Declarações das variáveis
   A, cont : inteiro
   nota, Maiornot: real
   nome, Melhoralu: caractere

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   cont <- 1
   Escreval ("---------------------------------")
   Escreval ("   ESCOLA SANTA PACIENCIA   ")
   Escreval ("---------------------------------")
   Escreva ("Quantos alunos a turma tem? ")
   Leia (A)
   Enquanto (cont <= A) faca
      Escreval ("ALUNO", cont)
      Escreva ("Nome do Aluno: ")
      Leia (nome)
      Escreva ("Nota do aluno ",nome,": " )
      Leia (nota)
      Escreval ("-------------------------")
      Se (Maiornot < nota) então
         Maiornot <- nota
         Melhoralu <- nome
      Fimse
      cont <- cont + 1
   Fimenquanto

   Escreval ("O melhor aproveitamento foi de ", Melhoralu ," com a nota", Maiornot)
Fimalgoritmo

soq ai tava pensando "sera q consigo fazer com as maiores notas de todos os alunos? porque pode ter muitas", dai fiz alguns testes estavam funcionando mas quando tinha mais de uma nota igual tanto grande quanto pequena, n batia, enfim ficou assim ignore as mensagens

Var
   // Seção de Declarações das variáveis
   A, cont, alem : inteiro
   nota, Maiornot, menores: real
   nome, Melhoralu: caractere

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   cont <- 1

   Escreval ("---------------------------------")
   Escreval ("   ESCOLA SANTA PACIENCIA   ")
   Escreval ("---------------------------------")
   Escreva ("Quantos alunos a turma tem? ")
   Leia (A)
   Enquanto (cont <= A) faca
      Escreval ("ALUNO", cont)
      Escreva ("Nome do Aluno: ")
      Leia (nome)
      Escreva ("Nota do aluno ",nome,": " )
      Leia (nota)
      Escreval ("-------------------------")

      Se (Maiornot = nota) então   // aqui e para salvar as notas
         alem <- alem + 1      // iguais e para adicionar mais
         menores <- nota      // uma pessoa com a mesma nota
      Fimse            // o "menores" seria para cair no se
      Se (Maiornot < nota) então
         Maiornot <- nota     // a variavel alem foi feita
         Melhoralu <- nome    // porque ainda não conheço uma
      Fimse           //maneira de salvar dois nomes

      cont <- cont + 1
   Fimenquanto

   Se (menores < Maiornot) então
      Escreval ("O melhor aproveitamento foi de ", Melhoralu ," com a nota", Maiornot)
      // edit acredito que aqui eu poderia clc "Se (alem = 1) então"
   Senao
      Se (alem > 1) então
         Escreval ("O melhor aproveitamento foi de ", alem," com a mesma nota:", Maiornot)
      Fimse
   Fimse

   // A variavel "menornota" foi uma variavel que fiz para que as
   // menores notas
   // repetidas, não seja exibida a variavel "alem" pois o proposito
   // deste programa esta em exibir a maior nota da sala e caso
   // tenho duas pessoas com a maior nota da sala quero q o programa
   // exiba somente elas, e não as menores notas repetidas
   //
   //             !
   // edit realmente a variavel "menores" acaba sendo a primeira
   // condiçao de sequencia de realizaçao da maquina
   // então não pode ser "alem = 1" pois isso faria que com varias
   // notas baixas iguais, faria q a variavel "alem" somasse mais 1
   // o que levaria para a segunda condiçao

   // soq acabei de descobrir que muitas variaveis iguais menores e
   // duas ou mais variaveis maiores acaba caindo na segunda condicao
   // no momento ainda não achei a solução penso em criar uma nova
   // variavel mas acredito q isso deixaria mais confuso uma ideia
   // tive
   // Se (menores = maiornot) então
   //  Escreval ("O melhor aproveitamento foi de", ....., "com a mesma nota:", Maiornot)

 

acabei bagunçando o final, pvr se souberem como fazer expliquem somente com funçoes basicas estou no cmç, foi algo q me deu curiosidade por eu me desafiar a fazer com essas funçoes basicas algo mais complexo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@dilucq, para armazenar várias "maiores notas" e vários "nomes de alunos com a maior nota" você poderia utilizar vetores...

 

Já te adianto que não precisa de um vetor para as maiores notas, afinal sempre será uma nota só (seria  uma redundância desnecessária)... daí, precisaria ir só gerenciando os nomes dos alunos que tem essa maior nota..., ou seja: se a maior nota fora 9, todos os alunos com a nota 9 estariam na lista de nomes.

 

Basicamente seria isso: utilizar um vetor para armazenar os nomes. Daí precisa criar um algoritmo para gerenciar essa "lista de nomes".

 

Adendo: utilizar o conceito de "listas" seria ainda melhor, mas para mexer com listas, precisaria antes dominar mais sobre vetores. Uma lista seria basicamente um vetor, só que contendo uma lógica na embutida e "automatizada". (Como inserir elementos, remover, limpar, controle de quantidade etc. Com vetores puro, precisa tratar tudo isso manualmente... mas não seria nada de outro mundo... seria e testando, entendendo e ajustando ao poucos.)

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

  • Membro VIP

@dilucq, tente transformar o problema maior em um problema menor... Por exemplo: em vez de exibir todos os nomes dos maiores, exiba apenas qual a maior nota e quantas pessoas também tiveram ela. 

 

Ex.:

Quantidade de notas: 10

Notas informadas: 6, 7, 6, 7, 8, 4, 8, 8, 5, 7

Exemplo de resultado: "A maior nota foi 8. Do total de 10 pessoas, 3 tiveram essa nota".

 

Não vai precisar de vetores... só uma lógica para saber contar quantas pessoas empataram.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!