Vetor ilimitado

Delphi

30/10/2012

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.
Jose Junior

Jose Junior

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

30/10/2012

É Virtualg ou VisuAlg?
GOSTEI 0
Bruno Leandro

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;
GOSTEI 0
Jose Junior

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

Jose Junior

30/10/2012

é virtualg ou visualg?

e Visualg programa em portugol pra aprender algoritmo. n tem banco tem q ser com vetores.


Não consegui ainda!
GOSTEI 0
Joel Rodrigues

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.
GOSTEI 0
Anderson

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
GOSTEI 0
Anderson

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


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
POSTAR