kk
Default banner
Разное
426 450 постов45 подписчиков
Всяко-разно
0

Дана действительная квадратная матрица порядка 2n. Получить новую матриц, переставляя её блоки по диагонали размера n*n

a) Получить  новую матрицу, переставляя её блоки по диагонали размера n*n

б) Получить  новую матрицу, переставляя её блоки по часовой стрелке размера n*n

using System;
namespace Test
{
class Massive
{
// input massive
public void inputMassive(int n, int[,] mas)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
Console.Write("a[{0},{1}]=", i, j);
mas[i,j] = int.Parse(Console.ReadLine());
}
}
}
// print massive
public void printMassive(int n,int[,] mas)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
Console.Write("mas[{0}][{1}]={2} ", i, j, mas[i,j]);
}
Console.WriteLine();
}
}
public void change_hour(int n,int[,] mas)
{
int p;
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
p = mas[i + n,j];
mas[i + n,j] = mas[i + n,j + n];
mas[i + n,j + n] = mas[i,j + n];
mas[i,j + n] = mas[i,j];
mas[i,j] = p;
}
}
public void change_diag(int n, int[,] a)
{
int p,i,j;
for (i=0;i<n;i++)
for(j=i;j<n;j++)
{
// блок 1
p= a[j, i];
a[j, i]= a[i, j];
a[i, j]= p;
//блок 2
p= a[j + n, i];
a[j + n, i]= a[i + n, j];
a[i + n, j]= p;
//блок 3
p= a[j, i + n];
a[j, i + n]= a[i, j + n];
a[i, j + n]= p;
//блок 4
p= a[j + n, i + n];
a[j + n, i + n]= a[i + n, j + n];
a[i + n, j + n]= p;
}
}
}
class Program
{
static void Main(string[] args)
{
int n;
Console.Write("Введите n->");
n = int.Parse(Console.ReadLine());
int[,] mas = new int[2*n,2*n];
Massive a = new Massive();
a.inputMassive(2*n,mas);
Console.WriteLine("Показать массив");
a.printMassive(2*n, mas);
a.change_hour(n, mas);
Console.WriteLine("\nИзменный  массив по часовой стрелке");
a.printMassive(2*n, mas);
Console.WriteLine();
a.change_diag(n, mas);
Console.WriteLine("\nИзменный  массив по диагонали");
a.printMassive(2 * n, mas);
Console.ReadKey();
}
}
}