[Delphi - Form] - 99Определить является ли целочисленная матрица симметричной условно

[Delphi - Form] - 99
Найти является ли целочисленная матрица симметричной условно вертикальной оси. При отсутствии симметрии поменять элементы на малый из них.

Задать свой вопрос
Дмитрий
Нельзя сюда выложить проект полностью - как вариант, можно код программы, и скрин формы
Вадим Хололов
Давай так тогда
1 ответ
Unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    Private declarations
  public
    Public declarations
  end;

var
  Form1: TForm1;
  N:byte;
  A:array[1..256,1..256] of shortint;
implementation

R *.dfm

Function S4(A:shortint):String;
Begin
result:=IntToStr(A);
For A:= 1 to 4-Length(result) do
    result:=' '+result;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
   i,j:byte;
   S:string;
begin
Randomize;
N:=StrToInt(Edit1.Text);
ListBox1.Clear;
For i:= 1 to N do
    Begin
    S:='';
    For j:= 1 to N do
        Begin
        A[i,j]:=random(256)-128;
        S:=S+S4(A[i,j])+' '
        End;
    ListBox1.Items.Add(S)
    End;
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
   M,i,j,iMin,jMin:byte;
   B:boolean;
   S:string;
begin
M:=N div 2;
B:=true;
For i:= 1 to N do
    For j:= 1 to M do
        if A[i,j] lt;gt; A[i,N-j+1] then B:=false;
if Not B then
   Begin
   iMin:=1;
   jMin:=1;
   For i:= 1 to N do
       For j:= 1 to N do
           if A[i,j] lt; A[iMin,jMin] then
              Begin
              iMin:=i;
              jMin:=j;
              End;
   ListBox1.Clear;
   For i:= 1 to N do
       Begin
       S:='';
       For j:= 1 to N do
           Begin
           A[i,j]:=A[iMin,jMin];
           S:=S+S4(A[i,j])+' '
           End;
       ListBox1.Items.Add(S)
       End;
   End
end;

end.



Для красивого вывода матрицы на форме стоит моноширинный шрифт Courier New(Шрифт можно поменять так: избрать объект(например, ListBox1), дальше отыскать свойство Font Name, и изменить шрифт на нужный). Размер шрифта на Label1 = 13(Label1.Size = 13).
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт