|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Матрица в delphi 7
Ребят, подскажите. К примеру у меня есть матрица в стрингрид1 которая задается с помощью цикла for и random как мне сделать, чтобы в стрингрид2 отображалась эта же матрица, но 1 и последний ряд были поменяны местами?
|
#2
|
||||
|
||||
через промежуточную переменную string каждый столбец в цикле, если нет желания сразу вторую матрицу заполнять с поменяными строками. в ней сохраняешь значение из первой строки, из последней копируешь в первую, из переменной в последнюю. либо через:
Код:
property Rows[Index: Integer]: TStrings; Пишу программы за еду. __________________ |
#3
|
|||
|
|||
unit UMatice1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, Spin; type TfrmaMatice1 = class(TForm) lblM: TLabel; lblN: TLabel; sedM: TSpinEdit; sedN: TSpinEdit; btnRozmery: TButton; lblA: TLabel; stgA: TStringGrid; btnA: TButton; btnVymena: TButton; stgVA: TStringGrid; lblVA: TLabel; btnTisk_matice: TButton; procedure btnRozmeryClick(Sender: TObject); procedure btnAClick(Sender: TObject); procedure btnTisk_maticeClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; tmatice=array[1..50,1..50] of Real; var frmaMatice1: TfrmaMatice1; m,n:Integer; a:tmatice; implementation {$R *.dfm} procedure TfrmaMatice1.btnRozmeryClick(Sender: TObject); var i,j:integer; m,n:Integer; a:tmatice; begin m:=sedM.Value; n:=sedN.value; btnRozmery.Enabled:=false; btnA.Enabled:=true; lblA.Visible:=true; stgA.Visible:=true; btnA.Visible:=true; stgA.RowCount:=m; stgA.ColCount:=n; stgA.Height:=m*stgA.DefaultRowHeight+m +3; stgA.Width:=n*stgA.DefaultColWidth+n+3; end; procedure TfrmaMatice1.btnAClick(Sender: TObject); Var i,j:Integer; m,n:Integer; a:tmatice; begin m:=sedM.Value; n:=sedN.value; randomize; for i:=1 to m do for j:=1 To n do begin a[i,j]:=Random(49); stgA.Cells[i-1,j-1]:=FloatToStr(a[i,j]); end; btnRozmery.Enabled:=true;; btnA.Enabled:=false; btnVymena.Visible:=true; btnTisk_matice.Visible:=true; btnA.Enabled:=false; stgVA.RowCount:=m; stgVA.ColCount:=n; stgVA.Height:=m*stgVA.DefaultRowHeight+m +3; stgVA.Width:=n*stgVA.DefaultColWidth+n+3; for i:=1 to m do for j:=1 to n do stgVA.Cells[i-1,j-1]:=FloatToStr(a[i,j]); end; procedure TfrmaMatice1.btnTisk_maticeClick(Sender: TObject); var i,j:integer; begin lblVA.Visible:=true; stgVA.Visible:=true; begin for i:=1 to m do for j:=1 to n do stgVA.Cells[i+2,j+2]:=FloatToStr(a[i,j]); end; end; procedure TfrmaMatice1.FormCreate(Sender: TObject); begin end; end. |
#4
|
|||
|
|||
чет я тут совсем запутался...
|