| 
			
			 
			
				08.05.2017, 05:47
			
			
			
		 | 
	| 
		
			
			| Модератор |  | 
					Регистрация: 17.04.2008 Сообщения: 8,111
 Версия Delphi: 7, XE3, 10.2 Репутация: 49089     |  | 
	| 
				  
 Ну, например, так: 
	Код: type
  TDynIntMatrix = Array Of Array Of Integer;
function GetPositiveNum(A : TDynIntMatrix) : Integer;
var
  I, J : Integer;
  mI, mJ : Integer;
begin
  Result := 0;
  // Top-Left item - current min item
  mI := Low(A);
  mJ := Low(A[mI]);
  // Search for min item
  For I := Low(A) To High(A) Do
    For J := Low(A[i]) To High(A[i]) Do
      If A[I,J] < A[mI,mJ] Then
        Begin
          mI := I;
          mJ := J;
        End;
  // Cont positive items
  For I := mI To High(A) Do
    For J := Low(A[i]) To High(A[i]) Do
      Begin
        If (I = mI) And (J <= mJ) Then Continue; // Before min item
        If A[I,J] > 0 Then Inc(Result); // positive item - increase counter
      End;
end;
procedure RandomInitArray(var A : TDynIntMatrix; AI, AJ : Integer);
var
  I, J : Integer;
begin
  SetLength(A,AI,AJ);
  For I := Low(A) To High(A) Do
    For J := Low(A[i]) To High(A[i]) Do
      A[i,J] := Random(100)-50; // Generate random value -50..49
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  M1 : TDynIntMatrix;
  M2 : TDynIntMatrix;
  S : String;
begin
  RandomInitArray(M1,5,10);
  RandomInitArray(M2,10,5);
  S := 'Positive item after min item count.'#13#10;
  S := S + Format('M1 : %d'#13#10,[GetPositiveNum(M1)]);
  S := S + Format('M2 : %d',[GetPositiveNum(M2)]);
  ShowMessage(S);
end;
			
 
			
			
			
				  |