Нужно отразить нессимметричную матрицу относительно побочной диагонали.
Мне помогли сделать отражение относительно главной диагонали, а вот с отражением отн. побочной я застрял.
Может кто поможет?
Вот примерный код отражения отн. глав. диаг.:
Код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
SG: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
{VAR I:INTEGER; }
begin
{FOR I:=0 TO 4 DO
SG.CELLS[0,I]:=INTTOSTR(I+1); }
//SG.Cols[0].LoadFromFile('W:\íîìåð.txt');
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,i,j:integer;
begin
a:=3;
for i:=0 to 4 do
for j:=1 to 5 do
begin
sg.Cells[j,i]:=inttostr(a+random(5)+1);
a:=strtoint(sg.cells[j,i]);
end;
end;
// Процедура отражения отн. главн диаг.
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
b:string;
begin
for i:=0 to 4 do
for j:=i+2 to 5 do begin
b:=sg.cells[j,i];
sg.Cells[j,i]:=sg.cells[i+1,j-1];
sg.cells[i+1,j-1]:=b;
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
SG: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
{VAR I:INTEGER; }
begin
{FOR I:=0 TO 4 DO
SG.CELLS[0,I]:=INTTOSTR(I+1); }
//SG.Cols[0].LoadFromFile('W:\íîìåð.txt');
end;
procedure TForm1.Button1Click(Sender: TObject);
var a,i,j:integer;
begin
a:=3;
for i:=0 to 4 do
for j:=1 to 5 do
begin
sg.Cells[j,i]:=inttostr(a+random(5)+1);
a:=strtoint(sg.cells[j,i]);
end;
end;
// Процедура отражения отн. главн диаг.
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
b:string;
begin
for i:=0 to 4 do
for j:=i+2 to 5 do begin
b:=sg.cells[j,i];
sg.Cells[j,i]:=sg.cells[i+1,j-1];
sg.cells[i+1,j-1]:=b;
end;
end;
end.
Также высылаю архив с прогой.