[Delphi - Form] - 99 Определить является ли целочисленная матрица симметричной относительно вертикальной оси. При отсутствии сим
[Delphi - Form] - 99 Определить является ли целочисленная матрица симметричной относительно вертикальной оси. При отсутствии симметрии заменить элементы на минимальный из них.
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).
1)наполняем 8-ми литровый бидон и переливаем его в 5-ти литровый,таким образом в 8 л. остается 3 л. 2)освобождаем 5-ти литровый,и снова наливаем в него оставшиеся в том бидоне 3 литра 3)далее снова наполняем 8-ми литровый и доливаем из него в 5-ти литровый,и у нас остается 6 литров 4)затем снова освобождаем 5-ти литровый,и переливаем в него содержимое из 8-ми литрового,так как в нем было 6 литров,а мы перелили их в 5-ти литровый бидон,то теперь в 8-ми литровом остался 1 литр.