Ir ao conteúdo
  • Cadastre-se

VisualG Calcular média escolar, cadastro e pesquisa de aluno


Posts recomendados

Sou estudante so 2o período de Analise de Desenvolvimento de Sistema, e o Visualg (Portugol) é a nossa linguagem educacional/ Professor passou um trabalho com os seguintes pedidos...

Desenvolva um programa em Visualg que apresente o seguinte menu para o usuário:
1 - Cadastrar aluno
2 - Pesquisar aluno
3 - Listar alunos
4- Lista média de todos alunos da turma
S - Sair
Digite Opção:
1. Em Cadastrar: deve conter os vetores: RA, Nota1, Nota2 e Cidade. Um de cada vez;
2. Realiza a pesquisa por RA, caso encontrar apresentar a média (que é criado automaticamente no vetor MEDIA, quando é realizado o cadastro das notas). Caso não encontre, informar “RA inexistente”;
3. Lista todos alunos cadastrados até o momento;
4. Lista a média de cada aluno, mas apresentando somente RA e Media;
5. Sair agradecendo o usuário.
* Utilizar a Estrutura Caso... Escolha 
*O limite de alunos deve ser 10, após tentar cadastrar mais alunos porém com esse limite já atingido, mandar uma informação.(que já foi atingido
*Informar quando não tem alunos cadastrados caso a Opção seja 2, 3 ou 4

O ERRO SE DA NA SEGUINTE PARTE: O limite de alunos deve ser 10, após tentar cadastrar mais alunos porém com esse limite já atingido, mandar uma informação.(que já foi atingido)

 

Algoritmo "CadastroAlunos"

Var
   opcao: Caractere
   RA: Vetor[1..10] de Inteiro
   Nota1: Vetor[1..10] de Real
   Nota2: Vetor[1..10] de Real
   Cidade: Vetor[1..10] de Caractere
   MEDIA: Vetor[1..10] de Real
   i: Inteiro
   raPesquisa: Inteiro
   encontrou: Logico
   alunosCadastrados: Logico

Inicio
   Para i de 1 ate 10 faca
      RA[i] <- 0
      Nota1[i] <- 0
      Nota2[i] <- 0
      MEDIA[i] <- 0
   FimPara

   alunosCadastrados <- Falso

   Enquanto opcao <> "S" faca
      Escreval("==================================================")
      Escreval("                    -=MENU=-")
      Escreval("1 - Cadastrar aluno")
      Escreval("2 - Pesquisar aluno")
      Escreval("3 - Listar alunos")
      Escreval("4 - Lista média de todos alunos da turma")
      Escreval("S - Sair")
      Escreval("==================================================")
      Escreval("Digite Opção: ")
      Leia(opcao)
      LimpaTela

      Escolha opcao
      Caso "1"
         // Cadastrar aluno
         i <- 1
         Enquanto (i <= 10) E (RA[i] <> 0) faca
            i <- i + 1
         FimEnquanto

         Se i <= 10 então
            Escreva("Digite o RA do aluno: ")
            Leia(RA[i])
            Escreva("Digite a Nota 1 do aluno: ")
            Leia(Nota1[i])
            Escreva("Digite a Nota 2 do aluno: ")
            Leia(Nota2[i])
            Escreva("Digite a Cidade do aluno: ")
            Leia(Cidade[i])

            MEDIA[i] <- (Nota1[i] + Nota2[i]) / 2
            LimpaTela

            Escreval("Aluno cadastrado com sucesso!")
            alunosCadastrados <- Verdadeiro
         Senao
            Escreval("Limite de alunos atingido.")
         FimSe

      Caso "2"
         // Pesquisar aluno
         Se alunosCadastrados então
            Escreval("Digite o RA para pesquisa: ")
            Leia(raPesquisa)
            encontrou <- Falso
            Para i de 1 ate 10 faca
               Se RA[i] = raPesquisa então
                  LimpaTela
                  Escreval("Média: ", MEDIA[i])
                  encontrou <- Verdadeiro
                  Interrompa
               FimSe
            FimPara

            Se não encontrou então
               Escreval("RA inexistente")
            FimSe
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "3"
         // Listar alunos
         Se alunosCadastrados então
            Para i de 1 ate 10 faca
               Se RA[i] <> 0 então
                  Escreval("RA: ", RA[i])
                  Escreval("Nota 1: ", Nota1[i])
                  Escreval("Nota 2: ", Nota2[i])
                  Escreval("Média: ", MEDIA[i])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento, consequentemente, nenhuma média calculada.")
         FimSe

      Caso "4"
         // Listar médias
         Se alunosCadastrados então
            Para i de 1 ate 10 faca
               Se RA[i] <> 0 então
                  Escreval("RA: ", RA[i])
                  Escreval("Média: ", MEDIA[i])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "S"
         Escreval("Agradecemos por utilizar o programa!")

      OutroCaso
         Escreval("Opção inválida. Tente novamente.")
      FimEscolha
   FimEnquanto

FimAlgoritmo




Esse é o código, e aqui está o erro na hora da execução - Acredito que essas linhas que o Visualg acusa estejam erradas, mas resumindo, Eu cadastro os 10 alunos porém quando clico novamente na Opção 1(de cadastro), ao invés de aparecer a mensagem de "Limite de alunos atingido", e aí o erro se apresenta. Se algum expert puder me ajudar ficarei muito agradecido!!

image.png

image.png

Link para o comentário
Compartilhar em outros sites

7 horas atrás, HenriqueArisi disse:

O ERRO SE DA NA SEGUINTE PARTE: O limite de alunos deve ser 10, após tentar cadastrar mais alunos porém com esse limite já atingido, mandar uma informação.(que já foi atingido)

Você tem que colocar para o programa parar nesse momento.

Exemplo:

Algoritmo "CadastroAlunos"

Var
   opcao: Caractere
   RA: Vetor[1..10] de Inteiro
   Nota1: Vetor[1..10] de Real
   Nota2: Vetor[1..10] de Real
   Cidade: Vetor[1..10] de Caractere
   MEDIA: Vetor[1..10] de Real
   i: Inteiro
   raPesquisa: Inteiro
   encontrou: Logico
   alunosCadastrados: Logico
   
procedimento espera
var
   entrada:caractere
inicio
      escreval("Pressione enter para continuar...")
      leia(entrada)
fimProcedimento

Inicio
   Para i de 1 ate 10 faca
      RA[i] <- 0
      Nota1[i] <- 0
      Nota2[i] <- 0
      MEDIA[i] <- 0
   FimPara

   alunosCadastrados <- Falso

   Enquanto opcao <> "S" faca
      Escreval("==================================================")
      Escreval("                    -=MENU=-")
      Escreval("1 - Cadastrar aluno")
      Escreval("2 - Pesquisar aluno")
      Escreval("3 - Listar alunos")
      Escreval("4 - Lista média de todos alunos da turma")
      Escreval("S - Sair")
      Escreval("==================================================")
      Escreval("Digite Opção: ")
      Leia(opcao)
      LimpaTela

      Escolha opcao
      Caso "1"
         // Cadastrar aluno
         i <- 1
         Enquanto (i <= 10) E (RA[i] <> 0) faca
            i <- i + 1
         FimEnquanto

         Se i <= 10 então
            Escreva("Digite o RA do aluno: ")
            Leia(RA[i])
            Escreva("Digite a Nota 1 do aluno: ")
            Leia(Nota1[i])
            Escreva("Digite a Nota 2 do aluno: ")
            Leia(Nota2[i])
            Escreva("Digite a Cidade do aluno: ")
            Leia(Cidade[i])

            MEDIA[i] <- (Nota1[i] + Nota2[i]) / 2
            LimpaTela

            Escreval("Aluno cadastrado com sucesso!")
            alunosCadastrados <- Verdadeiro
         Senao
            Escreval("Limite de alunos atingido.")
            espera
         FimSe

      Caso "2"
         // Pesquisar aluno
         Se alunosCadastrados então
            Escreval("Digite o RA para pesquisa: ")
            Leia(raPesquisa)
            encontrou <- Falso
            Para i de 1 ate 10 faca
               Se RA[i] = raPesquisa então
                  LimpaTela
                  Escreval("Média: ", MEDIA[i])
                  encontrou <- Verdadeiro
                  Interrompa
               FimSe
            FimPara

            Se não encontrou então
               Escreval("RA inexistente")
            FimSe
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "3"
         // Listar alunos
         Se alunosCadastrados então
            Para i de 1 ate 10 faca
               Se RA[i] <> 0 então
                  Escreval("RA: ", RA[i])
                  Escreval("Nota 1: ", Nota1[i])
                  Escreval("Nota 2: ", Nota2[i])
                  Escreval("Média: ", MEDIA[i])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento, consequentemente, nenhuma média calculada.")
         FimSe

      Caso "4"
         // Listar médias
         Se alunosCadastrados então
            Para i de 1 ate 10 faca
               Se RA[i] <> 0 então
                  Escreval("RA: ", RA[i])
                  Escreval("Média: ", MEDIA[i])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "S"
         Escreval("Agradecemos por utilizar o programa!")

      OutroCaso
         Escreval("Opção inválida. Tente novamente.")
      FimEscolha
   FimEnquanto

FimAlgoritmo

 

7 horas atrás, HenriqueArisi disse:

Esse é o código, e aqui está o erro na hora da execução - Acredito que essas linhas que o Visualg acusa estejam erradas, mas resumindo, Eu cadastro os 10 alunos porém quando clico novamente na Opção 1(de cadastro), ao invés de aparecer a mensagem de "Limite de alunos atingido", e aí o erro se apresenta. Se algum expert puder me ajudar ficarei muito agradecido!!

Eu testei aqui e está tudo normal, mas esse erro aí seria na linha 43 no comando Leia(opcao) que estaria faltando ) um parênteses.

tudo_ok.thumb.png.618a1f23c26637e83dd8abed883f8d1c.png

Link para o comentário
Compartilhar em outros sites

3 horas atrás, HenriqueArisi disse:

@kgin Amigo, testei aqui e continua no mesmo erro... 😬

 

Na hora que eu estava testando o programa eu fiz algumas modificações 😕. Por isso não percebi o erro, mas o erro está na linha 50.

5 horas atrás, kgin disse:
         i <- 1
         Enquanto (i <= 10) E (RA[i] <> 0) faca
            i <- i + 1
         FimEnquanto

 

Funcionando agora

Algoritmo "CadastroAlunos"

const
   // AQUI VOCÊ ALTERA A QUANTIDADE DE ALUNOS NO PROGRAMA AAAAAAAAAAH........ •`_´•
   QUANTIDADE_MAXIMA_ALUNOS = 2

Var
   opcao: Caractere
   RA: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Inteiro
   Nota1: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real
   Nota2: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real
   Cidade: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Caractere
   MEDIA: Vetor[1..QUANTIDADE_MAXIMA_ALUNOS] de Real
   contador: Inteiro
   raPesquisa: Inteiro
   encontrou: Logico
   alunosCadastrados: Logico

procedimento espera
var
   entrada:caractere
inicio
   escreval("Pressione enter para continuar...")
   leia(entrada)
fimProcedimento

Inicio
   Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca
      RA[contador] <- 0
      Nota1[contador] <- 0
      Nota2[contador] <- 0
      MEDIA[contador] <- 0
   FimPara

   alunosCadastrados <- Falso
   contador <- 1

   Enquanto opcao <> "S" faca
      Escreval("==================================================")
      Escreval("                    -=MENU=-")
      Escreval("1 - Cadastrar aluno")
      Escreval("2 - Pesquisar aluno")
      Escreval("3 - Listar alunos")
      Escreval("4 - Lista média de todos alunos da turma")
      Escreval("S - Sair")
      Escreval("==================================================")
      Escreval("Digite Opção: ")
      Leia(opcao)
      LimpaTela

      Escolha opcao
      Caso "1"
         // O ERRO ERA AQUI!
         // Cadastrar aluno
         // Enquanto (contador <= QUANTIDADE_MAXIMA_ALUNOS) E (RA[i] <> 0) faca
         //    contador <- contador + 1
         // FimEnquanto
         // FIM DO ERRO!

         Se contador <= QUANTIDADE_MAXIMA_ALUNOS então
            Escreva("Digite o RA do aluno: ")
            Leia(RA[contador])
            Escreva("Digite a Nota 1 do aluno: ")
            Leia(Nota1[contador])
            Escreva("Digite a Nota 2 do aluno: ")
            Leia(Nota2[contador])
            Escreva("Digite a Cidade do aluno: ")
            Leia(Cidade[contador])

            MEDIA[contador] <- (Nota1[contador] + Nota2[contador]) / 2
            LimpaTela

            Escreval("Aluno cadastrado com sucesso!")
            contador <- contador+1
         Senao
            Escreval("Limite de alunos atingido.")
            espera
         FimSe

      Caso "2"
         // Pesquisar aluno
         Se alunosCadastrados então
            Escreval("Digite o RA para pesquisa: ")
            Leia(raPesquisa)
            encontrou <- Falso
            Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca
               Se RA[contador] = raPesquisa então
                  LimpaTela
                  Escreval("Média: ", MEDIA[contador])
                  encontrou <- Verdadeiro
                  Interrompa
               FimSe
            FimPara

            Se não encontrou então
               Escreval("RA inexistente")
            FimSe
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "3"
         // Listar alunos
         Se alunosCadastrados então
            Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca
               Se RA[contador] <> 0 então
                  Escreval("RA: ", RA[contador])
                  Escreval("Nota 1: ", Nota1[contador])
                  Escreval("Nota 2: ", Nota2[contador])
                  Escreval("Média: ", MEDIA[contador])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento, consequentemente, nenhuma média calculada.")
         FimSe

      Caso "4"
         // Listar médias
         Se alunosCadastrados então
            Para contador de 1 ate QUANTIDADE_MAXIMA_ALUNOS faca
               Se RA[contador] <> 0 então
                  Escreval("RA: ", RA[contador])
                  Escreval("Média: ", MEDIA[contador])
                  Escreval("---------------------------------")
               FimSe
            FimPara
         Senao
            Escreval("Nenhum aluno cadastrado até o momento.")
         FimSe

      Caso "S"
         Escreval("Agradecemos por utilizar o programa!")

      OutroCaso
         Escreval("Opção inválida. Tente novamente.")
      FimEscolha
   FimEnquanto

FimAlgoritmo

Tente reestruturar o programa, e evite usar variáveis com nomes pouco significativos como i ou ra acaba dificultando o entendimento do mesmo.

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

  • DiF alterou o título para Calcular média escolar, cadastro e pesquisa de aluno

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!