Тема: матрица
Показать сообщение отдельно
  #13  
Старый 12.12.2008, 14:32
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls;

const
  n = 100;

type
  ntype = 0..n;
  matr = Array [1..n] Of Array [1..n] Of Integer;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    UpDown1: TUpDown;
    LabeledEdit1: TLabeledEdit;
    StringGrid1: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure UpDown1ChangingEx(Sender: TObject; var AllowChange: Boolean;
      NewValue: Smallint; Direction: TUpDownDirection);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  nproc : ntype;
  i, j : integer;
  a : matr;

  Buf : String;
begin
  nproc:=upDown1.Position;
  If nproc >= n Then
    Begin
      ShowMessage('N должно быть меньше 100');
      Exit;
    End;

  Dec(nproc);

  with stringgrid1 do
    for i:=0 to nproc do
      for j:=0 to nproc do
        a[i+1,j+1]:=strToInt(cells[j,i]);


  // Check mart
  Buf := '';
  For i := 0 To nproc Do
    Begin
      For j := 0 To nproc Do
        Buf := Buf + IntToStr(a[i+1,j+1]) + ' - ';
      Buf := Buf + #13#10;
    End;

  ShowMessage(Buf);
end;

procedure TForm1.UpDown1ChangingEx(Sender: TObject;
  var AllowChange: Boolean; NewValue: Smallint;
  Direction: TUpDownDirection);
begin
  StringGrid1.ColCount := NewValue;
  StringGrid1.RowCount := NewValue;
end;

end.
Ответить с цитированием