public static Array2d WithRandomNumbers(int n, int m)
        {
            Array2d a2d = new Array2d(n, m);
            Random  rnd = new Random();

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    a2d.arr[i, j] = rnd.Next(-100, 100);
                }
            }

            return(a2d);
        }
        public static void Demo()
        {
            string filename = "array2d.txt";
            int    n        = 12;
            int    m        = 10;

            Utilities.Print($"Создаем массив с размером индексов: [{n}, {m}]");
            Array2d array2d = Array2d.WithRandomNumbers(n, m);

            Utilities.Print($"{array2d}");
            Utilities.Print($"Максимальный элемент: {array2d.Max}");
            Utilities.Print($"Минимальный элемент: {array2d.Min}");
            Utilities.Print($"Сумма элементов: {array2d.Sum}");
            Utilities.Print($"Сумма элементов больше 10: {array2d.SumGreaterThanN(10)}");

            array2d.MaxElementIndex(out int max_i, out int max_j);
            Utilities.Print($"Индексы максимального элемента: [{max_i}, {max_j}]");

            bool writeSuccess = array2d.TryWriteToFile(filename);

            if (writeSuccess)
            {
                Utilities.Print($"Массив записан в {filename}");
            }

            bool readSuccess = Array2d.TryWithFile(filename + "ваы", ref array2d);

            if (readSuccess)
            {
                Utilities.Print($"Массив успешно прочитан из {filename}");
            }

            readSuccess = Array2d.TryWithFile(filename, ref array2d);
            if (readSuccess)
            {
                Utilities.Print($"Массив успешно прочитан из {filename}");
            }
            Utilities.Print($"{array2d}");
        }
 public static bool TryWithFile(string filename, ref Array2d a2d)
 {
     return(a2d.LoadFromFile(filename));
 }