//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) function Transpose(a: array[,] of integer): array[,] of integer; //Поворот на 90гр по часовой стрелке begin var m := Length(a, 0); var n := Length(a, 1); Result := new integer[n, m]; for var i := 0 to n-1 do begin for var j := 0 to m-1 do Result[i, j] := a[m-1-j, i]; end; end;
begin var n := ReadInteger('Введите n:'); //Заполнение матрицы NxN сл. числами и вывод на экран var a :=MatrixRandom(n, n); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(a[i,j]); println; end; println;
Println('поворот влево на 90 гр'); var b := Transpose(a); b:=Transpose(b); b:=Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот вправо на 90гр'); b := Transpose(a); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот на 180 гр'); b := Transpose(a); b := Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; end.
function
Transpose(a: array[,] of integer): array[,] of integer;
//Поворот на 90гр по часовой стрелке
begin
var m := Length(a, 0);
var n := Length(a, 1);
Result := new integer[n, m];
for var i := 0 to n-1 do begin
for var j := 0 to m-1 do
Result[i, j] := a[m-1-j, i];
end;
end;
begin
var n := ReadInteger('Введите n:');
//Заполнение матрицы NxN сл. числами и вывод на экран
var a :=MatrixRandom(n, n);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(a[i,j]);
println;
end;
println;
Println('поворот влево на 90 гр');
var b := Transpose(a);
b:=Transpose(b);
b:=Transpose(b);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
println;
Println('поворот вправо на 90гр');
b := Transpose(a);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
println;
Println('поворот на 180 гр');
b := Transpose(a);
b := Transpose(b);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
end.
100110101011₂ = 2 475₁₀ = 4653₈ = 9AB₁₆
Объяснение:
100110101011₂ = 1 * 2¹¹ + 0 * 2¹⁰ + 0 * 2⁹ + 1 * 2⁸ + 1 * 2⁷ + 0 * 2⁶ + 1 * 2⁵ + 0 * 2⁴ + 1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 2 048 + 256 + 128 + 32 + 8 + 2 + 1 = 2 475₁₀
100110101011₂ - делим на тройки начиная с конца и переводим в 10 СС
011₂ = 1 * 2¹ + 1 * 2⁰ = 2 + 1 = 3₁₀
101₂ = 1 * 2² + 0 * 2¹ + 1 * 2⁰ = 4 + 1 = 5₁₀
110₂ = 1 * 2² + 1 * 2¹ + 0 * 2⁰ = 4 + 2 = 6₁₀
100₂ = 1 * 2² + 0 * 2¹ + 0 * 2⁰ = 4₁₀
записываем снизу вверх и получаем 8 СС
100110101011₂ = 4653₈
100110101011₂ - делим на четверки начиная с конца и переводим в 10 СС
1011₂ = 1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰ = 8 + 2 + 1 = 11₁₀
1010₂ = 1 * 2³ + 0 * 2² + 1 * 2¹ + 0 * 2⁰ = 8 + 2 = 10₁₀
1001₂ = 1 * 2³ + 0 * 2² + 0 * 2¹ + 1 * 2⁰ = 8 + 1 = 9₁₀
В качестве цифр 16 СС используются цифры от 0 до 9 и латинские буквы от A до F.
А = 10₁₀ B = 11₁₀ C = 12₁₀ D = 13₁₀ E = 14₁₀ F = 15₁₀
записываем снизу вверх и получаем 16 СС (не забывая заменять числа от 10 до 15 на буквы)
100110101011₂ = 9AB₁₆