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


Для решения этой задачи (Вариант 7) я сделал отдельную форму. В ней мы не будем вручную вводить данные, а сгенерируем их по формуле из задания с помощью кода, выведем в таблицу и сразу выполним 7-й вариант (поиск пунктов с минимальной и максимальной явкой).

Как сделать в Visual Studio (пошагово):

1. Добавьте в ваш проект новую форму: в обозревателе решений (Solution Explorer) нажмите правой кнопкой на название проекта -> Добавить (Add) -> Форма (Windows Forms) (Form). Назовите её FormVotes (или оставьте Form2).
2. На новой форме разместите элементы:
   · dataGridView1 (растяните пошире, чтобы влезло 6 колонок).
   · button1 (Текст: "Сгенерировать и решить").
   · label1 (Свойство AutoSize = True, поставьте под кнопкой или таблицей, для вывода ответа).
3. Дважды кликните по кнопке button1, чтобы создать событие нажатия, и вставьте туда этот код.
4. Дважды кликните по пустому месту на самой форме (создастся Form_Load), чтобы таблица подготовилась при запуске.

Вот готовый код для этой новой формы:

```csharp
using System;
using System.Windows.Forms;

namespace InsuranceApp
{
    public partial class FormVotes : Form
    {
        int[,] a = new int[6, 5];

        public FormVotes()
        {
            InitializeComponent();
        }

        private void FormVotes_Load(object sender, EventArgs e)
        {
            dataGridView1.AllowUserToAddRows = false;
            dataGridView1.RowHeadersVisible = false;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            dataGridView1.Columns.Add("col0", "Пункт");
            dataGridView1.Columns.Add("col1", "Кандидат 1");
            dataGridView1.Columns.Add("col2", "Кандидат 2");
            dataGridView1.Columns.Add("col3", "Кандидат 3");
            dataGridView1.Columns.Add("col4", "Кандидат 4");
            dataGridView1.Columns.Add("col5", "Кандидат 5");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows.Clear();
            label1.Text = "";

            Random rnd = new Random();
            int p = 7; // Ваш вариант

            for (int k = 0; k < 6; k++)
            {
                object[] rowData = new object[6];
                rowData[0] = k + 1; // Номер пункта

                for (int n = 0; n < 5; n++)
                {
                    int votes = (rnd.Next(1, 10) * 10 * p) + 50;
                    a[k, n] = votes;
                    rowData[n + 1] = votes.ToString();
                }
                dataGridView1.Rows.Add(rowData);
            }

            int[] totalVotesInPoint = new int[6];
            int maxVotes = -1;
            int minVotes = 999999;
            string maxPoints = "";
            string minPoints = "";

            for (int k = 0; k < 6; k++)
            {
                int sum = 0;
                for (int n = 0; n < 5; n++)
                {
                    sum += a[k, n];
                }
                totalVotesInPoint[k] = sum;

                if (sum > maxVotes)
                {
                    maxVotes = sum;
                    maxPoints = (k + 1).ToString();
                }
                else if (sum == maxVotes)
                {
                    maxPoints += ", " + (k + 1).ToString();
                }

                if (sum < minVotes)
                {
                    minVotes = sum;
                    minPoints = (k + 1).ToString();
                }
                else if (sum == minVotes)
                {
                    minPoints += ", " + (k + 1).ToString();
                }
            }

            label1.Text = $"Максимальная явка ({maxVotes} голосов) в пунктах: {maxPoints}\n" +
                          $"Минимальная явка ({minVotes} голосов) в пунктах: {minPoints}";
        }
    }
}
```

Как проверить работу:

1. Чтобы эта форма открывалась при запуске программы, зайдите в файл Program.cs и замените Application.Run(new Form1()); на Application.Run(new FormVotes()); (или создайте кнопку на главной форме, которая будет её открывать).
2. Запустите программу (F5).
3. Нажмите кнопку "Сгенерировать и решить". Таблица заполнится числами, рассчитанными по формуле из задания, а внизу появится текст с ответом на 7-й вариант.