Получить и вывести массив В(stringgrid)

  • Автор темы Kinect
  • Дата начала
K

Kinect

Гость
#1
Задание:
Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, и значение 0 в противном случае.

Ребята помогите получить и вывести массив B.

Код:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
A:array[1..21,1..21]of extended;
B:array[1..21] of Extended;
N,i,j,k,m,f,flag,x: integer;
implementation

{$R *.dfm}
//Размерность матрицы(StringGrid)
procedure TForm1.Button1Click(Sender: TObject);
begin
N:=strtoint(edit1.text);
StringGrid1.RowCount:=n+1;
StringGrid1.ColCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid1.Cells[0,0]:='Массив A';
StringGrid2.Cells[0,0]:='Массив B';
StringGrid1.Height:=20*(n+1)+5+n;
StringGrid1.Width:=20*(n+1)+5+n;
StringGrid2.Height:=20*(n+1)+5+n;
for i:=1 to n do 
begin
StringGrid1.Cells[0,i]:=inttostr(i);
StringGrid1.Cells[i,0]:=inttostr(i);
end;
end;
//Заполняем случайными числами
procedure TForm1.Button2Click(Sender: TObject);
begin
for i:=1 to n do
begin
For j:=1 to n do 
begin
Stringgrid1.Cells[i,j]:=floattostr(random(50)-20);
Stringgrid1.Update;
sleep(50);
end;
end;
Button3.Enabled:=true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
N:=3;
StringGrid1.RowCount:=n+1;
StringGrid1.ColCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid1.Cells[0,0]:='Массив A';
StringGrid2.Cells[0,0]:='Массив B';
{StringGrid1.Height:=20*(n+1)+5+n;
StringGrid1.Width:=20*(n+1)+5+n;
StringGrid2.Height:=20*(n+1)+5+n;}
for i:=1 to n do 
begin
StringGrid1.Cells[0,i]:=inttostr(i);
StringGrid1.Cells[i,0]:=inttostr(i);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
begin
for i:=1 to n do 
begin
For j:=1 to n do 
begin
Stringgrid1.Cells[i,j]:='';
Stringgrid2.Cells[0,j]:='';
end;
end;
end;


end;

//Получаем и выводим массив B
procedure TForm1.Button4Click(Sender: TObject);
begin
// Как это сделать??????
end.
 

Вложения

09.11.2009
665
1
#2
Код:
const N=21;
M=21;
var 
i,j:integer;
ind:boolean;
begin
for i:=1 to N do
begin
ind:=true;
for j:=1 to M div 2;
if a[i,j]<>a[i,m+1-j] then ind:=false;
if ind=true then b[i]:=1 else b[i]:=0;
end;
end;