Написать программу на Паскале, где пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M столбцов. Выполните отражение рисунка сверху вниз:
Написать программу на Паскале, где пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M столбцов. Выполните отражение рисунка сверху вниз:
Ответ(ы) на вопрос:
Гость
//PascalABC.NET 3.1 сборка 1219
procedure PrintMatrix(a: array[,] of integer);
begin
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
begin
writeln;
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
write(a[i, j], ' ');
end;
writeln;
end;
begin
var a := MatrixRandom(ReadInteger('n ='), ReadInteger('m ='), 0, 255);
PrintMatrix(a);
for var i := a.GetLowerBound(0) to (a.GetUpperBound(0) div 2) do
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
swap(a[i, j], a[a.GetLowerBound(0) + a.GetUpperBound(0) - i, j]);
PrintMatrix(a);
end.
Гость
Выделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 uses graphABC; const n=100; m=115; var a:array[1..n,1..m] of integer; x,i,j:integer; begin randomize; setbrushcolor(clAqua); rectangle(0,0,windowwidth,windowheight); for i:=1 to n do for j:=1 to m do begin a[i,j]:=(i*j)*n; end; for i:=1 to n do for j:=1 to m do setpixel(j+150,i+150,a[i,j]); for i:=1 to n div 2 do for j:=1 to m do begin x:=a[i,j]; a[i,j]:=a[n-i+1,m-j+1]; a[n-i+1,m-j+1]:=x; end; {если матрица нечетная, переставим элементы средней строки} if odd(n) then for i:=1 to n div 2 do begin x:=a[n div 2+1,i]; a[n div 2+1,i]:=a[n div 2+1,n-i+1]; a[n div 2+1,n-i+1]:=x; end; for i:=1 to n do for j:=1 to m do setpixel(j+350,i+150,a[i,j]); end.
Не нашли ответ?
Похожие вопросы