ERRO 201 E PROBLEMAS DE ARRAY DINÂMICOS
18/06/2018
0
UNIT Geral;
Interface
TYPE
TYPE1 = ARRAY OF ARRAY OF ARRAY OF DOUBLE;
VAR
imax,jmax : INTEGER;
xyn : TYPE1;
Implementation
____________________________________________________________________________________________
PROCEDURE READ(VAR imax,jmax:INTEGER;VAR xyn:TYPE1);
f1 : TEXTFILE;
i,j : INTEGER;
BEGIN
ASSIGNFILE(f1,''DATAS2.DAT'');
RESET(f1);
READ(f1,imax);
READ(f1,jmax);
FOR i := 1 TO imax DO
FOR j := 1 TO jmax DO
READLN(f1,xyn[i,j,1],xyn[i,j,2])
CLOSEFILE(f1);
_____________________________________________________________________________________
BEGIN
SETLENGTH(xyn,imax,jmax,2);
END.
Eu não sei o que está errado nele. Vocês podem olhar e ver se encontram o erro? Fico no aguardo, Edisson Sávio.]
Edisson Maciel
Posts
31/07/2018
Felipe Morais
31/07/2018
Emerson Nascimento
o correto seria algo assim:
SETLENGTH(xyn,2) // aqui informa que xyn tem 2 elementos (1a. dimensão)
SETLENGTH(xyn[0],5) // aqui informa que o primeiro elemento de xyn tem 5 elementos (2a.dimensão)
SETLENGTH(xyn[1],5) // aqui informa que o segundo elemento de xyn também tem 5 elementos (2a.dimensão)
e assim sucessivamante...
SETLENGTH(xyn[0,0],3)
SETLENGTH(xyn[0,1],3)
SETLENGTH(xyn[0,2],3)
SETLENGTH(xyn[0,3],3)
SETLENGTH(xyn[0,4],3)
SETLENGTH(xyn[1,0],8)
SETLENGTH(xyn[1,1],8)
SETLENGTH(xyn[1,2],8)
SETLENGTH(xyn[1,3],8)
SETLENGTH(xyn[1,4],8)
Pra somente depois atribuir o valor:
xyn[0,0,0] := 13
xyn[1,4,3] := 8.5
Não seria assim?
31/07/2018
Felipe Morais
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var // Define do array dinâmico; MultiArray : Array of Array of byte; I, J : Integer; begin // Define o tamanho do array principal; SetLength(MultiArray, 3); // Define o tamanho dos 3 sub-arrays; SetLength(MultiArray[0], 1); SetLength(MultiArray[1], 2); SetLength(MultiArray[2], 3); // Define e mostra o tamanho de todos os elementos dentro do array principal; for I := 0 to High(MultiArray) do for J := 0 to High(MultiArray[I]) do begin MultiArray[I, J] := I + J; ShowMessage('MultiArray[' + IntToStr(I) + ', ' + IntToStr(J) + '] = ' + IntToStr(MultiArray[I, J])); end; end; end.
31/07/2018
Edisson Maciel
xyn : ARRAY OF ARRAY OF ARRAY OF DOUBLE;
SETLENGTH(xyn,5,13,20);
e só. Você tem alguma outra sugestão? Fico no aguardo, Edisson Sávio.
31/07/2018
Felipe Morais
Clique aqui para fazer login e interagir na Comunidade :)