Загрузка данных


----------------Упорядочивание строк главной диагонали-----------------
 Random rnd = new Random();
            dataGridView1.ColumnCount = 3;
            dataGridView1.RowCount = 3;
            int[] diag = new int[3]; //так как нам нужны 3 элемента главной диагонали создаем масссив состоящий из 3х чиел
            // Заполняем матрицу и запоминаем диагональные элементы
            for (int i = 0; i < 3; i++) //i номер строки
            {
                for (int j = 0; j < 3; j++) //j номер столбца
                {
                    int value = rnd.Next(1, 100); //генерируем случайное число
                    dataGridView1.Rows[i].Cells[j].Value = value; //вставляем его в ячейку. i - обращаемся к строчке. j - обращаемся к столбцу. value - это поля
                    if (i == j)
                        diag[i] = value;
                }
            }
            // Сортируем диагональ
            Array.Sort(diag);
            // Обновляем диагональные элементы
            for (int i = 0; i < 3; i++)
            {
                dataGridView1.Rows[i].Cells[i].Value = diag[i];
            }

и побочной

Random rnd = new Random();
            dataGridView1.RowCount = 3;
            dataGridView1.ColumnCount = 3;
            int[] diag = new int[3];
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    int value = rnd.Next(1, 200);
                    dataGridView1.Rows[i].Cells[j].Value = value;
                    if (i + j == 2)
                        diag[i] = value;
                }            
            }
            Array.Sort(diag);
            for (int i = 0; i < 3; i++)
            {
                dataGridView1.Rows[i].Cells[2 - i].Value = diag[i];
            }

---------------------Возрастание верхней строки------------------
Random rnd = new Random();
            int n = 3, m = 3;
            dataGridView1.Rows.Clear();
            dataGridView1.Columns.Clear();
            for (int j = 0; j < m; j++) dataGridView1.Columns.Add("", "");
            dataGridView1.Rows.Add(n);
            int[,] a = new int[n, m];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    a[i, j] = rnd.Next(1, 200);
            var order = Enumerable.Range(0, m).OrderBy(j => a[0, j]).ToArray();
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    dataGridView1.Rows[i].Cells[j].Value = a[i, order[j]];

и нижней

Random rnd = new Random();
            int n = 3, m = 3;
            dataGridView1.Rows.Clear();
            dataGridView1.Columns.Clear();
            for (int j = 0; j < m; j++) dataGridView1.Columns.Add("", "");
            dataGridView1.Rows.Add(n);
            int[,] a = new int[n, m];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    a[i, j] = rnd.Next(1, 200);
            var order = Enumerable.Range(0, m).OrderBy(j => a[0, j]).ToArray();
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    dataGridView1.Rows[i].Cells[j].Value = a[i, order[j]];


--------------СТОЛБЕЦ ВОЗРАСТАНИЕ----------- 
Random rnd = new Random();
int n = 3, m = 3;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
for (int j = 0; j < m; j++) dataGridView1.Columns.Add("", "");
dataGridView1.Rows.Add(n);
int[,] a = new int[n, m];
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        a[i, j] = rnd.Next(1, 200);
// Получаем сумму элементов первой строки (или можете взять другой критерий)
int[] rowSums = new int[n];
for (int i = 0; i < n; i++)
{
    int sum = 0;
    for (int j = 0; j < m; j++)
        sum += a[i, j];
    rowSums[i] = sum;
}
// Создаём порядок строк по возрастанию суммы элементов первой строки
var order = Enumerable.Range(0, n).OrderBy(i => a[i, 0]).ToArray();
// Выводим строки по новому порядку
for (int idx = 0; idx < n; idx++)
{
    int rowIndex = order[idx];
    for (int j = 0; j < m; j++)
    {
        dataGridView1.Rows[idx].Cells[j].Value = a[rowIndex, j];
    }
}

последний столбец

Random rnd = new Random();
int n = 3, m = 3;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
for (int j = 0; j < m; j++) dataGridView1.Columns.Add("", "");
dataGridView1.Rows.Add(n);
int[,] a = new int[n, m];
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        a[i, j] = rnd.Next(1, 200);
// Сортируем строки по последнему элементу (последний столбец) по возрастанию
var order = Enumerable.Range(0, n).OrderBy(i => a[i, m - 1]).ToArray();
// Выводим строки в новом порядке
for (int idx = 0; idx < n; idx++)
{
    int rowIndex = order[idx];
    for (int j = 0; j < m; j++)
    {
        dataGridView1.Rows[idx].Cells[j].Value = a[rowIndex, j];
    }
}

------------------УМНОЖЕНИЕ---------

private void button1_Click(object sender, EventArgs e)
{
    Random rnd = new Random();
    dataGridView1.Columns.Clear();
    dataGridView1.Rows.Clear();
    // Создаем 3 столбца
    for (int j = 0; j < 3; j++)
        dataGridView1.Columns.Add("", "");
    // Добавляем 3 строки
    dataGridView1.Rows.Add(3);
    // Заполняем матрицу рандомными числами
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            dataGridView1.Rows[i].Cells[j].Value = rnd.Next(1, 100);
        }
    }

    Random rnd2 = new Random();
    dataGridView2.Columns.Clear();
    dataGridView2.Rows.Clear();
    for (int j = 0; j < 3; j++)
        dataGridView2.Columns.Add("", "");
    dataGridView2.Rows.Add(3);
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            dataGridView2.Rows[i].Cells[j].Value = rnd2.Next(1, 100);
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    // Проверка через Rows.Count и Columns.Count
    if (dataGridView1.Rows.Count < 3 || dataGridView1.Columns.Count < 3 ||
        dataGridView2.Rows.Count < 3 || dataGridView2.Columns.Count < 3)
    {
        MessageBox.Show("Матрицы должны быть размером 3x3!");
        return;
    }
    int[,] matrix1 = new int[3, 3];
    int[,] matrix2 = new int[3, 3];
    int[,] result = new int[3, 3];
    // Читаем первую матрицу
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            matrix1[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
    // Читаем вторую матрицу
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            matrix2[i, j] = Convert.ToInt32(dataGridView2.Rows[i].Cells[j].Value);
    // Умножение матриц
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
        {
            result[i, j] = 0;
            for (int k = 0; k < 3; k++)
                result[i, j] += matrix1[i, k] * matrix2[k, j];
        }
    // Вывод результата
    dataGridView3.Columns.Clear();
    dataGridView3.Rows.Clear();
    for (int j = 0; j < 3; j++)
        dataGridView3.Columns.Add("", "");
    dataGridView3.Rows.Add(3);
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            dataGridView3.Rows[i].Cells[j].Value = result[i, j];
}

-------------------ТРАНСПОРТИРОВАНИЕ--------------

private void button1_Click(object sender, EventArgs e)
{
    Random rnd = new Random();
    dataGridView1.Columns.Clear();
    dataGridView1.Rows.Clear();
    // Создаем 3 столбца
    for (int j = 0; j < 3; j++)
        dataGridView1.Columns.Add("", "");
    // Добавляем 3 строки
    dataGridView1.Rows.Add(3);
    // Заполняем матрицу рандомными числами
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            dataGridView1.Rows[i].Cells[j].Value = rnd.Next(1, 100);
        }
    }
    Random rnd2 = new Random();
    dataGridView2.Columns.Clear();
    dataGridView2.Rows.Clear();
    for (int j = 0; j < 3; j++)
        dataGridView2.Columns.Add("", "");
    dataGridView2.Rows.Add(3);
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            dataGridView2.Rows[i].Cells[j].Value = rnd2.Next(1, 100);
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    // Проверяем, что матрица не пустая
    if (dataGridView1.Rows.Count < 1 || dataGridView1.Columns.Count < 1)
    {
        MessageBox.Show("Сначала создайте матрицу!");
        return;
    }
    int rows = dataGridView1.Rows.Count;
    int cols = dataGridView1.Columns.Count;
    // Читаем матрицу из DataGridView
    int[,] A = new int[rows, cols];
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < cols; j++)
            A[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
    // Создаем транспонированную матрицу
    int[,] AT = new int[cols, rows];
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < cols; j++)
            AT[j, i] = A[i, j];
    // Очищаем и создаем новые колонки для вывода
    dataGridView1.Columns.Clear();
    dataGridView1.Rows.Clear();
    for (int j = 0; j < rows; j++) // строки стали столбцами
        dataGridView1.Columns.Add("", "");
    dataGridView1.Rows.Add(cols); // столбцы стали строками
    // Заполняем транспонированную матрицу в DataGridView
    for (int i = 0; i < cols; i++)
        for (int j = 0; j < rows; j++)
            dataGridView1.Rows[i].Cells[j].Value = AT[i, j];
}

------------------ВЕЩЕСТВЕННАЯ СТРОКИ----------------

Random rnd = new Random();
int n = 3, m = 3;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
for (int j = 0; j < m; j++) 
    dataGridView1.Columns.Add("", "");
dataGridView1.Rows.Add(n);
double[,] a = new double[n, m]; // double вместо int
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        a[i, j] = Math.Round(rnd.NextDouble() * 200, 2); // вещественные числа
// Сортируем столбцы по первой строке (по возрастанию)
var order = Enumerable.Range(0, m).OrderBy(j => a[0, j]).ToArray();
// Выводим с переставленными столбцами
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        dataGridView1.Rows[i].Cells[j].Value = a[i, order[j]];

-------------ВЕЩЕСТВЕННАЯ СТОЛБЦЫ----------------
Random rnd = new Random();
int n = 3, m = 3;
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
for (int j = 0; j < m; j++)
    dataGridView1.Columns.Add("", "");
dataGridView1.Rows.Add(n);
double[,] a = new double[n, m];
for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++)
        a[i, j] = Math.Round(rnd.NextDouble() * 200, 2);
var order = Enumerable.Range(0, n).OrderBy(i => a[i, 0]).ToArray();
for (int idx = 0; idx < n; idx++)
{
    int rowIndex = order[idx];
    for (int j = 0; j < m; j++)
    {
        dataGridView1.Rows[idx].Cells[j].Value = a[rowIndex, j];
    }
}