Johnny Willer 0 Denunciar post Postado Julho 26, 2011 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
guidjos 65 Denunciar post Postado Julho 27, 2011 Se você quer manter o limite de 50 elementos, incremente um contador a cada leitura. Depois, para imprimir cada valor lido, decremente o contador e pare em 0. Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Willer 0 Denunciar post Postado Julho 27, 2011 É 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
guidjos 65 Denunciar post Postado Agosto 1, 2011 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
Johnny Willer 0 Denunciar post Postado Agosto 3, 2011 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