Ir ao conteúdo
  • Cadastre-se

VisualG programa que receba o nome e duas notas de seis alunos e mostre o relatório


Posts recomendados

1) Faça um programa que receba o nome e duas notas de seis alunos e mostre o relatório a seguir. Relatório de notas:

- Média da classe

- Percentual de alunos reprovados

- Percentual de alunos aprovados (para aprovação média acima de 7,0)

 

 

Comecei fazendo ela, mas não sei como calcular esse percentual e se necessita utilizar vetores, ou se está certo da forma que comecei fazendo.

Pseudocódigo abaixo que comecei fazendo :

 

 

nome:caractere
nota1,nota2,nota3,nota4,nota5,nota6,nota7,nota8,nota9,nota10,nota11,nota12:real
media:real

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota1)
escreval (" Informe a 2° nota")
leia(nota2)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota3)
escreval (" Informe a 2° nota")
leia(nota4)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota5)
escreval (" Informe a 2° nota")
leia(nota6)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota7)
escreval (" Informe a 2° nota")
leia(nota8)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota9)
escreval (" Informe a 2° nota")
leia(nota10)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota11)
escreval (" Informe a 2° nota")
leia(nota12)
media <- nota1+nota2+nota3+nota4+nota5+nota6+nota7+nota8+nota9+nota10+nota11+nota12/12
escreval (" A média da classe é :" , media)
se (nota1+nota2/2 > 7) então
escreval (" 1% aprovado")
Fimalgoritmo

 

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

O percentual de aprovados é o número de aprovados dividido pelo número total (6) vezes 100. O número de reprovados é 100 menos o resultado da conta anterior ou, equivalentemente, o número de reprovados dividido pelo total vezes 100. Imagino que você ainda não teve funções recursivas e loops, certo? Se não, é por aí mesmo. Só as penúltimas 3 linhas não fazem sentido por não terem a ver com o que foi solicitado no problema.

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

@Eli Almeidaa Não precisa de vetores, mas se já viu loop/laço alguma vez poderia aplicar no seu código para ficar mais simples. Aí serão 6 ciclos onde terá que: 1) Calcular a média de cada aluno e incrementar uma variável para aprovados (ou reprovados) que deverá ser usada no fim para o percentual; 2) Acumular o total das notas para calcular a média da classe no fim.

 

2 horas atrás, Eli Almeidaa disse:
media <- nota1+nota2+nota3+nota4+nota5+nota6+nota7+nota8+nota9+nota10+nota11+nota12/12

No cálculo da média faltou colocar os parênteses para somar as notas antes. Lembre-se da ordem das operações matemáticas.

 

2 horas atrás, Eli Almeidaa disse:
se (nota1+nota2/2 > 7) então

Assim só está tentando pegar a média de um aluno. Esse teste deve ser feito para cada aluno. E aí também faltou parênteses como comentei acima.

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

@Eli Almeidaa Com laço só precisa de duas variáveis para as notas, p.ex,

 

Se((Nota1 + Nota2)/2 > 7) então
    Aprov <- Aprov + 1
FimSe

 

Esse teste é só para incrementar a variável dos aprovados que será usada para mostrar o percentual.

 

E para calcular a média acumule o total das notas no laço,

Total <- Total + Nota1 + Nota2

 

Aí é só mostrar os resultados no fim (fora do laço),

Escreval("MEDIA DA CLASSE: ", Total/12)
Escreval("APROVADOS: ", Aprov/6 * 100, "%")
Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")

 

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

 

@Midori , assim rodou,mas eu não sei se está certo :

 

 

Var
// Seção de Declarações das variáveis 
nome:caractere
nota1,nota2,nota3,nota4,nota5,nota6,nota7,nota8,nota9,nota10,nota11,nota12:real
media:real
aprov:inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota1)
escreval (" Informe a 2° nota")
leia(nota2)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota3)
escreval (" Informe a 2° nota")
leia(nota4)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota5)
escreval (" Informe a 2° nota")
leia(nota6)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota7)
escreval (" Informe a 2° nota")
leia(nota8)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota9)
escreval (" Informe a 2° nota")
leia(nota10)
escreval (" Informe o seu nome")
leia (nome)
escreval (" Informe a 1° nota")
leia(nota11)
escreval (" Informe a 2° nota")
leia(nota12)
media <- nota1+nota2+nota3+nota4+nota5+nota6+nota7+nota8+nota9+nota10+nota11+nota12/12
escreval(" A média da classe é:" , media)
Se((Nota1 + Nota2)/2 > 7) então
Aprov <- Aprov + 1
fimse
Escreval("APROVADOS: ", Aprov/6 * 100, "%")
Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")

Fimalgoritmo
 

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

@Eli Almeidaa O cálculo da média ainda está errado como no código anterior, note o que comentei sobre a ordem das operações. Se quer usar a estrutura condicional (Se) dessa forma faltou colocar dentro de um laço. Chegou a ver loop/laço nas aulas de programação? Se vai usar um só duas variáveis para a nota serão necessárias (Nota1 e Nota2).

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

@Midori , agora acho que entendi, os parênteses fazem a somar primeiro para depois dividir. Agora

estaria certo assim ?

 

Var
   // Seção de Declarações das variáveis
   nome:caractere
   nota1,nota2,nota3,nota4,nota5,nota6,nota7,nota8,nota9,nota10,nota11,nota12:real
   media:real
   aprov:inteiro

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota1)
   escreval (" Informe a 2° nota")
   leia(nota2)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota3)
   escreval (" Informe a 2° nota")
   leia(nota4)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota5)
   escreval (" Informe a 2° nota")
   leia(nota6)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota7)
   escreval (" Informe a 2° nota")
   leia(nota8)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota9)
   escreval (" Informe a 2° nota")
   leia(nota10)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota11)
   escreval (" Informe a 2° nota")
   leia(nota12)
   media <- (nota1+nota2+nota3+nota4+nota5+nota6+nota7+nota8+nota9+nota10+nota11+nota12)/12
   escreval(" A média da classe é:" , media)
   Se((Nota1 + Nota2)/2 > 7) então
      Aprov <- Aprov + 1
      Se((Nota3 + Nota4)/2 > 7) então
         Aprov <- Aprov + 1
         Se((Nota5 + Nota6)/2 > 7) então
            Aprov <- Aprov + 1
            Se((Nota7 + Nota8)/2 > 7) então
               Aprov <- Aprov + 1
               Se((Nota9 + Nota10)/2 > 7) então
                  Aprov <- Aprov + 1
                  Se((Nota11 + Nota12)/2 > 7) então
                     Aprov <- Aprov + 1
                  fimse
               fimse
            fimse
         fimse
      fimse
   fimse
   Escreval("APROVADOS: ", Aprov/6 * 100, "%")
   Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")

Fimalgoritmo

 

 

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

@Eli Almeidaa Da forma que fez essas estruturas condicionais (Se), a média do segundo aluno só será testada se a do primeiro for maior que 7; A do terceiro se a do segundo for maior que 7... Até chegar no último.

 

Isso significa que se p.ex a média do primeiro não for maior que 7, nenhuma outra será verificada porque você está condicionando a média do anterior para testar os próximos. Então faça as condicionais para cada aluno ter o seu próprio bloco Se...FimSe independente dos outros,

 

Se((Nota1 + Nota2)/2 > 7) então
    Aprov <- Aprov + 1
FimSe

Se((Nota3 + Nota4)/2 > 7) então
    Aprov <- Aprov + 1
FimSe

...

 

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

@Midori, pronto concertei isso aí. Será que agora estaria correto?

 

Var
   // Seção de Declarações das variáveis
   nome:caractere
   nota1,nota2,nota3,nota4,nota5,nota6,nota7,nota8,nota9,nota10,nota11,nota12:real
   media:real
   aprov:inteiro

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota1)
   escreval (" Informe a 2° nota")
   leia(nota2)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota3)
   escreval (" Informe a 2° nota")
   leia(nota4)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota5)
   escreval (" Informe a 2° nota")
   leia(nota6)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota7)
   escreval (" Informe a 2° nota")
   leia(nota8)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota9)
   escreval (" Informe a 2° nota")
   leia(nota10)
   escreval (" Informe o seu nome")
   leia (nome)
   escreval (" Informe a 1° nota")
   leia(nota11)
   escreval (" Informe a 2° nota")
   leia(nota12)
   media <- (nota1+nota2+nota3+nota4+nota5+nota6+nota7+nota8+nota9+nota10+nota11+nota12)/12
   escreval(" A média da classe é:" , media)
   
   Se((Nota1 + Nota2)/2 > 7) então
      Aprov <- Aprov + 1
   fimse
   
   Se((Nota3 + Nota4)/2 > 7) então
      Aprov <- Aprov + 1
   fimse
   
   Se((Nota5 + Nota6)/2 > 7) então
      Aprov <- Aprov + 1
   fimse
   
   Se((Nota7 + Nota8)/2 > 7) então
      Aprov <- Aprov + 1
   fimse
   
   Se((Nota9 + Nota10)/2 > 7) então
      Aprov <- Aprov + 1
   fimse
   
   Se((Nota11 + Nota12)/2 > 7) então
      Aprov <- Aprov + 1
   fimse

   Escreval("APROVADOS: ", Aprov/6 * 100, "%")
   Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")
Fimalgoritmo
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Eli Almeidaa Está correto. Outra forma com loop poderia ser assim,

 

Algoritmo "Media da Classe"

Var
    Nota1:  Real
    Nota2:  Real
    Total:  Real
    Nome:   Caractere
    Conta:  Inteiro
    Aprov:  Inteiro

Inicio
    Para Conta <- 1 ate 6 faca
        Escreva("Nome ", Conta, ": ")
        Leia(Nome)
        Escreva(" Nota 1: ")
        Leia(Nota1)
        Escreva(" Nota 2: ")
        Leia(Nota2)

        Se((Nota1 + Nota2)/2 > 7) então
            Aprov <- Aprov + 1
        FimSe
        Total <- Total + Nota1 + Nota2
    FimPara

    Escreval("MEDIA DA CLASSE: ", Total/12)
    Escreval("APROVADOS: ", Aprov/6 * 100, "%")
    Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%")
Fimalgoritmo

 

  • Obrigado 2
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!