
27.11.2011, 02:10
|
Начинающий
|
|
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
|
|
Тяжелый случай.
Вот решение. Но про матрицы ты все- таки прочитай...
Код:
{-------устанавливаем порядок матрицы-----------------}
procedure TForm1.SpinEdit1Change(Sender: TObject);
var
i:integer;
begin
with StringGrid1 do
begin
RowCount:=SpinEdit1.Value+1;
ColCount:=SpinEdit1.Value+1;
for i:=1 to RowCount do Cells[0,i]:=intToStr(i);
for i:=1 to ColCount do Cells[i,0]:=intToStr(i);
end; //with
end;
{----вычисление---------------}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
MaxVal,MinVal:integer;
begin
MaxVal:=Low(Integer);
MinVal:=High(Integer);
with StringGrid1 do
begin
//главная диагональ (min)
for j:=2 to SpinEdit1.Value do
for i:=1 to j-1 do
MinVal:=min(MinVal,StrToInt(Cells[j,i]));
//побочная диагональ (max)
for j:=2 to SpinEdit1.Value do
for i:=SpinEdit1.Value downto SpinEdit1.Value-j+2 do
MaxVal:=max(MaxVal,StrToInt(Cells[j,i]))
end; //with
Edit1.Text:=IntToStr(MaxVal);
Edit2.Text:=IntToStr(MinVal);
end;
|