Составить программу, которая в матрице D(m, n) находит все элементы, где сумма всех элементов строки, стоящих до рассматриваемого, больше суммы элементов столбца , стоящих до рассматриваемого. Сумму предшествующих элементов считать равной нулю, если элемент является первым в строке или столбце. Сформировать из найденных элементов массив. Вывести матрицу в виде матрицы, а под ней — элементы массива.(приложение Windows Forms) — C#(Си шарп)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System.Linq; //В начале файла
 
namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int M = 0;
        int N = 0;
        int[,] Numbers;
        private void Form1_Load(object sender, EventArgs e)
        {
  
        }
  
        private void button1_Click(object sender, EventArgs e) // создание матрицы
        {
            dataGridView1.Columns.Clear();
            dataGridView1.Rows.Clear();
  
  
            dataGridView1.AllowUserToAddRows = true;
  
            M = int.Parse(M_input.Text);
            N = int.Parse(N_input.Text);
  
            Numbers = new int[0, 0];
            Numbers = new int[N, M];
  
            for (int i = 0; i < M; i++)
            {
                dataGridView1.Columns.Add("", "");
            }
  
            for (int i = 0; i < N; i++)
            {
                dataGridView1.Rows.Add("", "");
            }
  
            dataGridView1.AllowUserToAddRows = false;
        }
        //должна создавать вторую и выводить элементы массива( как я понял в виде строки)
        private void button2_Click(object sender, EventArgs e)
        {
            int n = dataGridView1.RowCount;
            int m = dataGridView1.ColumnCount;
            double[,] mas = new double[n, m];
  
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                {
                    mas[i, j] = double.Parse(dataGridView1.Rows[i].Cells[j].Value.ToString());
  
                }
             
            var result = Enumerable.Range(0, n).SelectMany(row => Enumerable.Range(0, m).Select(col => (row, col))).Where(x => Enumerable.Range(0, x.col).Sum(y => mas[x.row, y]) > Enumerable.Range(0, x.row).Sum(y => mas[y, x.col])).Select((elem, index => (elem: $"({x.row}, {x.col})", index));
            dataGridView2.RowCount = 1;
            dataGridView2.ColumnCount = result.Count();
            result.Select(x => dataGridView2.Rows[0].Cells[x.index].Value = x.elem);
        }
        private void label1_Click(object sender, EventArgs e)
        {
  
        }
  
        private void LUM1_Click(object sender, EventArgs e)
        {
  
        }
  
        private void LUM2_Click(object sender, EventArgs e)
        {
  
        }
  
        private void LUM3_Click(object sender, EventArgs e)
        {
  
        }
  
        private void Matrix_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
  
        }
  
        private void M_input_TextChanged(object sender, EventArgs e)
        {
  
        }
  
        private void N_input_TextChanged(object sender, EventArgs e)
        {
  
        }
  
        private void label2_Click(object sender, EventArgs e)
        {
  
        }
  
        private void Matrix2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
  
        }
  
        private void label3_Click(object sender, EventArgs e)
        {
  
        }
    }
}

Leave a Comment