// 2 пункт меню: Самые большие вектора
        public static void Action2(IVector[] arr, int size)
        {
            // searching max
            IVector maxVector = arr[0];

            for (int i = 0; i < size; i++)
            {
                if (arr[i].CompareTo(maxVector) > 0)
                {
                    maxVector = arr[i];
                }
            }
            // create form for answer
            FormMenuItem1 f = new FormMenuItem1();

            f.Answer = "Выполняется 2 пункт меню\nСамые большие векторы:\n";
            for (int i = 0; i < size; i++)
            {
                if (arr[i].CompareTo(maxVector) == 0)
                {
                    f.Answer += arr[i].ToString() + "\n";
                }
            }
            f.ShowDialog();
            f.Dispose();
        }
        // 5 пункт меню: Клонирование вектора
        public static void Action5(IVector[] arr, int size)
        {
            FormChooseVector f1 = new FormChooseVector();

            f1.SetLabelVectors = "Выполняется пункт меню 5\nВыберете вектор для клонирования:\n";
            f1.Count           = size; // count need to choose correct index
            for (int i = 0; i < size; i++)
            {
                f1.SetLabelVectors += arr[i].ToString() + "\n";
            }
            f1.ShowDialog();
            int j = f1.Index; // index of vector that should be clonned

            f1.Dispose();
            FormMenuItem1 f2    = new FormMenuItem1();
            IVector       clone = (IVector)arr[j].Clone(); // clone vector arr[j]

            for (int i = 0; i < clone.Length; i++)
            {
                clone[i] = 5;
            }
            f2.Answer = "Заменили в клоне все элементы на значение: 5 \n" +
                        clone.ToString() + "\n" +
                        "Исходный вектор не изменился: \n" +
                        arr[j].ToString();
            f2.ShowDialog();
            f2.Dispose();
        }
        // 4 пункт меню: Сортировка по кол-ву координат
        public static void Action4(IVector[] arr, int size)
        {
            FormMenuItem1 f = new FormMenuItem1();

            f.Answer = "Выполняется 4 пункт меню\nВекторы сортированы по кол-ву координат:\n";
            Array.Sort(arr, 0, size);
            for (int i = 0; i < size; i++)
            {
                f.Answer += arr[i].ToString() + "\n";
            }
            f.ShowDialog();
            f.Dispose();
        }
        // 3 пункт меню: Сортировка по возрастанию модулей
        public static void Action3(IVector[] arr, int size)
        {
            FormMenuItem1 f = new FormMenuItem1();

            f.Answer = "Выполняется 3 пункт меню\nВекторы сортированы по возрастанию модулей:\n";
            Array.Sort(arr, 0, size, new LinkedListVector.SortByNorm());
            for (int i = 0; i < size; i++)
            {
                f.Answer += arr[i].ToString() + "\n";
            }
            f.ShowDialog();
            f.Dispose();
        }