 
Вопрос задан 11.03.2021 в 14:57.
Предмет Информатика.
Спрашивает Пак Сергей.
[Delphi - Form] - 99 Определить является ли целочисленная матрица симметричной относительно
вертикальной оси. При отсутствии симметрии заменить элементы на минимальный из них. 0
        0
         0
        0
    Ответы на вопрос
 
        Отвечает Трусова Александра.
                
                   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] <> 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] < 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).
              
                            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] <> 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] < 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).

 0
                    0
                     0
                    0
                 
            Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
                
    Вот пример кода на языке Delphi, который выполняет задачу определения симметричности матрицы относительно вертикальной оси и заменяет элементы, если симметрия отсутствует:
delphiprocedure CheckAndReplaceMatrix(var matrix: array of array of Integer); var numRows, numCols, i, j: Integer; symmetric: Boolean; minValue: Integer; begin numRows := Length(matrix); numCols := Length(matrix[0]); symmetric := True; // Проверяем симметричность матрицы for i := 0 to numRows - 1 do begin for j := 0 to numCols - 1 do begin if matrix[i][j] <> matrix[i][numCols - j - 1] then begin symmetric := False; Break; end; end; if not symmetric then Break; end; // Если матрица не симметрична, заменяем элементы на минимальный из них if not symmetric then begin minValue := matrix[0][0]; for i := 0 to numRows - 1 do begin for j := 0 to numCols - 1 do begin if matrix[i][j] < minValue then minValue := matrix[i][j]; end; end; for i := 0 to numRows - 1 do begin for j := 0 to numCols - 1 do begin matrix[i][j] := minValue; end; end; end; end;
Вы можете вызвать эту процедуру, передав в неё вашу целочисленную матрицу (представленную в виде двумерного массива), и она проверит, является ли матрица симметричной относительно вертикальной оси. Если симметрия отсутствует, элементы матрицы будут заменены на минимальное значение.
 0
                    0
                     0
                    0
                Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
	- 
			Математика 
- 
			Литература 
- 
			Алгебра 
- 
			Русский язык 
- 
			Геометрия 
- 
			Английский язык 
- 
			Химия 
- 
			Физика 
- 
			Биология 
- 
			Другие предметы 
- 
			История 
- 
			Обществознание 
- 
			Окружающий мир 
- 
			География 
- 
			Українська мова 
- 
			Информатика 
- 
			Українська література 
- 
			Қазақ тiлi 
- 
			Экономика 
- 
			Музыка 
- 
			Право 
- 
			Беларуская мова 
- 
			Французский язык 
- 
			Немецкий язык 
- 
			МХК 
- 
			ОБЖ 
- 
			Психология 
- 
			Физкультура и спорт 
- 
			Астрономия 
- 
			Кыргыз тили 
- 
			Оʻzbek tili 
 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			