Ir ao conteúdo
  • Cadastre-se

Como saber se o vetor se repete?


Posts recomendados

Olá. Gostaria de saber como faço pra verificar se um vetor já se repetiu antes no banco de dados.

Ex.: Existem 3 vetores salvos:

V1:  1 2 3 4 5;

V2:  2 4 5 8 1;

V3:  7 6 9 2 4;

O sistema me pede pra digitar um novo vetor e eu quero saber se ele já tem no banco de dados. 

Daí eu faço 

writeln('Digite a sequência de números');
  For i:= 1 to 3 do
     Begin
       write('Entre com o número ', i,': '); 
       readln(A[i]);
     End;

Se eu entrar para cada "i" os números 1 2 3 4 5, quero que o algoritmo me retorne que este vetor é repetido.

Acho que ficou difícil de entender, mas é porque eu também não sei explicar kkkkkk e sou novo no lance de programação. Me ajudem, por favor!!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Ariel Santiago Rodrigues.

 

1) Como postar um código

Ao postar um código, favor utilizar a tag CODE, para manter a postagem organizada...

Obs.: já editei e ajustei a suas postagem anterior

 

 

2) Comparação de array (vetores)

Uma forma simples seria você comparar posição por posição do array novo com as respectivas posições dos array já existentes, ou seja, valor em A[1] com o valor em V1[1], valor em A[2] com o valor em V1[2] etc... faz o mesmo com V2 e V3...  (algumas linguagens bastaria verificar diretamente, ex.: "if  ( A = B ) then" (se um vetor é igual ao outro)... não sei se funciona no Pascal (a depender, pode variar de compilador para compilador também).

 

A  maneira mais fácil é utilizar um laço de repetição... mais prático usar o FOR. A comparação seria algo como:

if (A[i] = V1[i]) then

 

Um conceito que pode te ajudar é o de "FLAG". Você poderia usar uma variável para servir como "bandeira" para sinalizar se está repetindo ou não. Ex.:

var
  IGUAL :boolean;

Daí, antes de começar a verificar o array, inicializa a variável como true ("é igual"). Caso uma das posições seja diferente (usando um if), muda a flag para false. Após a verificação do array, verifica o valor dessa flag. (true = está igual, false = está diferente).

 

 

Tente primeiro fazer a comparação com apenas dois array (um já existente e o novo). Após "estar ok", implementar a comparação com o restante (2 ou mais) array.

 

 

 

3) ADENDO

Só um comentário sobre a sua citação:

Em 28/01/2017 às 18:09, Ariel Santiago Rodrigues disse:

Se eu entrar para cada "i" os números 1 2 3 4 5, quero que o algoritmo me retorne que este vetor é repetido.

Veja, o "i" é a variável de controle... servindo para "percorrer o(s) vetor(es)"... ou seja, para cada valor de "i", você estaria usando para acessar uma posição dum array... no "i"=1, você estaria acessando "A[1]", entende? daí, temos 2 pontos:

a ) ou você quis dizer "para cada A" ou "para cada array novo";

b ) ou realmente seria "5 números" para cada posição... daí a lógica muda um pouco...  (acho que é o primeiro... uma explicação está no item 2)

 

***

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

@Simon Viegas

 

Eu tenho um bloco de notas cheio de vetores, e eu gostaria de fazer essa comparação: Puxar o arquivo de bloco de notas como vetores V1, V2, V3, V4, V5 e percorrê-los comparando com o vetor que o usuário irá digitar. Se igualar a um desses vetores, a operação dará uma resposta negativa.

 

Sua resposta já me ajudou muito, e agradeço, mas ainda não consegui terminar o algoritmo.

Sem título.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • Membro VIP

Olá @Ariel Santiago Rodrigues.

 

31 minutos atrás, Ariel Santiago Rodrigues disse:

Peço desculpas pela demora. Fiquei sem computador e internet um tempo, além do trabalho já ter passado. Mas ainda tenho dúvidas e infelizmente já não sei mais como começar, então não tenho nada feito.

Pode começar do começo... mesmo que já tenha passado, vale a pena. Qualquer coisa apresenta para o professor... no mínimo vai fazer o que o professor estava sugerindo: "aprender mais um pouco".

 

 

Sobre:

Em 26/02/2017 às 15:10, Ariel Santiago Rodrigues disse:

Eu tenho um bloco de notas cheio de vetores, e eu gostaria de fazer essa comparação: Puxar o arquivo de bloco de notas como vetores V1, V2, V3, V4, V5 e percorrê-los comparando com o vetor que o usuário irá digitar. Se igualar a um desses vetores, a operação dará uma resposta negativa.

Podemos ajudar também, mas apesar de não ser nada de outro mundo, sugiro que deixe isso para depois... não adianta "perder tempo" tentando entender o manuseio de arquivos se ainda não vai saber tratar os dados contidos nele...  Simplesmente atribua esses valores direto no código ou insira via teclado..

 

 

No aguardo.

 

 

adicionado 33 minutos depois

Abaixo um código base, e com alguns exemplos de conceitos que podem ser úteis...:
 

PROGRAM ComparacaoDeVetores;
uses
  CRT; //biblioteca necessária para algums compiladores reconhecerem o ClrScr, TextColor, ReadKey etc
  
  
  
  
var
  V1, V2, V3,                          //vetores salvos
  A          :array [1..5] of integer; //vetor informado pelo usuário
  i          :byte;                    //usado como auxiliar no for
  
BEGIN
ClrScr; //limpar a tela
TextColor(White); //cor do texto com um branco mais claro

//INICIALIZA  O VETORES COM SEUS REPECTIVOS VALORES
V1[1]:=1; V1[2]:=2; V1[3]:=3; V1[4]:=4; V1[5]:=5;
V2[1]:=2; V2[2]:=4; V2[3]:=5; V2[4]:=8; V2[5]:=1;
V3[1]:=7; V3[2]:=6; V3[3]:=9; V3[4]:=2; V3[5]:=4;





//LEITURA DO VETOR A SER COMPARADO
writeln('Digite a sequencia de numeros'); //obs.: removi a acentuação, pois meu computador (FPC) não aceita
for i:=1 to 5 do
  begin
  write  ('Entre com o numero ',i,': ');
  readln(A[i]);
  end;


  
  
  
  

//EXIBE OS VETORES SALVOS
writeln;
writeln;
writeln;
writeln('VETORES SALVOS');
TextColor(Yellow);  
writeln;  
write  ('V1:[');  
for i:=1 to 4 do
  write(V2[i],',');
writeln(V2[5],']');  

writeln;
write  ('V2:[');  
for i:=1 to 4 do
  write(V2[i],',');
writeln(V2[5],']');  

writeln;
write  ('V3:[');  
for i:=1 to 4 do
  write(V3[i],',');
writeln(V3[5],']');  






//EXIBE OS VATORES SALVOS
TextColor(White);
writeln;
writeln;
writeln('Vetor lido');
writeln;  
write  ('A :[');  
for i:=1 to 4 do
  write(A[i],',');
writeln(A[5],']'); 
    
    
    
    
    
    
    
    
    
    
readln; //para aguardar um ENTER antes de continuar
END.

 

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...