Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Johnny Willer

Como representar nulo em pascal

Recommended Posts

Ae pessoal, fazia um tempinho que eu nao entrava no forum, mas fui obrigado a dar uma passadinha aqui pra tirar uma duvida que nao consigo resolver: Eu fiz um algoritmo em pascal que em certo trecho ele tem que mostrar 50 valores na tela. Eu fiz um vetor obviamente de 50 posições para receber alguns valores, porém no programa não é acrescentado os 50 valores na hora, o usuario pode incluir o tanto que quiser, apenas limitando-se a 50. Depois eu queria que o programa exibisse os valores das variaveis, porém queria que mostrasse apenas as variáveis com algum valor real, mas o programa exibe as variaveis em branco, o que fica meio ruim.

A questão é: COMO FAÇO PARA O PROGRAMA EXIBIR APENAS AS VARIAVEIS QUE CONTÉM ALGUM VALOR?? JA TENTEI USAR O "NIL", MAS ELE SO FUNCIONA COM PONTEIROS, NO CASO AQUI EU QUERO EM UM VETOR NORMAL DE 50 POSIÇÕES. OBRIGADO

Compartilhar este post


Link para o post
Compartilhar em outros sites

É eu pensei nisso, só que eu queria adicionar valores em posições variadas do vetor, ai não seria possivel usar um contador teria que usar um para de 1 a 50 que escrevesse todos os valores não nulos. quando eu escrevia isso em portugol eu colocava:

para i de 1 ate 50 faca
  se vnomes[i] <> "" entao
      escreva (vnomes[i])
  fimse
fimpara

porem no pascal não funciona isso, como eu poderia representar isso??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que você está trabalhando com strings. Se este for o caso, é trivial: armazene uma string vazia na posição do vetor em que não quiser armazenar valor significativo. Você pode verificar se uma string é vazia usando a função ord() em seu primeiro índice (que contém seu comprimento), ou a função length() sobre o nome da string em si. Outra alternativa é comparar com uma string vazia.

 

Se estiver armazenando valores numéricos, você não tem muita escolha: precisa usar algum valor que não faça parte do conjunto possível de valores de entrada para sinalizar 'vazio', ou então utilizar um vetor auxiliar, de 50 posições, que contenha os índices do vetor original que contêm valores válidos. Outra possibilidade é trabalhar com um vetor de ponteiros, cujos valores iniciais devem ser todos nulos, e alocar memória e atribuir valores conforme a entrada fornecida. Ao percorrer o vetor para impressão, o teste trivial de 'não-nulo' faria com que só as posições populadas fossem impressas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guidjos valeu!, ainda não tive tempo de testar mais acho que vai dar certo, eu vou comparar o vetor com uma variavel nula, assim todas a posições não ocupadas não aparecerão.

Não sei como não pensei nisso antes, brigadão :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.