Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.88 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. //В данной действительной квадратной матрице порядка N найти наибольший
  12. //по модулю элемент. Получить квадратную матрицу порядка N-1 путем
  13. //выбрасывания из исходной матрицы строки и столбца, на пересечении которых
  14. //находится найденный элемент.
  15. namespace Уменьшение_матрицы
  16. {
  17.     public partial class Form1 : Form
  18.     {
  19.         int num = 2;
  20.        
  21.         public Form1()
  22.         {
  23.             InitializeComponent();
  24.         }
  25.         private void numericUpDown1_ValueChanged(object sender, EventArgs e)
  26.         {
  27.             num = Convert.ToInt32(numericUpDown1.Value);
  28.             dataGridView1.ColumnCount = num;
  29.             dataGridView1.RowCount = num; //создаём строки и колонки по числу указанному в переключателе
  30.         }
  31.  
  32.  
  33.         private void button1_Click(object sender, EventArgs e)
  34.         {
  35.             int[,] mas = new int[num, num];
  36.             int n = num, m = num, a = 0, x = 0, y = 0;
  37.             // num это размер массива, а - максимальное число лежащее в массиве, х y - координаты максимального числа
  38.  
  39.  
  40.             mas = new int[n, m];
  41.  
  42.             for (int i = 0; i < n; i++)
  43.             {
  44.                 for (int j = 0; j < m; j++)
  45.                 {
  46.  
  47.                     mas[i, j] = Convert.ToInt32(dataGridView1.Rows[j].Cells[i].Value.ToString());
  48.                     //перетащили значения в массив
  49.                 }
  50.             }
  51.             for (int i = 0; i < n; i++)
  52.             {
  53.                 for (int j = 0; j < m; j++)
  54.                 {
  55.                     if (mas[i, j] >= a) // ищем наибольшее
  56.                     {
  57.                         a = mas[i, j];
  58.                         x = i; // записываем коорды наибольшего
  59.                         y = j;
  60.                     }
  61.  
  62.                 }
  63.  
  64.             }
  65.             for (int i = x; i < n; i++) //ставим наш вычеслитель в начало строки где находится самое больше число
  66.             {
  67.                 for (int j = 0; j < m; j++)
  68.                 {
  69.                     if (i > n)
  70.                     mas[i, j] = mas[i + 1,j]; // сдвигаем массив наверх, затирая строку с самым большим числом
  71.  
  72.                 }
  73.  
  74.             }
  75.             for (int i = 0; i < n; i++) //ставим наш вычеслитель в начало столбца где находится самое больше число
  76.             {
  77.                 for (int j = y; j < m; j++)
  78.                 {
  79.                     if (j > n)
  80.                         mas[i, j] = mas[i, j + 1]; // сдвигаем массив влево, затирая строку с самым большим числом
  81.  
  82.                 }
  83.  
  84.             }
  85.             for (int i = 0; i < mas.GetLength(0); i++)
  86.             {
  87.                 for (int j = 0; j < mas.GetLength(1); j++)
  88.                 {
  89.                     //пишем значения из массива в ячейки контролла
  90.                     dataGridView1.Rows[i].Cells[j].Value = mas[i, j];
  91.                 }
  92.             }
  93.             numericUpDown1.Value = numericUpDown1.Value - 1;
  94.  
  95.  
  96.  
  97.         }
  98.  
  99.         private void label1_Click(object sender, EventArgs e)
  100.         {
  101.  
  102.         }
  103.  
  104.        
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement