Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

Передача двумерного массива в метод класса.   Найти похожие ветки 

 
Sin ©   (2007-10-24 09:25) [0]

Подобный вопрос обсуждался http://delphimaster.net/view/2-1191862496/, однако хотелось бы узнать можно ли передать двумерный массив в класс расположенный в другом unit"е.


 
MBo ©   (2007-10-24 09:28) [1]

конечно, можно


 
Сергей М. ©   (2007-10-24 09:28) [2]

Можно.


 
Сергей М. ©   (2007-10-24 09:29) [3]

Причем по барабану мерность массива и местонахождение декларации класса.


 
Sin ©   (2007-10-24 09:31) [4]

Может подскажете как, при условии массив должен быть динамическим.


 
Sin ©   (2007-10-24 09:32) [5]

У меня появляется несоответствие Array and Dynamic array.


 
Kolan ©   (2007-10-24 09:33) [6]

> Может подскажете как

TMyMatrix = array of array of Integer;

procedure Proc(Arr: TMyMatrix);


?


 
Sin ©   (2007-10-24 10:09) [7]

Спасибо, получилось. Поскажите еще, пожалуйсто, как в этом случае можно "вернуть" одномерный массив. Что-то уменя ошибка появляется...
// класс
type
 TArray    = array of double;
 TMyMatrix = array of TArray;

 MyClass = class
 private
 public
   function MySum(N: integer; mas: TMyMatrix): TArray;
 end;

implementation

function MyClass.MySum(N: integer; mas: TMyMatrix): TArray;
 var
   i,j : integer;
   sum : double;
begin
{  SetLength(MySum,N);} // нужно ли это делать???
 for i := 0 to N do
   begin
   sum := 0;
   for j := 0 to N do sum := sum + mas[i,j];
   MySum[i] := sum; // здесь ошибка...
   end;
end;

// программа
procedure TForm1.Button1Click(Sender: TObject);
 var
   a : TArray;
   b : integer;
   c : TMyMatrix;
begin
 b := 2;
 SetLength(c,2,2);
 c[0,0] := 1;
 c[0,1] := 2;
 c[1,0] := 1;
 c[1,1] := 2;
 a := t.MySum(b,c);
end;


 
Сергей М. ©   (2007-10-24 10:21) [8]

function MyClass.MySum(N: integer; mas: TMyMatrix): TArray;
var
  i,j : integer;
  sum : double;
begin
SetLength(Result, N);} // нужно !!!!!
for i := 0 to N - 1 do
begin
  sum := 0;
  for j := 0 to N - 1 do
    sum := sum + mas[i,j];
  Result[i] := sum;
end;
end;


 
Sin ©   (2007-10-24 10:23) [9]

;) СПАСИБО!



Страницы: 1 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
15-1192375543
исследователь
2007-10-14 19:25
2007.11.18
Размер поля БД


15-1192191485
oldman
2007-10-12 16:18
2007.11.18
Наконец-то купил себе двухядерник.


9-1137184162
Unsigned
2006-01-13 23:29
2007.11.18
Проф. геймдев на Делфи


2-1193221250
DevilDevil
2007-10-24 14:20
2007.11.18
вопрос по TPopupMenu. Прямоугольная область.


2-1193495233
@!!ex
2007-10-27 18:27
2007.11.18
Перетаскивание элементов в TTreeView