симметричность строки матрицы

Ответить
roman09
Сообщения: 4
Зарегистрирован: 07 апр 2009, 13:05

3. Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, и значение 0 в противном случае. я саму программу написал, я понять не могу как мне вычислить симетричность строки в матрице... какая то х... эт все в delphi=) :confused:
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Строка симметрична, если она при перевороте превращается в себя то есть если при любом 1<=i<=m x[k,i]=x[k,m+1-i]
&quot писал(а):я саму программу написал, я понять не могу как мне вычислить симетричность строки в матрице
Как же ты тогда написал?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
roman09
Сообщения: 4
Зарегистрирован: 07 апр 2009, 13:05

да составление самой матрицы=) я замутил, осталось высчислить эту ж...=)
--------------------------------------------------------------------------------
Добавленное сообщение
--------------------------------------------------------------------------------
да кстати а что такое (к) и (m)???
--------------------------------------------------------------------------------
Добавленное сообщение
--------------------------------------------------------------------------------
и что такое (х)???????????
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

&quot писал(а):да кстати а что такое (к) и (m)???
Эти ввеличины я взял у тебя.
&quot писал(а): что такое х
x замени именем матрицы
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
roman09
Сообщения: 4
Зарегистрирован: 07 апр 2009, 13:05

ВОПРОС В ТЕКСТЕ=) ПОМОГИ=))) PLEASE!)
[syntax=delphi]
unit Unit1;

interface

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

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
UpDown1: TUpDown;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
BitBtn1: TBitBtn;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(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: integer;

implementation

{$R *.dfm}

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]:='массив А';
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.Button3Click(Sender: TObject);
begin
{КОРОЧЕ Я НЕ ЧЕ НЕ ПОНЯЛ=) ЧЕ МНЕ СДЕСЬ НАПИСАТЬ???)))}
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]:='массив А';
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.Button4Click(Sender: TObject);
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;

initialization randomize;{инициализируем}
end.
[/syntax]
atavin-ta
Сообщения: 585
Зарегистрирован: 30 янв 2009, 06:38

Издеваешься?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Esgal
Сообщения: 78
Зарегистрирован: 04 ноя 2008, 01:15

пусть х - исходная матрица в которой n строк и m столбцов

Код: Выделить всё

for k:=1 to n do
  begin
    flag:=false;
    for i:=1 to ((m div 2) + 1) do
      if x[k,i]<>x[k,m-i+1] then flag:= true;
    if flag then В[k]:=0 else В[k]:=1;
  end;
массив В - то что тебе нужно
Luke! Use the Force! Use the Force... oh, Luke! Stop using the Force, use your head!
roman09
Сообщения: 4
Зарегистрирован: 07 апр 2009, 13:05

спасиб=)))) очень признателен=)))
Esgal
Сообщения: 78
Зарегистрирован: 04 ноя 2008, 01:15

рады помочь
Luke! Use the Force! Use the Force... oh, Luke! Stop using the Force, use your head!
Ответить