Beispiel #1
0
        public static void Task1()
        {
            string welcome = "Вы выбрали демонстрацию работы с массивом.\n";

            welcome = welcome + "Это интересно!\n";
            welcome = welcome + "Давайте начнем\n";

            ClassLibraryLesson4.PrintTaskWelcomeScreen(welcome);

            int[] arrayNumbers = new int[20];

            //рандом генератор
            Random rand = new Random();

            //заполнение массива
            for (int counter = 0; counter < arrayNumbers.Length; counter++)
            {
                arrayNumbers[counter] = rand.Next(-10000, 10000);
            }

            //вывод массива на экран
            ClassLibraryLesson4.Print("Содержимое массива:");
            foreach (var item in arrayNumbers)
            {
                ClassLibraryLesson4.Print(item.ToString() + " ", false);
            }

            ClassLibraryLesson4.Print("\n");

            //перебор пар

            ClassLibraryLesson4.Print("Анализируем пары...");

            ushort    counterPairs = 0;
            const int denominator  = 3;

            for (int counter = 0; counter < arrayNumbers.Length - 1; counter++)
            {
                ClassLibraryLesson4.Print($"{arrayNumbers[counter]} {arrayNumbers[counter + 1]}");

                if (arrayNumbers[counter] % denominator == 0 ^ arrayNumbers[counter + 1] % denominator == 0)
                {
                    counterPairs++;
                }
            }

            ClassLibraryLesson4.Print("");
            ClassLibraryLesson4.Print($"Найдено {counterPairs} пар, где только одно из значений делится на  {denominator}");
            ClassLibraryLesson4.Pause("Нажмите любую клавишу.");
        }
        public static void Task2()
        {
            string welcome = "Вы выбрали демонстрацию работы с массивом в виде статического класса.\n";

            welcome = welcome + "Давайте начнем\n";

            ClassLibraryLesson4.PrintTaskWelcomeScreen(welcome);

            int[] arrayNumbers = new int[20];

            //заполнение массива оставим старым из Task1
            Random rand = new Random();

            for (int counter = 0; counter < arrayNumbers.Length; counter++)
            {
                arrayNumbers[counter] = rand.Next(-10000, 10000);
            }

            //вывод массива на экран
            ClassLibraryLesson4.Print("Содержимое массива:");
            StaticClass.PrintArray(arrayNumbers);

            //перебор пар
            ClassLibraryLesson4.Print("Анализируем пары...");
            const int denominator = 3;

            uint counterPairs = StaticClass.CountArrayPairs(arrayNumbers, denominator);

            ClassLibraryLesson4.Print("");
            ClassLibraryLesson4.Print($"Найдено {counterPairs} пар, где только одно из значений делится на  {denominator}");

            string file = Path.GetTempPath() + "array.txt";

            ClassLibraryLesson4.Print($"Сохранение массива в файл: {file}");

            bool saveStatus = StaticClass.SafeArrayToDisk(arrayNumbers, file);

            if (saveStatus)
            {
                ClassLibraryLesson4.Print("Запись успешна.");
            }

            ClassLibraryLesson4.Pause("Нажмите любую клавишу.");
        }
Beispiel #3
0
        public static void Task4()
        {
            string Welcome = "Вы выбрали задачу подбора логина и пароля из файла\n";

            Welcome = Welcome + "Давайте начнем.\n";

            ClassLibraryLesson4.PrintTaskWelcomeScreen(Welcome);

            //string file = @"C:\Temp\p.txt";
            string file = ClassLibraryLesson4.MakeQuestion("имя файла");

            List <Account> accounts = ReadAccountsFromFile(file);

            if (accounts.Count == 0)
            {
                ClassLibraryLesson4.Print("Чтение файла с данными паролей неудачно!");
            }
            else
            {
                bool successFlag = false;

                //главный логин
                Account rootAccount;
                rootAccount.Login    = "******";
                rootAccount.Password = "******";

                foreach (var item in accounts)
                {
                    if (item.Equals(rootAccount))
                    {
                        ClassLibraryLesson4.Print($"Подошло: {item.ToString()}");
                        successFlag = true;
                    }
                }

                if (!(successFlag))
                {
                    ClassLibraryLesson4.Print("Ничего из файла не подошло!");
                }
            }
            ClassLibraryLesson4.Pause("Нажмите любую клавишу.");
        }
        public static void Task3()
        {
            string welcome = "Вы выбрали демонстрацию работы с массивом в виде статического класса (продолжение).\n";

            welcome = welcome + "Давайте начнем\n";

            ClassLibraryLesson4.PrintTaskWelcomeScreen(welcome);

            // 10000 большой разбег не будет "показательно" работать частотный словарь
            //StaticClass_Task3 objectStaticClass_Task3 = new StaticClass_Task3(20, -10000, 10000);

            StaticClass_Task3 objectStaticClass_Task3 = new StaticClass_Task3(20, 1, 10);

            //вывод массива на экран
            ClassLibraryLesson4.Print("Содержимое массива:");
            StaticClass_Task3.PrintArray(objectStaticClass_Task3.Array);

            //перебор пар
            ClassLibraryLesson4.Print("Анализируем пары...");
            const int denominator = 3;

            uint counterPairs = StaticClass_Task3.CountArrayPairs(objectStaticClass_Task3.Array, denominator);

            ClassLibraryLesson4.Print("");
            ClassLibraryLesson4.Print($"Найдено {counterPairs} пар, где только одно из значений делится на  {denominator}");

            string file = Path.GetTempPath() + "array.txt";

            //запись на диск
            ClassLibraryLesson4.Print($"Сохранение массива в файл: {file}");

            bool saveStatus = StaticClass_Task3.SafeArrayToDisk(objectStaticClass_Task3.Array, file);

            if (saveStatus)
            {
                ClassLibraryLesson4.Print("Запись успешна.");
            }

            //сумма элементов
            ClassLibraryLesson4.Print($"Сумма элементов массива: {objectStaticClass_Task3.Sum}");

            //умножение
            int multi = 5;

            ClassLibraryLesson4.Print($"Умножение массива на {multi}:");

            objectStaticClass_Task3.Multi(multi);

            ClassLibraryLesson4.Print("Содержимое массива:");
            StaticClass_Task3.PrintArray(objectStaticClass_Task3.Array);

            //инверсия

            ClassLibraryLesson4.Print("Инверсия массива:");

            int[] inverseArray = objectStaticClass_Task3.Inverse();

            ClassLibraryLesson4.Print("Содержимое массива:");
            StaticClass_Task3.PrintArray(inverseArray);

            //поиск количества максимальных значений
            ClassLibraryLesson4.Print($"Количество максимальных значений: {objectStaticClass_Task3.MaxCount}");

            ClassLibraryLesson4.Print("\n");

            //частотный словарь

            ClassLibraryLesson4.Print("Частотный словарь");
            Dictionary <int, int> dictFreq = objectStaticClass_Task3.DictFrequency;

            foreach (KeyValuePair <int, int> item in dictFreq)
            {
                ClassLibraryLesson4.Print($"Значение: {item.Key} частота: {item.Value}");
            }

            ClassLibraryLesson4.Pause("Нажмите любую клавишу.");
        }