Vetor

1. Vetor

Nei Picoli
picoli

(usa Outra)

Enviado em 18/12/2008 - 15:29h

Blz pessoal sou novo na comunidade, e gostaria de saber se alguém pode me ajudar...sei que ja comecei perguntando sem nada a oferecer mas conforme eu for dissolvendo minhas duvidas vou postando elas aqui, mas vamos direto ao assunto...

Estou com o seguinte problema em c++:
Preencher um vetor com 10 elementos. Ao preencher, verificar se o numero digitado ja existe no vetor.caso exista, não inserir novamente, senão inserir normalmente.

estou com muita dúvida nos contadores não sei por onde começar...desde já agradecido...



  


2. Re: Vetor

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

Enviado em 18/12/2008 - 19:02h

Cara, vou pular algumas coisas, só farei a parte da dúvida.

main ()
{
int vet[10];
int cont=0;
int i;

while (cont < 10)
{
d=<valor digitado>

for (i=0;i<=cont;i++)
{
if (i==cont)
{
vet[cont++]=d;
break;
}
else if (vet[i]==d) break;

}
}
}


ou

while (cont < 10)
{
d=<valor digitado>

for (i=0;i<cont;i++)
if (vet[i]==d) break;

if (i==cont) vet[cont++]=d;

}




3. Re: Vetor

Ronaldo Faria Lima
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.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts