Example #1
0
        static void Task11()
        {
            /*11. С клавиатуры вводятся числа, пока не будет введён 0. Подсчитать среднее арифметическое всех
             * положительных чётных чисел, оканчивающихся на 8.*/
            int num, count = 0, sum = 0;

            do
            {
                FC.Input("Введите число или 0 для выхода", out num);
                if (num > 0 && num % 10 == 8)
                {
                    sum += num;
                    count++;
                }
            } while (num != 0);
            if (count > 0)
            {
                Console.WriteLine($"Среднее арифметическое положительных чисел оканчивающихся на 8: {sum / count:D}");
            }
            else
            {
                Console.WriteLine($"Нет чисел, удовлетворяющих условию");
            }
            FC.Pause();
        }
Example #2
0
        static void Task03()
        {
            //Определить является ли одна строка перестановкой другой строки
            string str1 = FC.Input("Введите первую строку").ToUpper();
            string str2 = FC.Input("Введите вторую строку").ToUpper();

            if (str1.Length == str2.Length)
            {
                StringBuilder sb = new StringBuilder(str2);
                foreach (char ch1 in str1)
                {
                    //str2.Remove(str2.IndexOf(ch1), 1);
                    for (int i = 0; i < sb.Length; i++)
                    {
                        if (ch1 == sb[i])
                        {
                            sb.Remove(i, 1);
                            break;
                        }
                    }
                }
                Console.WriteLine("Строки " + (sb.Length == 0 ? "" : "не ") + "являются перестановкой друг друга");
            }
            else
            {
                Console.WriteLine("Строки имеют разную длину");
            }
            FC.Pause();
        }
Example #3
0
        static void Task04()
        {
            //4. Написать программу нахождения корней заданного квадратного уравнения.
            FC.Input("Введите a", out int a);
            FC.Input("Введите b", out int b);
            FC.Input("Введите c", out int c);
            Console.WriteLine($"Квадратное уравнение: {a}x^2+({b}x)+({c})=0");
            double D = b * b - 4 * a * c;
            double res1, res2;

            if (D > 0)
            {
                res1 = (-b + Math.Sqrt(D)) / (2 * a);
                res2 = (-b - Math.Sqrt(D)) / (2 * a);
                Console.WriteLine($"Корни уравнения x1={res1}, x2={res2}");
            }
            else if (D == 0)
            {
                res1 = -b / 2 * a;
                Console.WriteLine($"Корень уравнения x={res1}");
            }
            else
            {
                Console.WriteLine("Уравнение не имеет корней");
            }
            FC.Pause();
        }
Example #4
0
        static void Task14()
        {
            /*14. * Автоморфные числа. Натуральное число называется автоморфным, если оно равно последним
             * цифрам своего квадрата. Например, 25^2 = 625. Напишите программу, которая получает на
             * вход натуральное число N и выводит на экран все автоморфные числа, не превосходящие N.*/
            int    temp, count;
            double square, ost;

            FC.Input("Введите число", out int N);
            Console.WriteLine("Автоморфные числа: ");
            for (int i = 1; i <= N; i++)
            {
                count = 1;
                temp  = i;
                while (temp > 0)
                {
                    count *= 10;
                    temp  /= 10;
                }
                square = Math.Pow(i, 2);
                ost    = square % count;
                if (i == ost)
                {
                    Console.Write(i + " ");
                }
            }
            FC.Pause();
        }
Example #5
0
        static void Task06()
        {
            /*6. Ввести возраст человека (от 1 до 150 лет)
             * и вывести его вместе со словом «год», «года» или «лет».*/
            FC.Input("Введите возраст", out int age);
            string years;
            int    temp = age % 100;

            if ((temp > 10 && temp < 15))
            {
                years = "лет";
            }
            else
            {
                temp = age % 10;
                if (temp == 1)
                {
                    years = "год";
                }
                else if (temp > 1 && temp < 5)
                {
                    years = "года";
                }
                else
                {
                    years = "лет";
                }
            }
            Console.WriteLine($"Возраст {age} {years}");
            FC.Pause();
        }
Example #6
0
        static void Task02()
        {
            //Подсчитать сумму нечетных положительных чисел
            int    sum = 0;
            string str = string.Empty;

            FC.Input("Введите число", out int x);
            str += x;
            if (x % 2 == 1)
            {
                sum += x;
            }
            do
            {
                FC.Input("Введите число", out x);
                str += ", " + x;
                if (x % 2 == 1)
                {
                    sum += x;
                }
            } while (x != 0);
            Console.WriteLine("Введенные числа: " + str);
            Console.WriteLine("Сумма нечетных положительных чисел равна: " + sum);
            FC.Pause();
        }
Example #7
0
 static void Task01()
 {
     /*1. Ввести вес и рост человека.
      * Рассчитать и вывести индекс массы тела по формуле I = m / (h * h), где
      * m – масса тела в килограммах, h – рост в метрах.*/
     FC.Input("Введите массу тела в кг", out int weight);
     FC.Input("Введите рост в метрах", out double height);
     Console.WriteLine($"Индекс массы тела равен: {weight / (height * height):#.##}");
     FC.Pause();
 }
Example #8
0
        static void Task02()
        {
            MyString myString = new MyString(FC.Input("Введите строку"));

            Console.WriteLine("Слова не длиннее 5 букв");
            myString.Print(5);
            myString.Delete('а');
            myString.Max();
            FC.Pause();
        }
Example #9
0
 static void Task08()
 {
     //8. Ввести a и b и вывести квадраты и кубы чисел от a до b.
     FC.Input("Введите a", out int a);
     FC.Input("Введите b", out int b);
     for (int i = a; i <= b; i++)
     {
         Console.WriteLine($"x={i,5} : x^2={i * i,5} : x^3={i * i * i,5}");
     }
     FC.Pause();
 }
Example #10
0
        static void Task01()
        {
            //Проверка корректности ввода логина. (от 2х до 10ти символов, содержит только буквы и цифры, цифра не может быть первой)
            string login;

            do
            {
                login = FC.Input("Введите логин или exit для выхода");
                Console.WriteLine(Login.IsCorrect(login) ? "Логин корректен" : "Логин некорректен");
                Console.WriteLine(Login.IsCorrectReg(login) ? "Логин корректен" : "Логин некорректен");
            } while (login != "exit");
        }
Example #11
0
        static void Task05()
        {
            //Реализовать алгоритм перевода из инфиксной записи арифметического выражения в постфиксную.(Обратную польскую)
            string str      = FC.Input("Введите арифметическое выражение");
            string outStr   = string.Empty;
            char   lastChar = ' ';

            Stack <char> stack = new Stack <char>();

            foreach (char ch in str)
            {
                if (char.IsDigit(ch))
                {
                    outStr += ch;
                }
                else if (ch == '(')
                {
                    stack.Push(ch);
                    lastChar = '(';
                }
                else if (ch == ')')
                {
                    char temp;
                    do
                    {
                        temp = stack.Pop();
                        if (temp != '(')
                        {
                            outStr += temp;
                        }
                    } while (temp != '(');
                }
                else
                {
                    outStr += ' ';
                    if (Priority(ch) <= Priority(lastChar))
                    {
                        outStr += stack.Pop();
                        outStr += ' ';
                    }
                    stack.Push(ch);
                    lastChar = ch;
                }
            }
            while (stack.Count != 0)
            {
                outStr += stack.Pop();
                outStr += ' ';
            }
            Console.WriteLine("Обратная польская запись:");
            Console.WriteLine(outStr);
            FC.Pause();
        }
Example #12
0
 static void Task03()
 {
     /*3. Написать программу обмена значениями двух целочисленных переменных:
      * a. С использованием третьей переменной.
      * b. *Без использования третьей переменной.*/
     FC.Input("Введите первое число", out int a);
     FC.Input("Введите второе число", out int b);
     a = a + b;
     b = a - b;
     a = a - b;
     Console.WriteLine($"Первое число: {a}, второе число: {b}");
     FC.Pause();
 }
Example #13
0
        static void Task01()
        {
            //Реализовать простейшую хэш-функцию.
            //На вход функции подается строка, на выходе получается сумма кодов символов.
            string str  = FC.Input("Введите строку");
            int    hash = 0;

            foreach (char ch in str)
            {
                hash += ch;
            }
            Console.WriteLine("Hash function: " + hash);
            FC.Pause();
        }
Example #14
0
        static void Task07()
        {
            /*7. С клавиатуры вводятся числовые координаты двух полей шахматной доски
             * (x1, y1, x2, y2).
             * Требуется определить, относятся ли к поля к одному цвету или нет.*/
            FC.Input("Введите x1", out int x1);
            FC.Input("Введите y1", out int y1);
            FC.Input("Введите x2", out int x2);
            FC.Input("Введите y2", out int y2);
            bool flag = (x1 + y1) % 2 == (x2 + y2) % 2;

            Console.WriteLine("Поля " + (flag ? "" : "не ") + "относятся к одному цвету");
            FC.Pause();
        }
Example #15
0
        static void Selection()
        {
            //Сортировка выбором
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Console.WriteLine("\nКоличество операций: " +
                              SelectionSortClass.SelectionSort(array));
            Console.ReadLine();
        }
Example #16
0
        static void Shaker()
        {
            //Шейкерная сортировка
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Console.WriteLine("\nКоличество операций: " +
                              CocktailShakerSort.ShakerSort(array));
            Console.ReadLine();
        }
Example #17
0
        static void Task02()
        {
            //Бинарное дерево
            string path = FC.Input("Укажите путь к файлу");

            if (!File.Exists(path))
            {
                Console.WriteLine("Файл не найден!");
                FC.Pause();
                return;
            }

            BinaryTree binaryTree = new BinaryTree(path);

            binaryTree.Find();
        }
Example #18
0
        static void Task09()
        {
            /*9. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти
             * частное от деления нацело N на K, а также остаток от этого деления.*/
            FC.Input("Введите первое число", out int N);
            FC.Input("Введите второе число", out int K);
            int count = 0;

            while (N > K)
            {
                N -= K;
                count++;
            }
            Console.WriteLine($"N делить на K:\nЧастное - {count}\nОстаток - {N}");
            FC.Pause();
        }
Example #19
0
        static void Binary()
        {
            //Бинарный поиск
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Array.Sort(array);
            FC.Input("Введите искомое значение", out int target);
            Console.WriteLine("Результат: " + BinarySearchClass.BinarySearch(array, target));
            FC.Pause();
        }
Example #20
0
 static void Task12()
 {
     //12. Написать функцию нахождения максимального из трёх чисел.
     FC.Input("Введите первое число", out int max);
     FC.Input("Введите второе число", out int b);
     FC.Input("Введите третье число", out int c);
     if (max < b)
     {
         max = b;
     }
     if (max < c)
     {
         max = c;
     }
     Console.WriteLine($"Максимальное число {max}");
     FC.Pause();
 }
Example #21
0
        static void Task01()
        {
            //Реализовать перевод из десятичной в двоичную систему счисления с использованием стека.
            FC.Input("Введите число", out int num);
            Stack <int> stack = new Stack <int>();

            do
            {
                stack.Push(num % 2);
                num /= 2;
            } while (num != 0);

            while (stack.Count != 0)
            {
                Console.Write(stack.Pop());
            }
            FC.Pause();
        }
Example #22
0
        static void SortCompare()
        {
            //Сравнение эффективности сортировок
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Console.WriteLine("Сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortSimple(array));
            Console.ReadLine();
            Console.WriteLine("Оптимизированная сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortOptimized(array));
            Console.ReadLine();
            Console.WriteLine("Шейкерная сортировка");
            Console.WriteLine("\nКоличество операций: " +
                              CocktailShakerSort.ShakerSort(array));
            Console.ReadLine();
            Console.WriteLine("Сортировка выбором");
            Console.WriteLine("\nКоличество операций: " +
                              SelectionSortClass.SelectionSort(array));
            Console.ReadLine();

            Console.WriteLine("Сортировка LINQ");
            DateTime start   = DateTime.Now;
            var      posNums = array.OrderBy(o => o);
            //var posNums = from n in array
            //              orderby n
            //              select n;
            TimeSpan total = DateTime.Now - start;

            foreach (int i in posNums)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine("\nВремя работы алгоритма: " + total.TotalMilliseconds);
            Console.ReadLine();
        }
Example #23
0
        static void Task10()
        {
            /*10. Дано целое число N > 0. С помощью операций деления нацело и взятия остатка от деления
             * определить, имеются ли в записи числа N нечётные цифры. Если имеются, то вывести True, если нет
             * – вывести False.*/
            FC.Input("Введите число", out int N);
            bool flag = false;

            while (N > 0)
            {
                if ((N % 10) % 2 == 0)
                {
                    flag = true;
                    break;
                }
                N /= 10;
            }
            Console.WriteLine(flag.ToString());
            FC.Pause();
        }
Example #24
0
        static void Bubble()
        {
            //Сортировка пузырьком и оптимизированная сортировка пузырьком
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            //BubbleSort bubbleSort = new BubbleSort(num);
            Console.WriteLine("Сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortSimple(array));
            Console.ReadLine();
            Console.WriteLine("Оптимизированная сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortOptimized(array));
            FC.Pause();
        }
Example #25
0
        static void Task03()
        {
            //Логин пароль
            int x = 0;

            do
            {
                string login    = FC.Input("Введите логин");
                string password = FC.Input("Введите пароль");
                if (IsValid(login, password))
                {
                    Console.WriteLine("Успех!");
                    FC.Pause();
                    return;
                }
                x++;
                Console.WriteLine($"Неверный логин или пароль, попыток осталось: {3-x}");
            } while (x != 3);
            Console.WriteLine("Access Denied");
            FC.Pause();
        }
Example #26
0
        static void Task03()
        {
            //Написать программу, которая определяет, является ли введённая скобочная последовательность правильной.
            string       str = FC.Input("Введите скобочную последовательность");
            char         temp;
            Stack <char> stack = new Stack <char>();

            foreach (char ch in str)
            {
                if (ch == '(' || ch == '[' || ch == '{')
                {
                    stack.Push(ch);
                }
                else if (ch == ')' || ch == ']' || ch == '}')
                {
                    if (stack.Count == 0)
                    {
                        Console.WriteLine("Количество открывающихся скобок не равно количеству закрывающихся");
                        FC.Pause();
                        return;
                    }
                    temp = stack.Pop();
                    if (ch - temp > 2 || ch - temp < 1)
                    {
                        Console.WriteLine("Скобочная последовательность не правильная");
                        FC.Pause();
                        return;
                    }
                }
            }
            if (stack.Count > 0)
            {
                Console.WriteLine("Количество открывающихся скобок не равно количеству закрывающихся");
            }
            else
            {
                Console.WriteLine("Скобочная последовательность правильная!");
            }
            FC.Pause();
        }
Example #27
0
 static void Task02()
 {
     //2. Найти максимальное из четырёх чисел. Массивы не использовать.
     FC.Input("Введите первое число", out int max);
     FC.Input("Введите второе число", out int b);
     FC.Input("Введите третье число", out int c);
     FC.Input("Введите четвертое число", out int d);
     if (max < b)
     {
         max = b;
     }
     if (max < c)
     {
         max = c;
     }
     if (max < d)
     {
         max = d;
     }
     Console.WriteLine($"Максимальное число: {max}");
     FC.Pause();
 }
Example #28
0
        static void Task05()
        {
            /*5. С клавиатуры вводится номер месяца.
             * Требуется определить, к какому времени года он относится.*/
            FC.Input("Введите номер месяца", out int month);
            switch (month)
            {
            case 1:
            case 2:
            case 12:
                Console.WriteLine("Зима");
                break;

            case 3:
            case 4:
            case 5:
                Console.WriteLine("Весна");
                break;

            case 6:
            case 7:
            case 8:
                Console.WriteLine("Лето");
                break;

            case 9:
            case 10:
            case 11:
                Console.WriteLine("Осень");
                break;

            default:
                Console.WriteLine("Необходимо ввести число от 1 до 12");
                break;
            }
            FC.Pause();
        }