Ir ao conteúdo
  • Cadastre-se
Wenzer Almeida

VisualG Usando vetores em função

Recommended Posts

Eu queria usar um vetor como uma variável em uma função, mas as estrutura que eu tentei davam erro. Qual é a estrutura correta?

 Funcao Verificador(Vet:vetor[1..5] de caractere):inteiro
   var R,A:inteiro
   inicio
   Para A<-1 ate 5
        Se (Res[A] = Gab[A]) então
           R<-R+1
   Fimpara
     retorne R
   FimFuncao

PS:faltou eu digitar o FimSe, faca

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Wenzer Almeida.

 

Sobre:

21 horas atrás, Wenzer Almeida disse:

Eu queria usar um vetor como uma variável em uma função, mas as estrutura que eu tentei davam erro. Qual é a estrutura correta?

Que eu saiba não é possível passar um vetor por parâmetro no Visualg. Ai teria que usar o vetor diretamente da variável global.

 

Obs.: no seu exemplo, você colocou na assinatura o vetor vet, mas não está usando dentro função.


No aguardo.

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas E ae, quanto tempo? Então, eu refiz o algoritmo usando outra coisa que agora não me vem agora a cabeça. Sobre o vetor vet, no algoritmo original ele está  como vet em toda a função, no entanto nem reparei que copiei errado, pois eu copiei todo o algoritmo "a mão".

algoritmo "semnome"
var
   Gab:vetor[1..5] de caractere
   An:vetor[1..3] de caractere
   QA1:vetor[1..5] de caractere
   QA2:VETOR[1..5] de caractere
   QA3:vetor[1..5] de caractere
   TotalA:vetor[1..3] de inteiro
   C:inteiro
   Funcao Verificador(V:caractere):inteiro
   var R,A:inteiro
   inicio
        Se (V = Gab[C]) então
           R<-R+1
        FimSe
     retorne R
   FimFuncao
inicio
      ESCREVAL("=======================")
      ESCREVAL("ANALISADOR DE GABARITOS")
      ESCREVAL("=======================")
      ESCREVAl("Gabarito")
      Para C<-1 ate 5 faca
      Escreva("QUESTÃO ",C,": ")
      LEIA(Gab[C])
      Fimpara
      Limpatela
      ESCREVA("Aluno 1:")
      LEIA(An[1])
      Limpatela
      ESCREVAL("Aluno ",An[1])
      Para C <- 1 ate 5 faca
      ESCREVA("Resposta questão nº",C" ")
      LEIA(QA1[C])
      Fimpara
      Limpatela
      ESCREVA("Aluno 2:")
      LEIA(An[2])
      Limpatela
      ESCREVAL("Aluno ",An[2])
      Para C <- 1 ate 5 faca
      ESCREVA("Resposta questão nº",C)
      LEIA(QA2[C])
      Fimpara
      Limpatela
      ESCREVA("Aluno 3:")
      LEIA(An[3])
      Limpatela
      ESCREVAL("Aluno ",An[3])
      Para C <- 1 ate 5 faca
      ESCREVA("Resposta questão nº",C)
      LEIA(QA3[C])
      Fimpara
      Para C<- 1 ATE 5 faca
           TotalA[1]<-TotalA[1]+Verificador(QA1[C])
      Fimpara
      Para C<- 1 ATE 5 faca
           TotalA[2]<-TotalA[2]+Verificador(QA2[C])
      Fimpara
      Para C<- 1 ATE 5 faca
           TotalA[3]<-TotalA[3]+Verificador(QA3[C])
      Fimpara
      lIMPATELA
      ESCREVAL("Resultado: ")
      ESCREVAL("Aluno ",An[1],",nota",TotalA[1]*2)
      ESCREVAL("Aluno ",An[2],",nota",TotalA[2]*2)
      ESCREVAL("Aluno ",An[3],",nota",TotalA[3]*2)

fimalgoritmo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

@Wenzer Almeida, em relação a esse código, o que está ocorrendo? tem alguma dúvida?

adicionado 4 minutos depois

 

Outra coisa, por que não está utilizando laços de repetição para os Alunos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Wenzer Almeida, tomei como base seu código e fiz algumas modificações para servi como exemplo, veja:

algoritmo "FCdH"
var
   gabaritoOficial :vetor[1..5] de caractere
   nomeAlunos      :vetor[1..3] de caractere
   gabaritoAlunos  :vetor[1..3,1..5] de caractere

procedimento LerGabaritoOficial()
   var
      i :inteiro
   inicio
   escreval("*** Gabarito ***")
   para i de 1 ate 5 faca
      escreva("QUESTÃO",i,": ")
      leia(GabaritoOficial[i])
   fimPara
   fimProcedimento

procedimento LerGabaritoAluno(codAluno:inteiro)
   var
      i :inteiro
   inicio
   escreval("Aluno: ",nomeAlunos[codAluno])
   para i de 1 ate 5 faca
      escreva ("Resposta questão nº",i,": ")
      leia(gabaritoAlunos[codAluno,i])
   fimPara
   fimProcedimento

procedimento LerDadosAluno()
   var
      i :inteiro
   inicio
   para i de 1 ate 3 faca
      escreva ("Nome do Aluno",i,": ")
      leia(nomeAlunos[i])
      limpaTela
      LerGabaritoAluno(i)
      limpaTela
   fimPara
   fimProcedimento
   
funcao ConferirGabarito(codAluno:inteiro):inteiro
   var
      qtdCertas :inteiro
      i         :inteiro
   inicio
   qtdCertas <- 0
   para i de 1 ate 5 faca
      se GabaritoAlunos[codAluno,i] = GabaritoOficial[i] ENTÃO
         qtdCertas <- qtdCertas+1
      fimSe
   fimPara
   retorne qtdCertas
   fimFuncao

procedimento ResultadoFinal()
   var
      i :inteiro
   inicio
   para i de 1 ate 3 faca
      escreval("Aluno : ",nomeAlunos[i])
      escreval("Nota  :",ConferirGabarito(i))
      escreval()
   fimPara
   fimProcedimento

inicio
escreval("=======================")
escreval("ANALISADOR DE GABARITOS")
escreval("=======================")
LerGabaritoOficial()
limpaTela
LerDadosAluno()
limpaTela
ResultadoFinal()
fimalgoritmo

 

No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×