Ir para conteúdo
Fórum Script Brasil
  • 0

Como Adicionar Mais Espaço Em Uma Array


D4n1l0d

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

Bom, da forma como está definido, é o que se chama de array estático; ou seja; você está dizendo que seu array possui 30 linhas e cada linha possui 30 colunas.

Se você quiser redimensionar seu array, você deve definí-lo como dinâmico:

var r:array of array of integer; i:Integer;
begin
  SetLength(r, 31);
  for i := 0 to 30 do
    SetLength(r[i], 32);
end;

O código acima aloca memória para um array de 31 linhas e cada linha possuirá 32 colunhas.

Link para o comentário
Compartilhar em outros sites

  • 0

cara

mas tipo assim

tela:array[0..24,0..29]of integer;
eu to fazeno um jogo e o mapa tem o tamanho da array assim o mapa tem 25x30 quando eu vo adicionar um objeto neste mapa eu adiciono na array eu so queria saber a primeira parte
 [0..24 
é o numero de colunas?? e segunda
,0..29]

é o numero de linhas??

Link para o comentário
Compartilhar em outros sites

  • 0

achei isso no help do delphi e a minha solução foi essa destacada no CODE

To declare multidimensional dynamic arrays, use iterated array of ... constructions. For example,

type TMessageGrid = array of array of string;
var Msgs: TMessageGrid;

declares a two-dimensional array of strings. To instantiate this array, call SetLength with two integer arguments. For example, if I and J are integer-valued variables,

SetLength(Msgs,I,J);

allocates an I-by-J array, and Msgs[0,0] denotes an element of that array.

You can create multidimensional dynamic arrays that are not rectangular. The first step is to call SetLength, passing it parameters for the first n dimensions of the array. For example,

var Ints: array of array of Integer;

SetLength(Ints,10);

allocates ten rows for Ints but no columns. Later, you can allocate the columns one at a time (giving them different lengths); for example

SetLength(Ints[2], 5);

makes the third column of Ints five integers long. At this point (even if the other columns haven't been allocated) you can assign values to the third column--for example, Ints[2,4] := 6.

The following example uses dynamic arrays (and the IntToStr function declared in the SysUtils unit) to create a triangular matrix of strings.

var

A : array of array of string;

I, J : Integer;

begin

SetLength(A, 10);

for I := Low(A) to High(A) do

begin

SetLength(A, I);

for J := Low(A) to High(A) do

A[i,J] := IntToStr(I) + ',' + IntToStr(J) + ' ';

end;

end;

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, um array of array é uma matriz bi-dimensional. Sempre trabalhei considerando a primeira dimensão como linhas e a segunda como colunas.

Se você tiver a mesma quantidade de colunas para todas a linhas, então você pode dar um SetLength(r, 25, 30); então ele terá 25 linhas com 30 colunas em cada linha.

Se a quantidade de colunas variar para as linhas, então você terá que fazer um for (ou usar outro código) para a alocar colunas como está no último exemplo onde ele faz um trìângulo alocando colunas conforme o número da linha.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...