private void столбец1СMAXСуммойToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int max   = -1;
            int index = -1;

            for (int i = 0; i < ArrInt1.Count; i++)
            {
                ArrInt array = ArrInt1[i] as ArrInt;
                int    b     = array.Sum_Column(0);
                if (b > max)
                {
                    max   = b;
                    index = i;
                }
            }
            if (index == -1)
            {
                MessageBox.Show(ERR_FIND, ERR, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                dataGridView2.ClearSelection();
                dataGridView2.Rows[index].Selected = true;
                ShowBox1.Text += "\nДействие: Поиск массива, где сумма 1го столбца максимальна" + "\nМаксимальная сумма в массиве:" + index + " = " + max + "\n";
            }
        }
        private void бинарныйToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ArrInt1.Sort(new ArrIntSort());
            ViewArray();
            int min = 0;
            int max = ArrInt1.Count - 1;

            for (int i = 0; i < ArrInt1.Count; i++)
            {
                int    mid    = (min + max) / 2;
                ArrInt arrMin = ArrInt1[min] as ArrInt;
                ArrInt arrMid = ArrInt1[mid] as ArrInt;

                if (arrMin.Zero_Element > arrMid.Zero_Element)
                {
                    max = mid - 1;
                }
                else
                if (arrMin.Zero_Element < arrMid.Zero_Element)
                {
                    min = mid + 1;
                }
                else
                {
                    dataGridView2.Rows[mid].Selected = true;
                }
            }
            ShowBox1.Text += "\nДействие: Бинарный поиск по наибольшему количеству нулей" + "\n" + "Массив:" + dataGridView2.CurrentCell.RowIndex + "\n";
        }
        private void загрузитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var            filePath       = string.Empty;
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.DefaultExt = "*.txt";
            openFileDialog1.Filter    = "Text files|*.txt";
            if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                filePath = openFileDialog.FileName;
                var fileStream = openFileDialog.OpenFile();
                using (StreamReader file = new StreamReader(fileStream))
                {
                    string line;
                    while ((line = file.ReadLine()) != null)
                    {
                        ArrInt Arr = new ArrInt(n, m);
                        if (line != "")
                        {
                            Arr.InputArray(line);
                            this.ArrInt1.Add(Arr);
                        }
                    }
                }
            }

            MessageBox.Show("Ваш массив добавлен");
        }
        private void линейныйToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FindForm     ArrFind     = new FindForm();
            ArrayList    ArrFindList = new ArrayList();
            DialogResult result      = ArrFind.ShowDialog(this);

            if (result == DialogResult.Cancel)
            {
                return;
            }
            ArrInt intArray = new ArrInt(n, m);

            for (int i = 0; i < ArrFind.FindGrid.RowCount; i++)
            {
                for (int j = 0; j < ArrFind.FindGrid.ColumnCount; j++)
                {
                    intArray.InputArray(Convert.ToInt16(ArrFind.FindGrid.Rows[j].Cells[i].Value), i, j);
                }
            }
            ShowBox1.Text = "\nДействие: Поиск введенного массива" + "\n" + "Введенный массив:" + intArray.ToString() + "\n";
            ArrFindList.Add(intArray);
            //проверка на отсутствие данных в массиве , который ищем?
            MessageBox.Show("Данные для поиска введены", "Хорошо", MessageBoxButtons.OK, MessageBoxIcon.Information);

            int index = -1;

            for (int i = 0; i < ArrInt1.Count; i++)
            {
                ArrInt ArrNew     = ArrInt1[i] as ArrInt;
                ArrInt ArrFindNew = ArrFindList[0] as ArrInt;
                if (ArrFindNew == ArrNew)
                {
                    index = i;
                    break;
                }
                else
                {
                    index = -1;
                    //MessageBox.Show(ERR_FIND, ERR, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            if (index != -1)
            {
                ViewArray();
                dataGridView2.ClearSelection();
                dataGridView2.Rows[index].Selected = true;
                ShowBox1.Text += "\nДействие: Поиск введенного массива" + "\n" + "Введенный массив:" + intArray.ToString() + "\n";
                ShowBox1.Text += "\nИндекс найденного массива:" + index + "\n";
            }
            else
            {
                MessageBox.Show(ERR_FIND, ERR, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void АвтоматическиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ArrInt Arr  = new ArrInt(n, m);
            ArrInt Arr2 = new ArrInt(n, m);
            ArrInt Arr3 = new ArrInt(n, m);

            Arr.InputArray(4);
            Arr2.InputArray(1);
            Arr3.InputArray(2);
            this.ArrInt1.Add(Arr);
            this.ArrInt1.Add(Arr2);
            this.ArrInt1.Add(Arr3);
            MessageBox.Show("Список из 3-х массивов со случайными числами создан");
        }
        private void AddButton_Click(object sender, EventArgs e)
        {
            ArrInt Arr = new ArrInt(n, m);

            dataGridView2.AllowUserToAddRows = false;
            for (int i = 0; i < dataGridView2.RowCount; i++)
            {
                for (int j = 0; j < dataGridView2.ColumnCount; j++)
                {
                    Arr.InputArray(Convert.ToInt16(this.dataGridView2.Rows[j].Cells[i].Value), i, j);
                }
            }

            this.ArrInt1.Add(Arr);
            dataGridView2.Rows.Clear();
            dataGridView2.Columns.Clear();
            dataGridView2.AllowUserToAddRows = false;
        }
        private void УменьшитьВсеНа1ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ShowBox.Clear();
            List <int> IndexToInc = dataGridView2.SelectedRows.Cast <DataGridViewRow>().Select(x => x.Index).ToList();

            if (IndexToInc.Count != 0)
            {
                IndexToInc.Sort();
                while (IndexToInc.Count != 0)
                {
                    ArrInt a = ArrInt1[IndexToInc[0]] as ArrInt;
                    a--;
                    IndexToInc.RemoveAt(0);
                    ViewArray();
                }
            }
            else
            {
                MessageBox.Show(ERR_SELECTED, ERR, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
            int IComparer.Compare(object obj1, object obj2)
            {
                ArrInt r1 = new ArrInt();

                r1 = (ArrInt)obj1;
                ArrInt r2 = new ArrInt();

                r2 = (ArrInt)obj2;
                if (r1.Zero_Element < r2.Zero_Element)
                {
                    return(1);
                }
                else if (r1.Zero_Element > r2.Zero_Element)
                {
                    return(-1);
                }
                else
                {
                    return(0);
                }
            }