Ir ao conteúdo
  • Cadastre-se

VisualG Erro no código em linha não existente, não sei o que fazer mais


Posts recomendados

 

Var
   notas: vetor[1..5] de real
   media, maior, menor: real
   i: inteiro
   cont_nota, cont_dis : inteiro
   cont_mat, cont_por, cont_geo, cont_fil, cont_his, cont_qui : inteiro
   opc_dis, opc_rep, opc_nota : inteiro
   log_nota : logico
   nota1, nota2, N1, N2: real
   nota, maiornota, menornota : caractere


Inicio
   cont_nota := 0
   log_nota := verdadeiro


   enquanto log_nota faca
      cont_nota := cont_nota + 1
      escreva ("Informe o nome do aluno: ")
      leia (nota)


      repita
         cont_dis := cont_dis + 1
         escreval ("--------------------")
         escreval ("1-matemática")
         escreval ("2-portugues")
         escreval ("3-geografia")
         escreval ("4-Filosofia")
         escreval ("5-historia")
         escreval ("6-quimica")
         escreval ("--------------------")
         escreva  ("Informe qual a disciplina: ")
         leia (opc_dis)

         escolha opc_dis
         caso 1
            cont_mat := cont_mat
         caso 2
            cont_por := cont_por
         caso 3
            cont_geo := cont_geo
         caso 4
            cont_fil := cont_fil
         caso 5
            cont_his := cont_his
         caso 6
            cont_qui := cont_qui
         fimescolha
         ESCREVAL("SISTEMA DE MÉDIAS")
         ESCREVA("DIGITE A PRIMEIRA NOTA: ")
         LEIA(N1)
         ESCREVA("DIGITE A SEGUNDA NOTA: ")
         LEIA(N2)
         MEDIA <- (N1 + N2 ) / 2
         SE MEDIA >= 7 ENTAO
            ESCREVAL("ALUNO APROVADO!")
         SENAO
            SE MEDIA <= 3 ENTAO
               ESCREVAL("ALUNO REPROVADO!")
            SENAO
              SE MEDIA <=5 ENTAO
                  ESCREVAL("ALUNO EM RECUPERAÇÃO...")
               FIMSE
            FIMSE


            se N1 > N2 entao
               maior:= N1
            senao
               se N1 < N2 entao
                  menor:= N1

                  se N2 > N1 entao
                     maior:= N2
                  senao
                     se N2 < N1 entao
                        menor:=N2
                     fimse
                  fimse

                  escreval("")
                  escreval("A média do(a) aluno(a) é:", media)
                  escreval("A maior nota do(a) aluno(a) é:", maior)
                  escreval("A menor nota do(a) aluno(a) é:", menor)


                  escreva ("Deseja informar outra disciplina? (1-Sim ou 2-Não): ")
                  leia (opc_rep)


                  //RESUMO DA MEDIA
                  escreval ("====================================")
                  escreval (nota)
                  escreval ("====================================")
                  escreval ("A média de matemática: ", media)
                  escreval ("A média de português: ",media)
                  escreval ("A média de geografia: ",media)
                  escreval ("A média de filosofia: ",media)
                  escreval ("A média de história: ",media)
                  escreval ("A média de química: ",media)
                  escreval ("====================================")
                  escreval ("A nota total: ",cont_nota," nota: ",cont_dis)
                  escreval ("")
                  escreval ("")


                  escreva ("Deseja informar outro aluno? (1-Sim ou 2-Não)")
                  leia (opc_nota)
                  se opc_nota = 2 entao
                     log_nota := falso
                  fimse


Fimalgoritmo
 

imagem_2022-04-12_192028986.png

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

@lauro viana cada se tem um fimse, e você se esqueceu de alguns

 

// 3 se e só 2 fimse
se media >= 7 entao
            escreval("aluno aprovado!")
         senao
            se media <= 3 entao
               escreval("aluno reprovado!")
            senao
              se media <=5 entao
                  escreval("aluno em recuperação...")
               fimse
            fimse
  //fimse

 

// 4 se e só 2 fimse
se n1 > n2 entao
               maior:= n1
            senao
               se n1 < n2 entao
                  menor:= n1

                  se n2 > n1 entao
                     maior:= n2
                  senao
                     se n2 < n1 entao
                        menor:=n2
                     fimse
                  fimse
               //fimse
           //fimse
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

@Lauro Viana      esses erros são por que você não colocou alguns fimse , como já bem disse @Lucca Rodrigues   ,   e o visualG não informa exatamente o erro e nem sempre a linha onde existe um erro ,  mas ele diz que tem um erro e você é que precisa descobrir qual é ,  e seu código corrigido apenas para compilar poderia ser assim  :

Algoritmo "notas Alunos"
var
  notas                      : vetor[1..5] de real
  media     , maior , menor  : real
  nota1     , nota2 , n1, n2 : real
  cont_nota , cont_dis       : inteiro
  cont_mat  , cont_por       : inteiro
  cont_geo  , cont_fil       : inteiro
  cont_his  , cont_qui       : inteiro
  opc_dis   , opc_rep        : inteiro
  opc_nota  , i              : inteiro
  nota, maiornota, menornota : caractere
  log_nota                   : logico
inicio
  cont_nota := 0
  log_nota := verdadeiro
  enquanto log_nota faca
    cont_nota := cont_nota + 1
    escreva("Informe o nome do aluno: ")
    leia(nota)
    repita
      cont_dis := cont_dis + 1
      escreval("--------------------")
      escreval(" 1 - matemática     ")
      escreval(" 2 - portugues      ")
      escreval(" 3 - geografia      ")
      escreval(" 4 - Filosofia      ")
      escreval(" 5 - historia       ")
      escreval(" 6 - quimica        ")
      escreval("--------------------")
      escreva ("Informe qual a disciplina: ")
      leia (opc_dis)
      escolha opc_dis
      caso 1
        cont_mat := cont_mat // aqui não faz nada
      caso 2
        cont_por := cont_por // só perde tempo
      caso 3
        cont_geo := cont_geo // não precisa pois já eh igual
      caso 4
        cont_fil := cont_fil
      caso 5
        cont_his := cont_his
      caso 6
        cont_qui := cont_qui
      outrocaso
        escreval("Opção InváLida . . . !")
      fimescolha
      escreval("SISTEMA DE MÉDIAS")
      escreval("DIGITE A PRIMEIRA NOTA: ")
      leia(n1)
      escreval("DIGITE A SEGUNDA NOTA: ")
      leia(n2)
      media <- (n1 + n2 ) / 2
      se media >= 7 entao
        escreval("ALUNO APROVADO!")
      senao
        se media <= 3 entao
          escreval("ALUNO REPROVADO!")
        senao
          se media <= 5 entao
            escreval("ALUNO EM RECUPERAÇÃO...")
          fimse
        fimse
        se n1 > n2 entao
          maior := n1
        senao
          se n1 < n2 entao
            menor := n1
            se n2 > n1 entao
              maior := n2
            senao
              se n2 < n1 entao
                menor := n2
              fimse
            fimse
            escreval
            escreval("A média do(a) aluno(a) é ------: ", media)
            escreval("A maior nota do(a) aluno(a) é -: ", maior)
            escreval("A menor nota do(a) aluno(a) é -: ", menor)
            escreva ("Deseja informar outra disciplina? (1-Sim ou 2-Não): ")
            leia    (opc_rep)
            //RESUMO DA MEDIA
            escreval("====================================")
            escreval(nota)
            escreval("====================================")
            escreval("A média de matemática -: " ,    media)
            escreval("A média de português --: " ,    media)
            escreval("A média de geografia --: " ,    media)
            escreval("A média de filosofia --: " ,    media)
            escreval("A média de história ---: " ,    media)
            escreval("A média de química ----: " ,    media)
            escreval("====================================")
            escreval("A nota total: ",cont_nota," nota: ",cont_dis)
            escreval
            escreval
            escreva ("Deseja informar outro aluno? (1-Sim ou 2-Não)")
            leia (opc_nota)
            se opc_nota = 2 entao
              log_nota := falso
            fimse
          fimse
        fimse
      fimse
    ate opc_nota = 2
  fimenquanto
fimalgoritmo

mas seu código ficou muito longo , pois você está usando apenas variáveis simples , que só podem armazenar um dado nela , e então se você puder / quiser / souber , use vetores ou matrizes , que são um tipo de variáveis que podem armazenar muitos dados nela ,  e também use procedimento e funções , que fazem aquela parte do código que se repete muitas vezes , tornando assim o código bem mais reduzido .

  • Curtir 1
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...