Прочие компьютерные игры

Как написать Windows программу отображения вращения квадратной матрицы

Ирек Мингазов
Ирек Мингазов
6 969
namespace transpmatrix
{
class Matrix
{
// Матрица, строки, колонки
public int[,] matrix;
public int mxRows;
public int mxCols;

// Инициализация
public Matrix(int nRows, int nCols)
{
mxRows = nRows;
mxCols = nCols;
matrix = new int[nRows, nCols];
}

// Получения числа колонок
public int GetMatrixCols
{
get { return mxCols; }
}

// Получения числа строк
public int GetMatrixRows
{
get { return mxRows; }
}

// Доступ к элементам матрицы
public double this[int i, int j]
{
set { matrix[i, j] = Convert.ToInt16(value); }
get { return matrix[i, j]; }
}

}

class Core
{

static void Main(string[] args)
{
// Размеры матрицы
int nOrigRows, nOrigCols;
int i, j;

// Запрашиваем размеры матрицы
try
{
Console.Write("Число строк и колонок матрицы: ");
nOrigRows = Convert.ToInt16(Console.ReadLine());
nOrigCols = nOrigRows;
}
catch
{
Console.WriteLine("Неверные параметры матрицы! ");
Console.ReadLine();
return;
}

// Создаем обычную и транспонированую матрицу
Matrix mA = new Matrix(nOrigRows, nOrigCols);
Matrix mT = new Matrix(nOrigCols, nOrigRows);

Console.WriteLine("Матрица размером {0}x{1}", nOrigRows, nOrigCols);
Console.WriteLine("--------");

// Заполняем элементы матрицы
for (i = 0; i < nOrigRows; i++)
{
for (j = 0; j < nOrigCols; j++)
{
Console.Write("Элемент {0} строка {1}: ", j + 1, i + 1);
mA[i, j] = Convert.ToInt16(Console.ReadLine());
Console.WriteLine();
}
}

// Транспонируем матрицу
for (i = 0; i < nOrigCols; i++)
{
for (j = 0; j < nOrigRows; j++)
{
mT[i, j] = mA[j, i];

}
}

// Вывод результата
Console.Clear();
Console.WriteLine("Транспонированая матрица: \n");

for (i = 0; i < mT.GetMatrixRows; i++)
{
for (j = 0; j < mT.GetMatrixCols; j++)
{
Console.Write(" {0}", mT[i, j]);
}
Console.WriteLine();
}
РА
Руслан Аксёнов
915
Лучший ответ