В общем вот условие задачи:
12. В прямоугольной матрице в каждой строке оставить без изменения минимальный и максимальный элементы строки. Остальные элементы строк заменить нулями.
В SG генерируется матрица 4 на 5, а по нажатию на SpeedButton алгоритм правильно не отрабатывает и в едиты и SG выводит какую то ху***. Помогите исправить.
Массивы MIN и MAX нужны для записи в них минимальных и максимальных значений.
Код:
var
Form1: TForm1;
M:array[0..3,0..4] of Integer;
i,j :Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
for i:=0 to 3 do
for j:=0 to 4 do
begin
Randomize;
M[i,j]:=Random(15);
SG.Cells[j,i]:=IntToStr(M[i,j]);
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var MIN:array[0..3] of Integer;
MAX:array[0..3] of Integer;
ACol,ARow : Integer;
begin
for i:=0 to 3 do
for j:=0 to 4 do
begin
if M[i,j]<M[i,j+1] then
MIN[j]:=M[i,j];
if M[i,j]>M[i,j+1] then
MAX[j]:=M[i,j];
end;
for ACol:=0 to 4 do
for ARow:=0 to 3 do
begin
if (StrToInt(SG.Cells[Acol,ARow])<>MIN[ACol]) or (StrToInt(SG.Cells[Acol,ARow])<>MAX[ACol]) then
SG.Cells[Acol,ARow]:='0';
end;
Edit1.Text:=IntTostr(MAX[0])+','+inttostr(MAX[1])+','+inttostr(MAX[2])+','+inttostr(MAX[3]);
Edit2.Text:=IntTostr(MIN[0])+','+inttostr(MIN[1])+','+inttostr(MIN[2])+','+inttostr(MIN[3]);
end;