Ir ao conteúdo

Posts recomendados

Postado

Como imprimo os resultados calculados no VisualG?

 

Segue o código:

 

algoritmo "Vestibular-PROCEDIMENTO"
// Problema: Considere que o último concurso vestibular
//      apresentou três provas: Português, Matemática e
//      Física.
//      Considerando que para cada candidato tem-se
//      um registro contendo o seu nome e as notas obtidas
//      em cada uma das provas, construa um algoritmo que
//      forneça:
//      a) o nome do candidato e suas notas em cada prova
//      b) a média do candidato
//      c) Mostrar se o candidato foi aprovado
//      ou não. Considere que um candidato é aprovado se sua
//      média for igual ou maior que 7.0 e se não apresentou
//      nenhuma nota abaixo de 5.0
//  OBS:O ALGORÍTMO DEVERÁ ACEITAR QUALQUER NÚMERO DE CANDI-
//      DATOS E ENCERRAR AO ENTRAR COM O NOME "0"(ZERO) E
//      EXIBIR CADA CANDIDATO, SUA MÉDIA E SEU
//      RESULTADO (APROVADO ou REPROVADO)



// Autor(a)    : DAVI MATOS
// Data atual  : 21/08/2021



procedimento cabecalho
// ---- IMPRIME O CABECALHO DO ALGORITMO ----
inicio
   escreval("----------------------------------")
   escreval("CALCULO DA SITUAÇÃO DOS CANDIDATOS")
   escreval("----------------------------------")
   escreval("OBS:  Para exibir o o resultado, digite 0 em nome de 'Candidato'")
   escreval("================================================")
fimprocedimento

Var
   // Seção de Declarações das variáveis
   Candidato: vetor[1..1000] de caractere
   NotaPort, NotaMat, NotaFis, Media: vetor [1..1000] de real
   NotaAprov : real
   i,cont,ultimo: inteiro
   continua: logico

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

   continua <- verdadeiro

   // LEITURA DOS NOMES E NOTAS DOS CANDIDATOS
   cont <- 1
   enquanto continua faca
      limpatela
      cabecalho
      escreva("Informe o nome do ",cont,"º canditato (0 para finalizar): ")
      leia(candidato[cont])
      se (candidato[cont] = "0") entao
         continua <- falso
         ultimo <- cont - 1
      senao
         limpatela
         cabecalho
         escreval("Candidato.....: ",maiusc(candidato[cont]))
         escreva("Nota de Português: ")
         leia(NotaPort[cont])

         se (NotaPort[cont] < 5) ou (NotaPort[cont] > 10) entao
            escreval("Atenção!  entre 5 e 10")
            fimalgoritmo
         fimse

         escreva("Nota de Matemática: ")
         leia(NotaMat[cont])

         se (NotaMat[cont] < 5) ou (NotaMat[cont] > 10)  entao
            escreval("Atenção!   entre 5 e 10")
            fimalgoritmo
         fimse

         escreva("Nota de Física: ")
         leia(NotaFis[cont])

         se (NotaFis[cont] < 5) ou (NotaFis[cont] > 10) entao
            escreval ("Atenção!  entre 5 e 10")
            fimalgoritmo
         fimse

         media[cont] <- (NotaPort[cont]+NotaMat[cont]+NotaFis[cont])/3
         cont <- cont + 1
      fimse
      limpatela
   fimenquanto

   //-------------
   NotaAprov <- 7,0

   // IMPRESSÃO DOS RESULTADOS (NOME, NOTAS, MEDIAS E SITUAÇÃO)

   escreval("*************************************")
   escreval
   escrevaL("Candidato:",maiusc (candidato[cont]))
   escreval("A média do candidato foi:" , Media:7:0)
   se (Media => NotaAprov) entao
      escreval
      escreval("o Candidato", maiusc(candidato[cont]), "foi aprovado")
   senao
      escreval("o Candidato", maiusc (candidato[cont]), "foi reprovado)
   fimse
fimalgoritmo

 

 

  • Curtir 2
  • Membro VIP
Postado

Sobre:

21 horas atrás, Davi Matos disse:
         se (NotaPort[cont] < 5) ou (NotaPort[cont] > 10) entao
            escreval("Atenção!  entre 5 e 10")
            fimalgoritmo
         fimse

 

O comando fimAlgoritmo não pode ficar no meio do código. Essa estrutura acima não é uma sintaxe válida para o VisualG. (O programa não dar erro devido a bugs no programa do VisualG.)

 

Necessário que reformule essa lógica... até porque sequer faz sentido "forçar uma finalização do programa" apenas porque o usuário digitou uma nota inválida.

 

Obs.: lembrando, mesmo que faça sentido, NÃO pode utilizar fimAlgoritmo do meio do código. Só deve existe um dele.. que é "no fim do algoritmo" mesmo...

 

 

 

Sobre:

21 horas atrás, Davi Matos disse:

Como imprimo os resultados calculados no VisualG?

 

O que você quer imprimir? Após saber o que quer, vai lá e imprime...

 

Como os dados estão em vetores... assim como você fez um laço de repetição para preencher, precisaria de um outro laço para imprimir.

 

Algo como:

   // IMPRESSÃO DOS RESULTADOS (NOME, NOTAS, MEDIAS E SITUAÇÃO)

   para i de 1 ate cont faca
      escrevaL("*************************************")
      escrevaL()
      escrevaL("Candidato:", Maiusc(candidato[i]))
      escrevaL("Média    :", media[i]:1:2)

      se (media[i] >= notaAprov) entao
         escrevaL()
         escrevaL("O candidato ", Maiusc(candidato[i]), " foi aprovado")
      senao
         escrevaL("O candidato ", Maiusc(candidato[i]), " foi reprovado")
      fimSe
   fimPara

 

 

 

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!