Пример #1
0
        static void Main(string[] args)
        {
            ResearchTeam team = new ResearchTeam();

            Console.WriteLine(team.ToShortString());

            Console.WriteLine($"Индексатор для Year = : Year = {team[TimeFrame.Year]} TwoYears = {team[TimeFrame.TwoYears]} Long = {team[TimeFrame.Long]}\n");

            team.ResearchName     = "Поиск Немо";
            team.ResearchDuration = TimeFrame.TwoYears;
            team.LicenceNumber    = 18999;
            team.CompanyName      = "ООО \"Рыболов\"";
            team.ArticleArr       = new Paper[] { new Paper(), new Paper("Первая попытка", new Person(), new DateTime(2002, 8, 13)),
                                                  new Paper("Вторая попытка", new Person("Фёдр", "Макгрегор", new DateTime(2009, 2, 9)), new DateTime(2010, 10, 12)) };
            Console.WriteLine(team.ToString() + "\n");

            team.AddPapers(new Paper("Новое исследование", new Person("Иван", "Иванов", new DateTime(1998, 10, 7)), new DateTime(2021, 9, 10)));
            Console.WriteLine(team.ToString() + "\n");
            Console.WriteLine("Последнее исследование: \n" + team.LastArticle.ToString());

            //Сравнение скорости работы для одномерного, прямоугольного и ступенчатого массива

            string[] strArr = null;
            int      strNum = 0, colNum = 0;

            while (true)
            {
                Console.WriteLine("Введите ncol, nrow, через запятую");
                string line = Console.ReadLine();

                strArr = line.Split(',');
                try
                {
                    strNum = Int32.Parse(strArr[0]);
                    colNum = Int32.Parse(strArr[1]);
                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Вы допустили ошибку при вводе!");
                }
                catch (ArgumentNullException)
                {
                    Console.WriteLine("Вы допустили ошибку при вводе!");
                }
            }
            int resSize = strNum * colNum;

            Paper[] paperLinearArr = new Paper[resSize];
            for (int i = 0; i < resSize; i++)
            {
                paperLinearArr[i] = new Paper();
            }


            Random random = new Random();

            Paper[][] paperStairsArr = new Paper[strNum][];
            for (int i = 0; i < strNum - 1; i++)
            {
                int t_size = random.Next(1, colNum);
                paperStairsArr[i] = new Paper[t_size];
                resSize          -= t_size;
            }
            paperStairsArr[strNum - 1] = new Paper[resSize];

            for (int i = 0; i < paperStairsArr.Length; i++)
            {
                for (int j = 0; j < paperStairsArr[i].Length; j++)
                {
                    paperStairsArr[i][j] = new Paper();
                }
            }

            Paper[,] paperRectangleArr = new Paper[strNum, colNum];
            for (int i = 0; i < strNum; i++)
            {
                for (int j = 0; j < colNum; j++)
                {
                    paperRectangleArr[i, j] = new Paper();
                }
            }


            Stopwatch sw = new Stopwatch();

            sw.Start();
            foreach (Paper[] arr in paperStairsArr)
            {
                foreach (Paper item in arr)
                {
                    item.ArticleName = "NewName";
                }
            }
            sw.Stop();
            Console.WriteLine("Результат для зубчатого массива: " + sw.ElapsedMilliseconds.ToString());

            sw.Restart();
            foreach (Paper item in paperRectangleArr)
            {
                item.ArticleName = "NewName";
            }
            sw.Stop();
            Console.WriteLine("Результат для прямоугольного массива: " + sw.ElapsedMilliseconds.ToString());

            sw.Restart();
            foreach (Paper item in paperLinearArr)
            {
                item.ArticleName = "NewName";
            }
            sw.Stop();
            Console.WriteLine("Результат для линейного массива: " + sw.ElapsedMilliseconds.ToString());
        }