Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
Postado

@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
Postado

@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
Postado

 

@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
Postado

@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
Postado

@Eli Almeidaa A média é a soma das notas dividida pela quantidade 12. Mas o seu cálculo está primeiro dividindo a nota12 pela quantidade e depois somando com as outras notas. É por isso que deve colocar os parênteses, p.ex: (nota1 + nota2 + ... + nota11 + nota12)/12

  • Curtir 2
Postado

@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
Postado

@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
Postado

@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
Postado

@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

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