Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- //В данной действительной квадратной матрице порядка N найти наибольший
- //по модулю элемент. Получить квадратную матрицу порядка N-1 путем
- //выбрасывания из исходной матрицы строки и столбца, на пересечении которых
- //находится найденный элемент.
- namespace Уменьшение_матрицы
- {
- public partial class Form1 : Form
- {
- int num = 2;
- public Form1()
- {
- InitializeComponent();
- }
- private void numericUpDown1_ValueChanged(object sender, EventArgs e)
- {
- num = Convert.ToInt32(numericUpDown1.Value);
- dataGridView1.ColumnCount = num;
- dataGridView1.RowCount = num; //создаём строки и колонки по числу указанному в переключателе
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int[,] mas = new int[num, num];
- int n = num, m = num, a = 0, x = 0, y = 0;
- // num это размер массива, а - максимальное число лежащее в массиве, х y - координаты максимального числа
- mas = new int[n, m];
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- mas[i, j] = Convert.ToInt32(dataGridView1.Rows[j].Cells[i].Value.ToString());
- //перетащили значения в массив
- }
- }
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- if (mas[i, j] >= a) // ищем наибольшее
- {
- a = mas[i, j];
- x = i; // записываем коорды наибольшего
- y = j;
- }
- }
- }
- for (int i = x; i < n; i++) //ставим наш вычеслитель в начало строки где находится самое больше число
- {
- for (int j = 0; j < m; j++)
- {
- if (i > n)
- mas[i, j] = mas[i + 1,j]; // сдвигаем массив наверх, затирая строку с самым большим числом
- }
- }
- for (int i = 0; i < n; i++) //ставим наш вычеслитель в начало столбца где находится самое больше число
- {
- for (int j = y; j < m; j++)
- {
- if (j > n)
- mas[i, j] = mas[i, j + 1]; // сдвигаем массив влево, затирая строку с самым большим числом
- }
- }
- for (int i = 0; i < mas.GetLength(0); i++)
- {
- for (int j = 0; j < mas.GetLength(1); j++)
- {
- //пишем значения из массива в ячейки контролла
- dataGridView1.Rows[i].Cells[j].Value = mas[i, j];
- }
- }
- numericUpDown1.Value = numericUpDown1.Value - 1;
- }
- private void label1_Click(object sender, EventArgs e)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement