Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.05.2017, 04:35
Sempai Sempai вне форума
Прохожий
 
Регистрация: 27.03.2017
Сообщения: 4
Версия Delphi: Delphi 5
Репутация: 10
Сообщение Найти количество положительных элементов расположенных за первым минимальным

Необходима помощь в написании программы : тема процедура .
Найти количество положительных элементов расположенных за первым минимальным элементом матриц A[N,M] и B[K,L]. спасибо заранее .
п.с желательно код как можно проще плз
Ответить с цитированием
  #2  
Старый 08.05.2017, 05:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия 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;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Sempai (09.05.2017)
  #3  
Старый 09.05.2017, 09:55
Sempai Sempai вне форума
Прохожий
 
Регистрация: 27.03.2017
Сообщения: 4
Версия Delphi: Delphi 5
Репутация: 10
Хорошо

благодарю
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter