Jump to content


Photo

Numeros Repetidos Em Vetor!


  • Faça o login para participar
9 replies to this topic

#1 Diegostf

Diegostf

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 22/10/2008, 18:46

Galera e o seguinte!

Alguem poderia me Ensinar como verificar se em um vetor ja esxiste um Numero e exibir a mensagen?

Exemplo:
um vetor de 10 Posiçoes, mando o Usurio Inserir os 10 Numeros!
se ele digitar um Numero que ja esta no veror!
exibir uma mensagen!
"O numero Ja foi Digitado"
e pedir para digirar novamente!


eu achei na net um pronto!! vejam!

vet:vetor[1..5]de inteiro
i,j,nlido,teste,igual:inteiro

inicio
PARA i DE 1 ATE 5 FACA

teste <- 1

enquanto (teste<>0) faca
escreva("Digite numero: ")
leia(vet[i])

igual <- 0

para j de 1 ate i faca
se ((vet[i]=vet[j]) e (i<>j)) entao
escreval("Esse numero ja foi digitado !")
igual<-1
fimse
fimpara

se (igual=0) entao
teste<-0
fimse

fimenquanto
FIMPARA



Mas ele pronto assim eu nao consigo intender!
nem para que serve essas variaveis, teste, igual ETC!
alguem poderia me ajudar a intender melhor como fazer??

#2 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 22/10/2008, 23:55

maninho, pensa que você já tem esse vetor
int dados[]; ( vetor de inteiros )

e o numero a ser verificado:
int verifica; (variavel para um inteiro );

a forma mais simples de você fazer isso é fazendo uma busca linear no vetor.
uma buscar linear seria uma busca numero por numero, do primeiro ao ultimo, ou do ultimo para o primeiro, mas tem que ser sempre assim, reta(linear), entre uma posição e outra.

let's go:
int dados[];int verificar;para j=0 até o tamanho do vetor -1 faça // usei 0 e tamanho -1 um para ficar mais proximo de uma linguagem de programação se dado[j] == verifica   Imprime "Opa, o danado esta na posicao j" fim sefim para

Edição feita por: Édipo Costa Rebouças, 22/10/2008, 23:58.


#3 Diegostf

Diegostf

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 23/10/2008, 10:48

maninho, pensa que você já tem esse vetor
int dados[]; ( vetor de inteiros )

e o numero a ser verificado:
int verifica; (variavel para um inteiro );

a forma mais simples de você fazer isso é fazendo uma busca linear no vetor.
uma buscar linear seria uma busca numero por numero, do primeiro ao ultimo, ou do ultimo para o primeiro, mas tem que ser sempre assim, reta(linear), entre uma posição e outra.

let's go:

int dados[];int verificar;para j=0 até o tamanho do vetor -1 faça // usei 0 e tamanho -1 um para ficar mais proximo de uma linguagem de programação se dado[j] == verifica   Imprime "Opa, o danado esta na posicao j" fim sefim para



Tipo assim Edipo!
eu consigo fazer se o vetor ja estiver com os numeros!
de uma olhada!!

vet:vetor[1..5]de inteiro
mlido,i:inteiro

vet[1] <- 10
vet[2] <- 20
vet[3] <- 30
vet[4] <- 40
vet[5] <- 50

escreva ("Digite um numero")
leia (nlido)

i <- 1

ENQUANTO (vet[i] = nlido) e (i < 5) FACA
i <- i + 1
FIMENQUANTO

Se vet[i] = nlido ENTAO
escreva ("O numero esta no vetor")
FIMSE



So que ai eu ja considerei que o vetor estava com os Numeros!
eu estou tentano tipo!
eu inserir 5 valores no vetor por Digito!
e se eu digitar um valor que ja digitei ele dar a MEnsagen!!

#4 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 23/10/2008, 12:30

então manunho continua a mesma coisa, mais, vamos dividir um pouco esse código, vou usar o conceito de função aqui.

[codebox]
função verificaVetor(int dados[]; int verificar)

para j=0 até o tamanho do vetor -1 faça // usei 0 e tamanho -1 um para ficar mais proximo de uma linguagem de programação

se dado[j] == verificar
retorna verdadeiro // retorna verdadeiro( true ) se achar o numero no vetor e encerra a função aqui.

fim se

fim para

retorna falso // se não achar nada, retorna falso

fim função verificaVetor
[/codebox]

Essa função recebe como parametro o vetor de dados e o inteiro a ser verificado.
Se achar alguma coisa ela retorna true, e quando ela retorna ela encerra a função, não tem mais loop, mais nada, é um padrão de linguagem de programação

Quando ele percorrer todo o loop e não achar nada, ela vai sair dele e retorna falso, avisando que o numero ainda não se encontra no vetor e encerrando a função por ai.

vamos usar essa função para nos ajudar a resolver o problema:
[codebox]

int dados[]; // vetor de dados
int verificar; // dado a ser verificado
int contador=0; //contador para nos auxiliar no enquanto ( while )

enquanto contador < 5 // aqui ele verifica se o contador é menor que 5( considerando 0 a 4 são 5 elementos )
leia(verificar)

se verificaVetor(dados, verificar) //Aqui ele manda o vetor e o dado digitado para rodar na função, sendo que a função retorna vedadeiro ou falso, o "SE" vai usar esse dado para executar ou não executar sua instrução (a mensagem de erro ) ou pular para o se não ( inserção de dados no vetor )
"epa, esse numero já existe neste vetor, tente outra boa sorte"

se não
dado[contador] = verificar; // inserção de dados no vetor com auxilo do contador como indice
contador = contador + 1; // aqui ele soma mais um ao contador depois de inserir o dado no vetor, sendo que quando o contador chegar a 5 o loop acaba.

fim se

fim enquanto
[/codebox]

Edição feita por: Édipo Costa Rebouças, 23/10/2008, 12:35.


#5 Diegostf

Diegostf

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 23/10/2008, 14:08

então manunho continua a mesma coisa, mais, vamos dividir um pouco esse código, vou usar o conceito de função aqui.

função verificaVetor(int dados[]; int verificar)   para j=0 até o tamanho do vetor -1 faça // usei 0 e tamanho -1 um para ficar mais proximo de uma linguagem de programação    se dado[j] == verificar       retorna verdadeiro // retorna verdadeiro( true ) se achar o numero no vetor e encerra a função aqui.         fim se   fim para   retorna falso // se não achar nada, retorna falsofim função verificaVetor

Essa função recebe como parametro o vetor de dados e o inteiro a ser verificado.
Se achar alguma coisa ela retorna true, e quando ela retorna ela encerra a função, não tem mais loop, mais nada, é um padrão de linguagem de programação

Quando ele percorrer todo o loop e não achar nada, ela vai sair dele e retorna falso, avisando que o numero ainda não se encontra no vetor e encerrando a função por ai.

vamos usar essa função para nos ajudar a resolver o problema:
int dados[]; // vetor de dadosint verificar; // dado a ser verificadoint contador=0; //contador para nos auxiliar no enquanto ( while )enquanto contador < 5 // aqui ele verifica se o contador é menor que 5( considerando 0 a 4 são 5 elementos )    leia(verificar)         se verificaVetor(dados, verificar) //Aqui ele manda o vetor e o dado digitado para rodar na função, sendo que a função retorna vedadeiro ou falso, o "SE" vai usar esse dado para executar ou não executar sua instrução (a mensagem de erro ) ou pular para o se não  ( inserção de dados no vetor )      "epa, esse numero já existe neste vetor, tente outra boa sorte"   se não      dado[contador] = verificar; // inserção de dados no vetor com auxilo do contador como indice      contador = contador + 1; // aqui ele soma mais um ao contador depois de inserir o dado no vetor, sendo que quando o contador chegar a 5 o loop acaba.       fim sefim enquanto



Edipo se nao for te pedir muito sera que voce poderia Digitar em Portugues?
igual eu digitei acima?
hehe e que nao intendo muito esta linguagem que voce digitou!!
Obrigado!

#6 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 23/10/2008, 14:43

tipo diego eu nunca escrevi em portuguÊs estruturado, o maximo que consegui foi isso, o que ao meu ver esta bem proximo do que você esta colocando ai... me fala que parte você não esta conseguindo entender.

por favor não use a opção citar, como é só eu e vc por enquanto, não precisa disso;

só comparando você usa isso <- para atribuir valor a uma variavel, eu uso isso =
para comparar se é igual você usa isso =, eu uso isso ==
para comparar se é diferente eu acho que você usa <>, eu uso isso !=

para mostra que uma variavel é inteiro eu uso int variavel, você usa variavel:Inteiro

sendo que int h, i, j é igual a h, i ,j :Inteiro

Edição feita por: Édipo Costa Rebouças, 23/10/2008, 14:50.


#7 Diegostf

Diegostf

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 23/10/2008, 16:46

A sim Obrigado por explicar os Sinais eu nao tinha entendido!
e nao entendi esta parte


se verificaVetor(dados, verificar)


eu nao entendi oq isso significa e nem
como escrever isso em portugues rsrsrs ;D

Edição feita por: Diegostf, 23/10/2008, 16:47.


#8 Édipo Costa Rebouças

Édipo Costa Rebouças

    Veterano

  • Ex-Admins
  • 1079 posts
  • Sexo:Masculino
  • Localidade:Brasil - São Paulo

Posted 23/10/2008, 20:12

considerano i uma varivel

se i < 8

a expressão i < 8 retorna true( verdade ) ou false ( falso ) dependendo do valor da variavel i para o "SE", se a expressão for verdadeira ele executa o que esta no "SE", caso contrario ele executa o que esta no "SE NÃO", se não tiver um "SE NÃO", o proximo código depois do termino do "SE" é executado.

da mesma forma verificaVetor(dados, verificar) vai retorna true ou false, conforme o algoritimo que esta no primeiro código. dados e verificar são respectivamente o vetor e o numero a ser verificado que a função verificaVetor ultiliza no seu algoritimo. Eles não precisariam ter os mesmo nomes, mas só seguir as mesmas posições que estão indicados no ( ) do primeiro código.

Eu usei esse conceito de função pois ajuda a enteder melhor o código, e caso você precise usar a mesma coisa em outro algoritimo, vai ser só copiar e colar.

Eu vou dar um exemplo mais simples que esse de função para você entender melhor. ele vai ajudar a gente imprimir um lista de nomes e RGs com uma numeração do lado.

a nomeclatura String(inglês), quer dizer Cadeia de Caracteres ou de uma forma mais simples um texto qualquer.

função imprimirAluno( int Numeção, String Nome, String RG)      Imprimir  Numerção + " nome: " + Nome + " RG: " + RG + pular uma linha;fim imprimirCabeçalho

agora vou escrever um código que usa essa função.

String aluno[0] = "Carlos Daniel" String aluno[1] = "Daniel Carlos " String aluno[2] = "Carlos Porrete" String aluno[3] = "Carlos CuZino" String aluno[4] = "Carlos ziNocu"String rg[0] = "111111111";String rg[1] = "222222222";String rg[2] = "333333333";String rg[3] = "444444444";String rg[4] = "555555555";para int i = 0 até 4 faça  imprimirAluno(i+1, aluno[i], rg[i] );/* Aqui é passado esses valores como parametro para a função imprimirAluno(), os valores colocados aqui, ficaram no lugar dos valores declarados lá ná função,aquele algoritmo é vai rodar com os variaveis com os valores declarados aqui , int Numeção = i+1, String Nome = aluno[i]  e String RG = rg[i]. A função dessa função(que redundante não), melhor dizendo o que elá faz é imprimir os valores que foram passados para ela, diferente da verificaVetor, que faz uma pequena logica e retorna verdadeiro ou falso. */fim para

a saida na tela desse algoritimo seria isso:

1 nome: Carlos Daniel RG: 111111111
2 nome: Daniel Carlos RG: 222222222
3 nome: Carlos Porrete RG: 333333333
4 nome: Carlos CuZino RG: 444444444
5 nome: Carlos ziNocu RG: 555555555

Tomara que á ideia de função tenha ficada um pouco mais clara para você

Edição feita por: Édipo Costa Rebouças, 23/10/2008, 20:55.


#9 Tux_Flash

Tux_Flash

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 18/09/2009, 13:32

é o seguinte galera, eu precisava de um vetor que conta o numero que mais foi repetido.
exemplo o numero 5 foi inserido 10 vezes e coi mais repitido que os outros, então o vetor tem que guardar a qntidade de vezes que ele foi repetido. quem souber favor me enviar por email!!!
wsouza9@gmail.com

#10 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 18/09/2009, 16:41

Primeiro, ninguém fara as coisas por você, apresente códigos já feitos, e tentaremos ajudar

Depois, o tópico é antigo (2008), você poderia ter criado outro pra sua dúvida =x
Não sabe por onde começar? Que tal pelas Regras ?




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq