Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guilhermerr

loop aninhado com for

Recommended Posts

ALO, pode ser elementar mas como fazer um loop aninhado com for? por exemplo, se tenho um vetor v e outro vetor v1[j] entao se pegar os valores do primeiro vetor ficaria assim. for i:= 1 to N

begin

for j:= 1 to M

begin

if v:= v1[j] then

comandos

end;

 

end;

Essa forma tem valor isto é é correta?

 

2- se fizer busca:= v ficaria

for i:= 1 to N

begin

busca:= v;

end;

 

Se uma sequencia de loops é executada utilizando o mesmo vetor, nao haveria repetição dos loops? isto é nao haveria sequencias começaria tudo de novo a cada loop?. nao sei se ficou clara a minha duvida em todo caso agradeço qualquer informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Guilhermerr, poderia ser mais claro? Não consegui entender a sua dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes... acho que você está meio perdido na explicação que deu da sua dúvida e na lógica atrás de como se trabalha com vetores e atribuição de valores, a qual sugiro que dê uma atenção especial, visto que nossos programas dependem primeiro do bom entendimento do problema e da lógica que será aplicada na solução dele... então, analisemos os códigos que postou.

 

for i:= 1 to N
begin
 	for j:= 1 to M
 	begin
       	if v[i]:= v1[j] then
           	comandos
 	end; 
end;

O código acima está dizendo ao seu compilador o seguinte: dado dois vetores (V e V1), varra todos os registros do vetor V e para cada registro lido verifique se o mesmo existe no vetor V1. Se existir, execute os comandos que estiverem dentro do bloco do if.

 

Em resumo, seu programa varre cada registro do vetor V e os compara, um de cada vez, com todos os registros existentes no vetor V1 para caso encontrar algo igual ao dado lido executar algum comando X. Isto não muda a ordem dos índices dos dados no vetor na forma como está codificado, visto que os dados permanecem nos seus devidos locais de gravação. Tudo o que estamos fazendo aqui é ler os dados e comparar, utilizando o laço para apontar o registro que estamos lendo em V para comparar com o dado apontado pelo segundo laço no vetor V1.

 

Analisemos o seu outro código:

 

for i:= 1 to N
begin
 	busca:= v[i];
end;

Neste código que postou, basicamente você está percorrendo o vetor com um laço e atribuindo a variável busca o valor lido dentro do laço, o que na prática não faria sentido algum, visto que este bloco sempre lhe daria o mesmo resultado que a atribuição direta abaixo:

 

busca := v[N];

Porque isso? Simples... o comando que usou não é de comparação, é de atribuição, e como está dentro do laço ele sempre armazenará na variável o valor que ele ler do vetor na última execução do laço.

 

Espero que isso lhe ajude mas, se precisar, explique melhor sua dúvida. Sugiro que dê uma lida na área de algoritmos do fórum, tem muitos exemplos de uso de vetor por lá.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.