Ir ao conteúdo
  • Cadastre-se
PeroVaz

VisualG Erro programa no Visualg

Recommended Posts

Galera, alguém pode rodar esse programa no Visualg 3.0 e me ajudar a resolver esse erro do qual não estou entendendo?

É um trabalho de faculdade, disciplina Algoritmos II.

PS: ainda não terminei o programa.

 

Algoritmo "APS"
//resgistro do campo aluno
tipo
   aluno = registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimregistro
   //variaveis globais
var
   pessoa: vetor[1..5] de aluno
   i:inteiro
   valordigitado:inteiro
   opcao:inteiro
   aux_pes:inteiro
   resp:inteiro
//FUNÇÃO PESQUISA SEQUENCIAL SIMPLES
funcao func_pes(x:inteiro):inteiro
var
   resposta,j:inteiro
inicio
   para j de 1 ate 5 faca
      se(pessoa[j].identificador = x) então
         resposta <- 1
      senao
         resposta <- 0
      fimse
      retorne resposta
fimfuncao
//INICIO DO PROGRAMA
inicio
   repita
      escreval("UNICARIOCA - BANCO DE DADOS")
      escreval
      escreval("[1] - ADICIONAR")
      escreval("[2] - PESQUISAR")
      escreval("[3] - ORDENAR")
      escreval("[4] - EXIBIR")
      escreval("[0] - SAIR")
      escreval
      escreva("Opção: ")
      leia(valordigitado)
      escolha valordigitado
      //ADICIONAR USUARIO
      caso 1
         repita
            i<-i+1
            Escreval("UNICARIOCA - BANCO DE DADOS")
            escreval("ADICIONAR USUARIO")
            escreval
            escreva("Digite seu identificador: ")
            leia(pessoa.identificador)
            escreva("Digite aqui seu nome: ")
            leia(pessoa.nome)
            escreva("Digite aqui sua idade: ")
            leia(pessoa.idade)
            escreva("Digite aqui seu sexo: ")
            leia(pessoa.sexo)
            escreval
            escreval("PARABÉNS,USUARIO CADASTRADO!")
            escreval
            escreval("[1] - Para continuar adicionando")
            escreval("[2] - Para voltar ao menu usuario")
            leia(opcao)
            limpatela
         ate opcao = 2
         limpatela
      caso 2
         repita
            escreval("Digite aqui o identificador que deseja pesquisar: ")
            leia(resp)
            aux_pes <- func_pes(resp)
            se aux_pes = 1 então
               escreva("Usuario já existe")
            senao
               escreva("Usario não existe")
            fimse
            escreval
            escreval("[1] - Para continuar pesquisando")
            escreval("[2] - Para voltar ao menu usuario")
            leia(opcao)
            limpatela
         ate opcao = 2
      fimescolha
   ate valordigitado = 0
fimalgoritmo

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @PeroVaz.

 

1 hora atrás, PeroVaz disse:

[...] me ajudar a resolver esse erro do qual não estou entendendo?


Por favor, especifique qual erro está dando...

No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, PeroVaz disse:

@Simon Viegas Agradeço, mas após de longas 3 horas tentando resolver eu consegui. 

@PeroVaz Poste o código por favor? Ainda não aprendi a usar "tipo", mas o seu código me alertou sobre. Caso consiga explicar agradeceria, valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, PeroVaz disse:

@Simon Viegas Agradeço, mas após de longas 3 horas tentando resolver eu consegui. 

Por favor, poste seu código para analisarmos e também servi de base para outro usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Sobre:

39 minutos atrás, Niê disse:

Ainda não aprendi a usar "tipo", mas o seu código me alertou sobre.


Antes, dê uma pesquisa sobre tipos de dados.

Então, a declaração de tipos (types) nada mais é que a definição de tipos personalizados, ou seja, a linguagem de programação já define por padrão alguns tipos básicos... especialmente os mais utilizados, como números inteiros (inteiro), números reais (real), cadeia de caracteres (caracter), dados booleanos, ou seja, com apenas duas possibilidades (logico) etc. Daí, basta usá-los.

A depender do contexto, se faz necessário uso de tipos personalizados.. no exemplo do tópico teríamos algo como

   pessoa: vetor[1..5] de registro
                            identificador:inteiro
                            nome:caractere
                            idade:caractere
                            sexo:caractere
                          fimRegistro

Perceba que registro (record) seria um tipo de dado especial que possibilita "agrupar mais de uma variável"...  é como um vetor... que possibilidade definir algumas características personalizadas também... Veja nesse link um exemplo de comparação entre vetores e registro (lá é chamado de struct, mas são análogos).


No caso do Visualg, esse código acima não funciona (a ideia está certa, o Visualg é que não aceita dessa forma). Aí se faz necessário criar um novo tipo... quer seria justamente o que está precisando:

 

tipo
   aluno = registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimregistro

Ou seja, onde eu usar aluno o compilador vai entender que é um "registro" (e este registro com essas característica).


Perceba que além de organizar, já que a definição do tipo fica separada... daria para reutilizar... por exemplo, vamos supor que eu não queira usar vetor, mas apenas declarar variáveis simples. Ficaria algo assim:

var
  pessoa1 :registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimRegistro

   pessoa2 :registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimRegistro

   pessoa3 :registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimRegistro

Obs.: lembrado que o Visualg não aceita fazendo assim... (por questão de limitação da linguagem ou característica da ferramenta), mas a lógica seria essa.

 

Daí, usando tipos, poderia ficar assim:

tipo
   aluno = registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimRegistro

var
   pessoa1 :aluno
   pessoa2 :aluno
   pessoa3 :aluno
inicio

fimalgoritmo

Ou assim:

tipo
   aluno = registro
      identificador:inteiro
      nome:caractere
      idade:caractere
      sexo:caractere
   fimRegistro

var
   pessoa1, pessoa2, pessoa3 :aluno


Resumidamente o tipo serve para definir tipos personalizados... mas acho que não precisa se preocupar muito, pois a medida que vai tendo contato, vai se familiarizando.

 

Veja, se estiver estudando num curso, provavelmente lá existe uma cronologia de estudo... se ainda não deu tipo ou registro, é porque ainda não chegou a hora, ou seja, os exercícios propostos não devem ser feito com recursos que ainda não foram estudados, pelo contrário, os exercício são voltados para aquilo que está estudando ou já estudou... ou que quer que você estude. Entende?
 

 

  • Amei 1

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

×