Vetor ilimitado
Sei que aqui e delphi mais preciso de uma ajudinha.
Preciso fazer um cadastro no virtualg, tem que ser ilimitado, pensei em vetor mais como fazer um vetor ilimitado.
Preciso fazer um cadastro no virtualg, tem que ser ilimitado, pensei em vetor mais como fazer um vetor ilimitado.
Jose Junior
Curtidas 0
Respostas
Joel Rodrigues
30/10/2012
É Virtualg ou VisuAlg?
GOSTEI 0
Bruno Leandro
30/10/2012
Ola faz assim, cria uma variavel
variavel = Array of Integer;
e quando voce for usar para zerar utilize o setlength
Ex
SetLength(variavel,0);
ai quando tiver adicionando voce vai incrementando
SetLength(variavel,Length(variavel)+1);
e para definir um valor voce pode colocar
variavel[Length(variavel)-1] := 1;
variavel = Array of Integer;
e quando voce for usar para zerar utilize o setlength
Ex
SetLength(variavel,0);
ai quando tiver adicionando voce vai incrementando
SetLength(variavel,Length(variavel)+1);
e para definir um valor voce pode colocar
variavel[Length(variavel)-1] := 1;
GOSTEI 0
Jose Junior
30/10/2012
É Virtualg ou VisuAlg?
E virtualg programa em portugol pra aprender algoritmo. n tem banco tem q ser com vetores.
GOSTEI 0
Jose Junior
30/10/2012
é virtualg ou visualg?
e Visualg programa em portugol pra aprender algoritmo. n tem banco tem q ser com vetores.
e Visualg programa em portugol pra aprender algoritmo. n tem banco tem q ser com vetores.
Não consegui ainda!
GOSTEI 0
Joel Rodrigues
30/10/2012
Opa, Bruno, isso aí que você passou é em Delphi e o amigo está com dúvida no tal Virtualg.
DigitalMan, pesquise sobre como fazer dimensionamento dinâmico de vetores no tal Virtualg. Assim, a cada novo elemento, você aumenta em uma unidade a capacidade do vetor.
DigitalMan, pesquise sobre como fazer dimensionamento dinâmico de vetores no tal Virtualg. Assim, a cada novo elemento, você aumenta em uma unidade a capacidade do vetor.
GOSTEI 0
Anderson
30/10/2012
Pelo menos até a versão atual do VisuAlg (3.0.6.5) não existe a possibilidade de declarar um vetor dinâmico, pois a seção de declarações de variável é fixa e não permite declarar variáveis durante a execução do programa, apenas no início. Porém, você pode escrever o seu vetor dentro de uma função ou procedimento, criando-o através de uma constante que é alimentada por uma variável global.
Segue o exemplo, espero ter ajudado.
Algoritmo "Registro em vetor dinâmico"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Anderson Davyd Andrade de Souza
// Descrição : Exemplo de vetor dinâmico em cadastro de pessoa
// Autor(a) : Anderson Davyd Andrade de Souza
// Data atual : 19/07/2018
tipo
pessoas = registro
id:inteiro
idade:inteiro
altura:real
peso:real
sexo:caracter
nome:caractere
fimregistro
Var
// Seção de Declarações das variáveis
quantidade:inteiro
procedimento executar()
const q = quantidade
var
i:inteiro
pessoa:vetor[1..q] de pessoas
inicio
para i de 1 ate quantidade faca
pessoa[i].id <- i
escreval("===== PESSOA N°",i," =====")
escreval("")
escreva("Nome: ")
leia(pessoa[i].nome)
escreva("Idade: ")
leia(pessoa[i].idade)
escreva("Sexo(M/F): ")
leia(pessoa[i].sexo)
escreva("Altura: ")
leia(pessoa[i].altura)
escreva("Peso: ")
leia(pessoa[i].peso)
limpatela
fimpara
para i de 1 ate quantidade faca
escreval("")
escreval("===== PESSOA N°",pessoa[i].id," =====")
escreval("")
escreval("Nome: ",pessoa[i].nome)
escreval("Idade: ",pessoa[i].idade," ANOS" )
escreval("Sexo: ",maiusc(pessoa[i].sexo))
escreval("Altura: ",pessoa[i].altura)
escreval("Peso: ",pessoa[i].peso,"KG")
fimpara
fimprocedimento
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("*** CADASTRO DE PESSOAS ***")
escreval("")
escreva("Quantas pessoas deseja cadastrar: ")
leia(quantidade)
limpatela
executar()
Fimalgoritmo
Segue o exemplo, espero ter ajudado.
Algoritmo "Registro em vetor dinâmico"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Anderson Davyd Andrade de Souza
// Descrição : Exemplo de vetor dinâmico em cadastro de pessoa
// Autor(a) : Anderson Davyd Andrade de Souza
// Data atual : 19/07/2018
tipo
pessoas = registro
id:inteiro
idade:inteiro
altura:real
peso:real
sexo:caracter
nome:caractere
fimregistro
Var
// Seção de Declarações das variáveis
quantidade:inteiro
procedimento executar()
const q = quantidade
var
i:inteiro
pessoa:vetor[1..q] de pessoas
inicio
para i de 1 ate quantidade faca
pessoa[i].id <- i
escreval("===== PESSOA N°",i," =====")
escreval("")
escreva("Nome: ")
leia(pessoa[i].nome)
escreva("Idade: ")
leia(pessoa[i].idade)
escreva("Sexo(M/F): ")
leia(pessoa[i].sexo)
escreva("Altura: ")
leia(pessoa[i].altura)
escreva("Peso: ")
leia(pessoa[i].peso)
limpatela
fimpara
para i de 1 ate quantidade faca
escreval("")
escreval("===== PESSOA N°",pessoa[i].id," =====")
escreval("")
escreval("Nome: ",pessoa[i].nome)
escreval("Idade: ",pessoa[i].idade," ANOS" )
escreval("Sexo: ",maiusc(pessoa[i].sexo))
escreval("Altura: ",pessoa[i].altura)
escreval("Peso: ",pessoa[i].peso,"KG")
fimpara
fimprocedimento
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("*** CADASTRO DE PESSOAS ***")
escreval("")
escreva("Quantas pessoas deseja cadastrar: ")
leia(quantidade)
limpatela
executar()
Fimalgoritmo
GOSTEI 0
Anderson
30/10/2012
Pelo menos até a versão atual do VisuAlg (3.0.6.5) não existe a possibilidade de declarar um vetor dinâmico, pois a seção de declarações de variável é fixa e não permite declarar variáveis durante a execução do programa, apenas no início. Porém, você pode escrever o seu vetor dentro de uma função ou procedimento, criando-o através de uma constante que é alimentada por uma variável global.
Segue o exemplo, espero ter ajudado.
Algoritmo "Registro em vetor dinâmico"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Anderson Davyd Andrade de Souza
// Descrição : Exemplo de vetor dinâmico em cadastro de pessoa
// Autor(a) : Anderson Davyd Andrade de Souza
// Data atual : 19/07/2018
tipo
pessoas = registro
id:inteiro
idade:inteiro
altura:real
peso:real
sexo:caracter
nome:caractere
fimregistro
Var
// Seção de Declarações das variáveis
quantidade:inteiro
procedimento executar()
const q = quantidade
var
i:inteiro
pessoa:vetor[1..q] de pessoas
inicio
para i de 1 ate quantidade faca
pessoa[i].id <- i
escreval("===== PESSOA N°",i," =====")
escreval("")
escreva("Nome: ")
leia(pessoa[i].nome)
escreva("Idade: ")
leia(pessoa[i].idade)
escreva("Sexo(M/F): ")
leia(pessoa[i].sexo)
escreva("Altura: ")
leia(pessoa[i].altura)
escreva("Peso: ")
leia(pessoa[i].peso)
limpatela
fimpara
para i de 1 ate quantidade faca
escreval("")
escreval("===== PESSOA N°",pessoa[i].id," =====")
escreval("")
escreval("Nome: ",pessoa[i].nome)
escreval("Idade: ",pessoa[i].idade," ANOS" )
escreval("Sexo: ",maiusc(pessoa[i].sexo))
escreval("Altura: ",pessoa[i].altura)
escreval("Peso: ",pessoa[i].peso,"KG")
fimpara
fimprocedimento
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("*** CADASTRO DE PESSOAS ***")
escreval("")
escreva("Quantas pessoas deseja cadastrar: ")
leia(quantidade)
limpatela
executar()
Fimalgoritmo
Segue o exemplo, espero ter ajudado.
Algoritmo "Registro em vetor dinâmico"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Anderson Davyd Andrade de Souza
// Descrição : Exemplo de vetor dinâmico em cadastro de pessoa
// Autor(a) : Anderson Davyd Andrade de Souza
// Data atual : 19/07/2018
tipo
pessoas = registro
id:inteiro
idade:inteiro
altura:real
peso:real
sexo:caracter
nome:caractere
fimregistro
Var
// Seção de Declarações das variáveis
quantidade:inteiro
procedimento executar()
const q = quantidade
var
i:inteiro
pessoa:vetor[1..q] de pessoas
inicio
para i de 1 ate quantidade faca
pessoa[i].id <- i
escreval("===== PESSOA N°",i," =====")
escreval("")
escreva("Nome: ")
leia(pessoa[i].nome)
escreva("Idade: ")
leia(pessoa[i].idade)
escreva("Sexo(M/F): ")
leia(pessoa[i].sexo)
escreva("Altura: ")
leia(pessoa[i].altura)
escreva("Peso: ")
leia(pessoa[i].peso)
limpatela
fimpara
para i de 1 ate quantidade faca
escreval("")
escreval("===== PESSOA N°",pessoa[i].id," =====")
escreval("")
escreval("Nome: ",pessoa[i].nome)
escreval("Idade: ",pessoa[i].idade," ANOS" )
escreval("Sexo: ",maiusc(pessoa[i].sexo))
escreval("Altura: ",pessoa[i].altura)
escreval("Peso: ",pessoa[i].peso,"KG")
fimpara
fimprocedimento
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("*** CADASTRO DE PESSOAS ***")
escreval("")
escreva("Quantas pessoas deseja cadastrar: ")
leia(quantidade)
limpatela
executar()
Fimalgoritmo
Quando for possível utilizar ponteiros no VisuAlg, poderá fazer uso de um conceito chamado 'lista encadeada', onde nem precisará de índice para gravar n registros, o próprio registro dará acesso ao anterior.
GOSTEI 0