Loop "FOR" para acessar valores de arrays.

26/02/2010

5

Olá, Pessoal preciso de uma ajuda aqui pra pegar os valores de de um array normal e acessar em outro array multidimensional.. Vou tentar me explicar melhor, é o seguinte: Eu tenho 2 arrays:  Uma multidimensional, onde guardo valores de linhas(1..10) e colunas(2..11) que uso mais tarde pra montar um código vCabecalho: array[1..10, 2..11] of Integer;  e outra, simples onde coloco os valores das colunas e linhas que quero acessar na array acima ArrValores: array of Integer; Então nesta ultima array ai em cima, sempre vai ter um tamanho de itens em pares, ou seja, 2, 4, 6, 8, ou 10.... assim por diante, pode ser qualquer quantidade de itens, mas sempre vai ser em pares a quantidade de itens, eu defino essa quantidade via SetLength(ArrValores, X) mais a frente. O que não estou conseguindo fazer? Eu preciso pegar os 2 primeiros valores da ArrValores, e usar pra acessar os valores correspondentes em vCabecalho, exemplo: Vamos supor que a ArrValores contenha os seguintes itens: ArrValores[0] := 1; ArrValores[1] := 2; ArrValores[2] := 2; ArrValores[3] := 3; ArrValores[4] := 3; ArrValores[5] := 4; e em vCabecalho eu tenha: vCabecalho[1,2] := 10; vCabecalho[2,3] := 20; vCabecalho[3,4] := 30; Então eu tenho que fazer um laço que pegue os valores em ArrValores[0] e ArrValores[1] e acessar os valores correspondentes em vCabecalho, ou seja: X := vCabecalho[ArrValores[0], ArrValores[1]]; Que deveria devolver o valor "10", que é o valor que esta definido para esta coordenada em vCabecalho. Depois disso, pegar os 2 próximos valores em ArrValores e repetir esta operação para acessar os valores em vCabecalho, e assim por diante até acabar os itens de ArrValores. Ufaa, não sei se consegui me explicar, qualquer dúvida me perguntem. Gostaria muito da ajuda de vcs pq já tentei de tudo e minhas "habilidades" nisso ai não são la essas coisas.
Responder

Posts

27/02/2010

Mazin

var
  i, x: Integer;

...

for i:= 0 to 5 do
begin
  x := vCabecalho[ArrValores[i*2], ArrValores[(i*2)+1]];
  writeln(x);
end;
Responder

27/02/2010

Mazin

var
  i, x: Integer;

...

for i:= 0 to 5 do
begin
  x := vCabecalho[ArrValores[i*2], ArrValores[(i*2)+1]];
  writeln(x);
end;
Responder
Veja se assim funciona como vc quer.    //Adicione 1 componente TMemo //Adicione 1 componente TButton procedure TForm1.Button1Click(Sender: TObject);
var
  vValores: array[1..6, 2..7] of Integer;
  vCabecalho: array[0..6] of Integer;
  i, x: Integer;
begin
  vCabecalho[0]:= 1;
  vCabecalho[1]:= 2;
  vCabecalho[2]:= 3;
  vCabecalho[3]:= 4;
  vCabecalho[4]:= 5;
  vCabecalho[5]:= 6;
  vCabecalho[6]:= 7;
//
  vValores[1,2] := 10;
  vValores[2,3] := 20;
  vValores[3,4] := 30;
  vValores[4,5] := 40;
  vValores[5,6] := 50;
  vValores[6,7] := 60;
//
for i:= 0 to 5 do
begin
  x := vValores[vCabecalho[i], vCabecalho[(i)+1]];
  Memo1.Lines.Add(IntToStr(x));
end;
end;   Boa sorte e bons códigos!!
Responder