Ir ao conteúdo
  • Cadastre-se

VisualG A maior e menor nota...


Posts recomendados

Alguém poderia me ajudar como faço para descobrir a maior nota e a menor desse programa. Eu to me complicando por que tipo se o usuário pedir pra eu executar três nota ai não sei como faço.

 

Var
   // Seção de Declarações das variáveis 
   p1,p2,pic,quantidade,NF,contador,aprovado,reprovado,exame:inteiro
   media,notas,menor,maior:real
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   aprovado<-0
   reprovado<-0
   exame<-0
   contador<-0
   escreval("Seja Bem-vindos Senhores pais! Vamos calcular a nota do seu filho!")
   repita
      escreval("Qual a quantidade de alunos que será avaliados?")
      leia(quantidade)
      se (quantidade<0) entao
         escreval("Numero invalido!")
      fimse
   ate (quantidade>0)
   repita
      repita
         escreval("Informe a nota do P1 de 0 á 30!")
         leia(p1)
         se ((p1<0) ou (p1>30)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(p1)
         fimse
      ate ((p1>=0) e (p1<=30))
      repita
         escreval("Informe a nota do P2 de 0 á 55!")
         leia(p2)
         se ((p2<0) ou (p2>55)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(p2)
         fimse
      ate ((p2>=0) e (p2<=55))
      repita
         escreval("Informe a nota do PIC de 0 á 15!")
         leia(pic)
         se ((pic<0) ou (pic>15)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(pic)
         fimse
      ate ((pic>=0) e (pic<=15))
      NF <- p1 + p2 + pic
      escreval("Nota final é: ",NF,".")
      se (NF>=60) entao
         escreval("Aluno Aprovado!")
         aprovado<- aprovado + 1
      fimse
      se (NF>=40) e (NF<60) entao
         escreval("Aluno está em Exame final.")
         exame<- exame + 1
      senao
         se (NF<40) entao
            escreval("Aluno Reprovado!")
            reprovado <- reprovado + 1
         fimse
      fimse
      contador <- contador + 1
      notas<- notas + NF
   ate (contador = quantidade)
   escreval("Quantidade de alunos Aprovado: ",aprovado,".")
   escreval("Quantidade de alunos de Exame: ",exame,".")
   escreval("Quantidade de alunos Reprovado: ",reprovado,".")
   media<- notas / quantidade
   escreval("A média das notas dos alunos é: ",media,".")
Fimalgoritmo

 

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

@Eduardo da silva santos     o enunciado ajudaria a saber como fazer ,  por exemplo , o que é p1 , p2 , pic  ? ,  e  no programa não foi pedido nenhuma nota  ,  mas se essas variáveis são as notas , então para saber a menor e a maior delas então você precisa usar o comando se , para fazer a verificação , então um exemplo poderia ser assim  :

Algoritmo "maior e menor nota"
Var
  p1,p2,pic,quantidade,NF,continuar : inteiro
  contador,aprovado,reprovado,exame : inteiro
  media,notas,menor,maior           : real
procedimento teste( valor,limite    : inteiro )
inicio
  se ( valor < 0 ) ou ( valor > limite ) entao
    escreval
    escreval("Nota fora da especificação . . . !")
    escreval("Informe Uma Nota VáLida !")
    escreval
  fimse
fimprocedimento
Inicio
  escreval("Seja Bem-vindos Senhores pais! Vamos calcular a nota do seu filho!")
  repita
    escreva("Qual a quantidade de alunos que será avaliados ? ")
    leia( quantidade )
    se quantidade < 0 entao
      escreval("Numero invalido!")
    fimse
  ate quantidade > 0
  repita
    repita
      escreva("Informe a nota do P1 de 0 á 30 ! ")
      leia( p1 )
      se ( p1 < 0 ) ou ( p1 > 30 ) entao
        teste( p1,30 )
      fimse
    ate ( p1>=0 ) e ( p1<=30 )
    repita
      escreva("Informe a nota do P2 de 0 á 55 ! ")
      leia( p2 )
      se ( p2<0 ) ou ( p2>55 ) entao
        teste( p2,55 )
      fimse
    ate ( p2 >= 0 ) e ( p2 <= 55 )
    repita
      escreva("Informe a nota do PIC de 0 á 15 ! ")
      leia( pic )
      se ( pic < 0 ) ou ( pic > 15 ) entao
        teste( pic,15 )
      fimse
    ate ( pic >= 0 ) e ( pic <= 15 )
    se contador = 0 entao
      menor := p1 // menor Inicializado com o primeiro valor digitado
    fimse
    se menor > p1 entao
      menor := p1   // armazena o menor
    fimse
    se menor > p2 entao
      menor := p2   // armazena o menor
    fimse
    se menor > pic entao
      menor := pic  // armazena o menor
    fimse
    se maior < p1 entao
      maior := p1   // armazena o maior
    fimse
    se maior < p2 entao
      maior := p2   // armazena o maior
    fimse
    se maior < pic entao
      maior := pic  // armazena o maior
    fimse
    NF <- p1 + p2 + pic
    escreval("Nota final é -------: ",NF," .")
    se NF >= 60  entao
      escreval("Aluno Aprovado . . . !")
      aprovado <- aprovado + 1
    fimse
    se ( NF >= 40 ) e ( NF < 60 ) entao
      escreval("Aluno está em Exame final .")
      exame <- exame + 1
    senao
      se NF < 40 entao
        escreval("Aluno Reprovado . . . !")
        reprovado <- reprovado + 1
      fimse
    fimse
    contador <- contador + 1
    notas    <- notas + NF
  ate contador = quantidade
  escreval("Quantidade de alunos Aprovado --: ",aprovado ," .")
  escreval("Quantidade de alunos de Exame --: ",exame    ," .")
  escreval("Quantidade de alunos Reprovado -: ",reprovado," .")
  escreval("A Maior Nota Foi ---------------: ",maior    ," .")
  escreval("A Menor Nota Foi ---------------: ",menor    ," .")
  media <- notas / quantidade
  escreval("A média das notas dos alunos é -: ",media    ," .")
Fimalgoritmo

 

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

  • Membro VIP

@Eduardo da silva santos, as notas tem pesos diferentes. Daí, é preciso verificar qual é o critério para ser "maior" ou "menor". Por exemplo: é proporcionalmente (em porcentagem em relação ao peso)? é a em valor absoluto? é a média do aluno?

 

Por favor, poste o enunciado completo para termos uma referência melhor.

 

Se for em valor absoluto, concordo que seria o que @devair1010 postou mesmo, apenas, particularmente, prefiro com as variáveis invertidas. Algo assim:

   se contador = 0 entao
      menor <- p1
   fimse
   se p1 < menor entao
      menor <- p1
   fimse
   se p2 < menor entao
      menor <- p2
   fimse
   se pic < menor entao
      menor <- pic
   fimse
     
   se p1 > maior entao
      maior <- p1
   fimse
   se p2 > maior entao
      maior <- p2
   fimse
   se pic > maior entao
      maior <- pic
   fimse

Ou seja: dá no mesmo, mas acho melhor comparar a variável com o menor ou menor, e não o contrário (o menor e maior com a variável). Só como analogia, acho tão "estranho" invertido, assim como ficaria assim:

   se 0 = contador entao

É a mesma coisa, só que não é a mesma coisa, rs.

 

No aguardo.

 

 

 

PS: @devair1010, como sabido, ":=" e "<-" também são a mesma coisa, mas recomendaria utilizar apenas ou um, ou outro. No caso, seguir o padrão que já estava sendo utilizado (ou editar e trocar todos por ":=").

 

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

@Simon Viegas @devair1010 Esse seria o enunciado. 

Faça um SW que solicite ao usuário a quantidade de alunos que será avaliada (Essa quantidade tem que ser maior que zero). O SW deverá solicitar as notas P1 (0 a 30), P2 (0 a 55) e PIC (0 a 15) de cada aluno. Ao final, o SW deverá dizer a situação do aluno (Aprovado NF>=60 / Exame NF>=40 e NF<60 / Reprovado). Após o processamento das notas de todos os alunos informados, o SW deverá apresentar:

A) A quantidade de alunos aprovados

B ) A quantidade de alunos de exame

C) A quantidade de alunos reprovados

D) A média das notas dos alunos

E) A maior nota

F) A menor nota

 

A minha duvida é: quando eu solicitar para avaliar a nota de três alunos então depois que fazer o calculo das notas vai da a nota final de cada um né isso! Ai desse calculo final eu quero a maior nota entre os três e a menor.

Var
// Seção de Declarações das variáveis 
  p1,p2,pic,quantidade,NF,contador,aprovado,reprovado,exame:inteiro
   media,notas,menor,maior:real
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   aprovado<-0
   reprovado<-0
   exame<-0
   contador<-0
   escreval("Seja Bem-vindos Senhores pais! Vamos calcular a nota do seu filho!")
     repita
      escreval("Qual a quantidade de alunos que será avaliados?")
      leia(quantidade)
      se (quantidade<0) entao
       escreval("Numero invalido!")
       fimse
       ate (quantidade>0)
   repita
      repita
         escreval("Informe a nota do P1 de 0 á 30!")
         leia(p1)
         se ((p1<0) ou (p1>30)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(p1)
         fimse
      ate ((p1>=0) e (p1<=30))

      repita
         escreval("Informe a nota do P2 de 0 á 55!")
         leia(p2)
         se ((p2<0) ou (p2>55)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(p2)
         fimse
      ate ((p2>=0) e (p2<=55))

      repita
         escreval("Informe a nota do PIC de 0 á 15!")
         leia(pic)
         se ((pic<0) ou (pic>15)) entao
            escreval("Nota fora da especificação! Informe uma nota valida!")
            leia(pic)
         fimse
      ate ((pic>=0) e (pic<=15))
      NF <- p1 + p2 + pic
      escreval("Nota final é: ",NF,".")
      se (NF>=60) entao
         escreval("Aluno Aprovado!")
         aprovado<- aprovado + 1
      fimse
      se (NF>=40) e (NF<60) entao
         escreval("Aluno está em Exame final.")
         exame<- exame + 1
      senao
         se (NF<40) entao
            escreval("Aluno Reprovado!")
            reprovado <- reprovado + 1
         fimse
      fimse
      contador <- contador + 1
      notas<- notas + NF
      ate (contador = quantidade)
      escreval("Quantidade de alunos Aprovado: ",aprovado,".")
      escreval("Quantidade de alunos de Exame: ",exame,".")
      escreval("Quantidade de alunos Reprovado: ",reprovado,".")
      media<- notas / quantidade
      escreval("A média das notas dos alunos é: ",media,".")
      
Fimalgoritmo

 

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

55 minutos atrás, devair1010 disse:

@Eduardo da silva santos    então faça como no código que postei acima , usando a variável NF , na linha abaixo de onde é acumulado o valor da soma das notas  

Então já fiz só que ta aparecendo a nota maior e menor entre o p1 ,p2,pic dos alunos. Só que eu quero assim:

EX Primeiro aluno= 60 aprovado

segundo = 45 em exame

terceiro aluno = 39 reprovado

 

Dai eu vou saber qual foi a nota maior entre os três 

Maior nota: 60

e menor nota= 39

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

@Eduardo da silva santos    esse aqui está funcionando bem

Algoritmo "maior e menor nota_2"
Var
  p1,p2,pic,quantidade,NF,continuar : inteiro
  contador,aprovado,reprovado,exame : inteiro
  media,notas,menor,maior           : real
procedimento teste( valor,limite    : inteiro )
inicio
  se ( valor < 0 ) ou ( valor > limite ) entao
    escreval
    escreval("Nota fora da especificação . . . !")
    escreval("Informe Uma Nota VáLida !")
    escreval
  fimse
fimprocedimento
Inicio
  escreval("Seja Bem-vindos Senhores pais! Vamos calcular a nota do seu filho!")
  repita
    escreva("Qual a quantidade de alunos que será avaliados ? ")
    leia( quantidade )
    se quantidade < 0 entao
      escreval("Numero invalido!")
    fimse
  ate quantidade > 0
  repita
    repita
      escreva("Informe a nota do P1 de 0 á 30 ! ")
      leia( p1 )
      se ( p1 < 0 ) ou ( p1 > 30 ) entao
        teste( p1,30 )
      fimse
    ate ( p1 >= 0 ) e ( p1 <= 30 )
    repita
      escreva("Informe a nota do P2 de 0 á 55 ! ")
      leia( p2 )
      se ( p2 < 0 ) ou ( p2 > 55 ) entao
        teste( p2,55 )
      fimse
    ate ( p2 >= 0 ) e ( p2 <= 55 )
    repita
      escreva("Informe a nota do PIC de 0 á 15 ! ")
      leia( pic )
      se ( pic < 0 ) ou ( pic > 15 ) entao
        teste( pic,15 )
      fimse
    ate ( pic >= 0 ) e ( pic <= 15 )
    NF <- p1 + p2 + pic  // nota Final
    se contador = 0 entao
      menor <- NF // menor Inicializado com o primeiro valor ds nota final
    fimse
    se NF < menor entao
      menor <- NF   // armazena o menor
    fimse
    se NF > maior entao
      maior <- NF
    fimse
    escreval("Nota final é -------: ",NF," .")
    se NF >= 60  entao
      escreval("Aluno Aprovado . . . !")
      aprovado <- aprovado + 1
    fimse
    se ( NF >= 40 ) e ( NF < 60 ) entao
      escreval("Aluno está em Exame final .")
      exame <- exame + 1
    senao
      se NF < 40 entao
        escreval("Aluno Reprovado . . . !")
        reprovado <- reprovado + 1
      fimse
    fimse
    contador <- contador + 1
    notas    <- notas + NF
  ate contador = quantidade
  escreval("Quantidade de alunos Aprovado --: ",aprovado ," .")
  escreval("Quantidade de alunos de Exame --: ",exame    ," .")
  escreval("Quantidade de alunos Reprovado -: ",reprovado," .")
  escreval("A Maior Nota FinaL Foi ---------: ",maior    ," .")
  escreval("A Menor Nota FinaL Foi ---------: ",menor    ," .")
  media <- notas / quantidade
  escreval("A média das notas dos alunos é -: ",media    ," .")
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

Em 22/05/2020 às 20:49, devair1010 disse:

se contador = 0 entao

menor <- NF // menor Inicializado com o primeiro valor ds nota final

fimse

se NF < menor entao

menor <- NF // armazena o menor

fimse

se NF > maior entao

maior <- NF

fimse

Então eu peguei só essa parte adicionei la e funcionou. Agora eu não entendi essa variável procedimento la em cima.

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