예제 #1
0
        static void Main(string[] args)
        {
            Person       KarinaVasilkova   = new Person("Karina", "Vasilkova", new DateTime(1996, 09, 10));
            Paper        firstPapar        = new Paper("Title1", KarinaVasilkova, (2018, 09, 31));
            ResearchTeam firstResearchTeam = new ResearchTeam();

            Console.WriteLine("First task is (toShortString):\n" + firstResearchTeam.ToShortString());
            //Console.WriteLine("Second task is (TimeFrame):\n" + TimeFrame.Year + " " + TimeFrame.TwoYears + " " + TimeFrame.Long);

            //firstResearchTeam = new ResearchTeam("My ResearchTeam", TimeFrame.Year, TimeFrame.TwoYears, 10, new[] { firstArtucle });
            Console.WriteLine("Third task is (toString + ResearchTeam all params):\n" + firstResearchTeam);

            firstResearchTeam.AddPaper(firstPapar, firstPapar);
            Console.WriteLine("Fourth task is (toString + AddPaper):\n" + firstResearchTeam.ToString());

            Console.WriteLine("Fifth task is (timer in massifs):\n");
            string inputText = Console.ReadLine();

            int nRows    = Int32.Parse(inputText.Split(' ')[0]);
            int mColumns = Int32.Parse(inputText.Split(' ')[1]);

            int sum  = 0;
            int size = 0;

            while (sum < nRows * mColumns)
            {
                sum += ++size;
            }

            Paper[] oneDimension = new Paper[nRows * mColumns];
            Paper[,] twoDimension = new Paper[nRows, mColumns];
            Paper[][] cogged = new Paper[size][];

            var timeStart = Environment.TickCount;

            for (int i = 0; i < nRows * mColumns; i++)
            {
                oneDimension[i] = firstPapar;
            }
            var timeEnd = Environment.TickCount;

            Console.WriteLine("\nOne dimension is: " + (timeEnd - timeStart));

            timeStart = Environment.TickCount;
            for (int i = 0; i < nRows; i++)
            {
                for (int j = 0; j < mColumns; j++)
                {
                    twoDimension[i, j] = firstPapar;
                }
            }
            timeEnd = Environment.TickCount;
            Console.WriteLine("\nTwo dimension is: " + (timeEnd - timeStart));

            for (int i = 0; i < size; i++)
            {
                if (i == size - 1)
                {
                    cogged[i] = new Paper[nRows * mColumns - (sum - size)];
                    break;
                }
                cogged[i] = new Paper[i + 1];
            }

            timeStart = Environment.TickCount;
            foreach (var lineArray in cogged)
            {
                for (var j = 0; j < lineArray.Length; j++)
                {
                    lineArray[j] = firstPapar;
                }
            }
            timeEnd = Environment.TickCount;
            Console.WriteLine("\nTwo dimension2 is: " + (timeEnd - timeStart));

            Console.Read();
        }
예제 #2
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());
        }