Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Wenzer Almeida

VisualG Usando vetores em função

Recommended Posts

Postado (editado)

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

Editado por Wenzer Almeida
erro no code
  • 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






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

×