Пример #1
0
        static void Main(string[] args)
        {
            const int rows     = 3;
            const int columns  = 3;
            const int minValue = -9;
            const int maxValue = 9;

            TwoDimArray array = new TwoDimArray(
                rows, columns, minValue, maxValue);

            Console.WriteLine("Двумерный массив: ");
            PrintArray(array);
            Console.WriteLine();
            Console.WriteLine("Сумма элементов массива : {0}", array.Sum());

            int threshold = 2;

            Console.WriteLine("Сумма элементов больше {0}: {1}",
                              threshold, array.Sum(threshold));

            Console.WriteLine("Минимальный элемент массива: {0}", array.Min);
            Console.WriteLine("Максимальный элемент массива: {0}", array.Max);

            int row = 0, column = 0;

            array.GetMaxItemPos(ref row, ref column);

            Console.WriteLine("Максимальный элемент находится " +
                              "(строка: {0}; колонка: {1})", row, column);


            Console.WriteLine("\n\nЗапись двумерного массива на диск " +
                              "исчитвание этого массива");


            string arrayPath = Directory.GetCurrentDirectory() +
                               "/TwoDimArray.txt";

            Console.WriteLine("Путь сохранения массива{0}", arrayPath);

            try
            {
                TwoDimArray.WriteArrayToFile(array, arrayPath);
                //TwoDimArray fileArray = TwoDimArray.ReadArrayFromFile(arrayPath);
                TwoDimArray fileArray = new TwoDimArray(arrayPath);
                File.Delete(arrayPath);

                Console.WriteLine("Считанный массив");
                PrintArray(fileArray);
            }
            catch (TwoDimArrayException tdex)
            {
                Console.WriteLine(tdex.Message);
                if (null != tdex.InnerException)
                {
                    Console.WriteLine(tdex.InnerException.Message);
                }
            }
            Console.ReadKey();
        }
Пример #2
0
        public static TwoDimArray ReadArrayFromFile(string path)
        {
            try
            {
                using (StreamReader sw = new StreamReader(path))
                {
                    int numRows    = int.Parse(sw.ReadLine());
                    int numColumns = int.Parse(sw.ReadLine());

                    TwoDimArray array = new TwoDimArray(numRows, numColumns);

                    for (int i = 0; i < numRows; ++i)
                    {
                        for (int j = 0; j < numColumns; ++j)
                        {
                            array[i, j] = int.Parse(sw.ReadLine());
                        }
                    }

                    return(array);
                }
            }
            catch (Exception ex)
            {
                throw new TwoDimArrayException(
                          "Ошибка считывания массива из файла", ex);
            }
        }
Пример #3
0
 private static void PrintArray(TwoDimArray array)
 {
     for (int i = 0; i < array.Rows; ++i)
     {
         for (int j = 0; j < array.Columns; ++j)
         {
             Console.Write("{0}\t", array[i, j]);
         }
         Console.WriteLine();
     }
 }
Пример #4
0
        /// <summary>
        /// Проверка работы с массивом целых чисел
        /// </summary>
        /// <param name="ar">обрабатываемый массив</param>
        private static void TestAllFunctionality(TwoDimArray ar)
        {
            if (ar != null)
            {
                // Проверка, чем же был заполнен массив
                Console.WriteLine($"Текущее состояние массива\n{ar}");

                #region Сумма всех элементов массива
                Console.WriteLine($"Сумма элементов массива : {ar.SumAllArray}");
                #endregion

                #region Сумма элементов больше заданного
                Console.Write("Введите число для подсчета суммы элементов массива больше него : ");
                int minValue = int.Parse(Console.ReadLine());
                Console.WriteLine($"Сумма элементов массива больше {minValue} : {ar.SumArrayMoreThan(minValue)}");
                #endregion

                #region Максимальный элемент массива
                Console.WriteLine($"Максимальный элемент массива : {ar.Maximum}");
                #endregion

                #region Минимальный элемент массива
                Console.WriteLine($"Минимальный элемент массива : {ar.Minimum}");
                #endregion

                #region Индекс максимального элемента массива через out
                ar.GetIndexOfMaximumOut(out int row, out int col);
                Console.WriteLine($"Индекс максимального элемента массива через out (переменные не инициализировались) : [{row}],[{col}]");
                #endregion

                #region Индекс максимального элемента массива через ref
                int refRow = -1;
                int refCol = -1;
                Console.WriteLine($"Индекс максимального элемента массива через ref; refRow = {refRow}; refCol = {refCol}");
                ar.GetIndexOfMaximumRef(ref refRow, ref refCol);
                Console.WriteLine($"Индекс максимального элемента массива через ref : [{refRow}],[{refCol}]");
                #endregion

                #region Запись массива в файл
                Console.WriteLine("Введите путь к файлу, куда будет выполняться запись результата : ");
                string FileNameToWrite = Console.ReadLine();
                if (ar.WriteArrayToFile(FileNameToWrite))
                {
                    Console.WriteLine($"Записано в {FileNameToWrite}");
                }
                #endregion
            }
            else
            {
                Console.WriteLine("Передан пустой массив, проверять нечего");
            }
        }
Пример #5
0
        /// <summary>
        /// Алексей Кулик [email protected]
        /// Урок 4, задача 5
        /// а)* Реализовать библиотеку с классом для работы с двумерным массивом.
        /// Реализовать конструктор, заполняющий массив случайными числами.
        /// Создать методы, которые возвращают сумму всех элементов массива,
        /// сумму всех элементов массива больше заданного,
        /// свойство, возвращающее минимальный элемент массива,
        /// свойство, возвращающее максимальный элемент массива,
        /// метод, возвращающий номер максимального элемента массива (через параметры, используя модификатор ref или out).
        /// б)** Добавить конструктор и методы, которые загружают данные из файла и записывают данные в файл
        /// в)** Обработать возможные исключительные ситуации при работе с файлами.
        /// </summary>
        static void Main()
        {
            Console.WriteLine("Проверка работы с двумерными массивами");
            TwoDimArray ar;

            #region Инициализация двумерного массива случайными числами
            Console.WriteLine("Инициализация двумерного массива случайными числами");
            ar = new TwoDimArray(2, 5);

            TestAllFunctionality(ar);
            #endregion

            #region Чтение массива из файла
            Console.WriteLine("Чтение массива из файла");
            ar = new TwoDimArray("..\\..\\IntArray.txt");

            TestAllFunctionality(ar);
            #endregion

            Console.WriteLine("Работа закончена. Нажмите любую клавишу");
            Console.ReadKey();
        }
Пример #6
0
 public static void WriteArrayToFile(TwoDimArray array, string path)
 {
     try
     {
         using (StreamWriter sw = new StreamWriter(path))
         {
             sw.WriteLine(array.Rows);
             sw.WriteLine(array.Columns);
             for (int i = 0; i < array.Rows; ++i)
             {
                 for (int j = 0; j < array.Columns; ++j)
                 {
                     sw.WriteLine(array[i, j]);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw new TwoDimArrayException(
                   "Ошибка зсписи массива в файл", ex);
     }
 }