ron_lima
(usa Slackware)
Enviado em 13/03/2009 - 08:09h
Pela sua dúvida, seu problema não é a linguagem C++, mas algo um pouco anterior: algoritmos e estruturas de dados. Ficou claro para mim que você não entendeu completamente como funciona um vetor e como acessar os dados salvos nele. Permita-me discorrer um pouco sobre o assunto.
O termo "vetor" é matematicamente incorreto para a estrutura de dados que estamos tratando. Em verdade, o correto seria "conjunto" e "vetor" é um erro de tradução que popularizou-se no meio brasileiro. Imagine que o vetor nada mais é que um agrupamento de elementos, onde cada elemento é obrigatoriamente do mesmo tipo. Portanto, um vetor de números inteiros só poderá conter números inteiros. Um vetor de caracteres só conterá caracteres, e assim por diante.
Cada elemento do vetor é identificado por um número inteiro, ao qual chamamos de índice. Em linguagens como C e C++, o índice de um vetor é dado pela seguinte regra (usando a linguagem matemática de intervalos):
índice = [0, tamanho do vetor[
Isso significa dizer que o índice varia de zero até o tamanho do vetor menos um. Portanto, se quisermos carregar um vetor com dados, é necessário acessar cada um dos seus elementos, independentemente. Veja o algoritmo:
Algoritmo
Declare
a : vetor [10] numérico;
i : numérico;
Para i = 0 até 9 Faça
a [i] <- 0;
Fim-para;
Fim-algoritmo.
Este pequeno algoritmo preenche o vetor "a" com o número zero, em todas as posições. Observe o uso da variável "i", que foi utilizada como indexador do vetor, ou seja, os valores de "i" indicam qual elemento foi referenciado. Portanto, se "i" for igual a 1, a [i] é um acesso ao elemento indexado por 1 dentro do vetor, ou seja, o segundo elemento, lembrando que os vetores em C e C++ são indexados à partir de zero.
Conforme dito, o indexador é utilizado sempre que precisamos acessar um elemento do conjunto representado pelo vetor. Para procurar por um item dentro do vetor, você faria algo assim:
Algoritmo
Declare
a: vetor[10] numérico;
i: numérico;
v: numérico;
Leia v;
Para i = 0 até 10 Faça
Se i = v Então
Escreva "Achei o valor";
Pare;
Fim-se;
Fim-para;
Fim-algoritmo.
Este algoritmo lê um valor "v" pela entrada padrão (teclado) e procura pelo valor dentro do vetor "a". Aqui presume-se que "a" foi previamente preenchido com valores válidos. Este método de pesquisa é conhecido como método linear e tem complexidade O(n). É um método ruim de pesquisa, em outras palavras, mas que para quantidades suficientemente pequenas de dados equipara-se em performance a métodos com complexidade O(n log n).
Bem, depois de esclarecida a questão dos vetores, escrever o algoritmo que resolva o seu problema em C++ torna-se uma tarefa trivial. Lembre-se, no entanto, que saber uma linguagem de programação não significa que você sabe programar. Programação envolve análise, modelamento e equacionamento de problemas reais. Escrever o código que resolva o problema é a última coisa que você fará enquanto programador.
Espero ter podido contribuir com a resolução da sua dúvida.