Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Отражение нессимметричной матрицы

Автор: Legolas 7.06.2006 10:58

Ребята, помогите плиз smile.gif
Нужно отразить нессимметричную матрицу относительно побочной диагонали.

Мне помогли сделать отражение относительно главной диагонали, а вот с отражением отн. побочной я застрял.
Может кто поможет?

Вот примерный код отражения отн. глав. диаг.:

Код
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.

Также высылаю архив с прогой.


Прикрепленные файлы
Прикрепленный файл  inver.rar ( 2.67 килобайт ) Кол-во скачиваний: 225

Автор: Legolas 8.06.2006 6:39

smile.gif

Автор: мисс_граффити 8.06.2006 21:15

а какая разница, относительно чего отображать? только индексы другие будут...

Автор: -Legolas- 9.06.2006 4:41

Дело в том, что я не могу отобразить элементы матрицы относительно побочной диагонали.
Надеюсь на вашу помощь... smile.gif

Автор: volvo 9.06.2006 4:57

  for i := 1 to n - 1 do
for j := 1 to n - i do begin
T := a[i, j];
a[i, j] := a[n - j + 1, n - i + 1];
a[n - j + 1, n - i + 1] := T
end;

Автор: klem4 9.06.2006 12:05

Legolas, в следующий раз пользуйся поиском ...

http://forum.pascal.net.ru/index.php?s=&showtopic=3434&view=findpost&p=30894