Exemplo n.º 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();
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
        static void Task01()
        {
            //Найти количество пар эл-ов, в которых хотя бы одно из чисел делится на 3.
            Random rnd = new Random();

            int[] arr = new int[20];
            for (int i = 0; i < 20; i++)
            {
                arr[i] = rnd.Next(-10000, 10000);
            }
            Console.WriteLine("Исходные данные:");
            foreach (int i in arr)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine("\n");
            int count = 0;

            for (int i = 0; i < 19; i++)
            {
                if (arr[i] % 3 == 0 || arr[i + 1] % 3 == 0)
                {
                    count++;
                    Console.WriteLine("Пара эл-ов: " + arr[i] + " " + arr[i + 1]);
                }
            }
            Console.WriteLine("\nКоличество пар: " + count);
            FC.Pause();
        }
Exemplo n.º 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();
        }
Exemplo n.º 5
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();
        }
Exemplo n.º 6
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();
        }
Exemplo n.º 7
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();
        }
Exemplo n.º 8
0
        static void Task04()
        {
            //Считать данные из файла, высчитать средний балл, вывести 3х худших, плюс тех у кого одинаковый балл с худшими.
            Students students = new Students("text.txt");

            students.Sort();
            students.Show();
            FC.Pause();
        }
Exemplo n.º 9
0
 static void Task1()
 {
     //Создать метод, который будет выводить значения ф-ий от a до b. Для передачи разных ф-ий использовать делегаты.
     Console.WriteLine("Таблица функции A*x^2");
     Task01.Table(Task01.MyMethod1, 10, -2, 2);
     Console.WriteLine("Таблица функции A*sin(x)");
     Task01.Table(Task01.MyMethod2, 10, -2, 2);
     FC.Pause();
 }
Exemplo n.º 10
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();
 }
Exemplo n.º 11
0
        static void Task02()
        {
            MyString myString = new MyString(FC.Input("Введите строку"));

            Console.WriteLine("Слова не длиннее 5 букв");
            myString.Print(5);
            myString.Delete('а');
            myString.Max();
            FC.Pause();
        }
Exemplo n.º 12
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();
 }
Exemplo n.º 13
0
        static void Task13()
        {
            /*13. * Написать функцию, генерирующую случайное число от 1 до 100:
             * a. С использованием стандартной функции rand().
             * b. Без использования стандартной функции rand().*/
            Random random = new Random();

            Console.WriteLine($"Стандартная функция Random: {random.Next(1, 100)}");
            Console.WriteLine($"Нестандартный Random: {(10 * DateTime.Now.Second + 50) % 100}");
            FC.Pause();
        }
Exemplo n.º 14
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");
        }
Exemplo n.º 15
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();
        }
Exemplo n.º 16
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();
 }
Exemplo n.º 17
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();
        }
Exemplo n.º 18
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();
        }
Exemplo n.º 19
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();
        }
Exemplo n.º 20
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();
        }
Exemplo n.º 21
0
        static void Task02()
        {
            //Бинарное дерево
            string path = FC.Input("Укажите путь к файлу");

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

            BinaryTree binaryTree = new BinaryTree(path);

            binaryTree.Find();
        }
Exemplo n.º 22
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();
        }
Exemplo n.º 23
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();
        }
Exemplo n.º 24
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();
 }
Exemplo n.º 25
0
        static void Task04()
        {
            MyDoubleArray myArr = new MyDoubleArray(3, 3);

            Console.WriteLine(myArr);
            Console.WriteLine("Sum: " + myArr.Sum());
            Console.WriteLine("Sum(>): " + myArr.SumX(20));
            Console.WriteLine("Min: " + myArr.Min);
            Console.WriteLine("Max: " + myArr.Max);
            myArr.MaxIndex(out int x, out int y);
            Console.WriteLine($"Индекс максимального элемента: {x},{y}");
            MyDoubleArray myArrayText = new MyDoubleArray("test3.txt");

            Console.WriteLine(myArrayText);
            myArrayText.OutPut("test4.txt");
            FC.Pause();
        }
Exemplo n.º 26
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();
        }
Exemplo n.º 27
0
        static void Task03()
        {
            Fraction f1 = new Fraction(3, 5);
            Fraction f2 = new Fraction(4, 3);
            Fraction f3 = new Fraction(5, 3);

            Console.WriteLine("Первая дробь f1: " + f1);
            Console.WriteLine("Вторая дробь f2: " + f2);
            Console.WriteLine("Третья дробь f3: " + f3);
            Fraction result = f1 + f2;

            Console.WriteLine("result = f1 + f2 = " + result);
            Console.WriteLine("result = result - f3 = " + (result - f3));
            result = f1 * f2;
            Console.WriteLine("f1 * f2 = " + result);
            Console.WriteLine("f3 / f2 = " + (f3 / f2));
            FC.Pause();
        }
Exemplo n.º 28
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();
        }
Exemplo n.º 29
0
        static void Task02()
        {
            //Реализовать класс для работы с массивом, реализовать методы и св-ва для работы с массивом.
            MyArray myArray = new MyArray(10, 2, 3);

            Console.WriteLine(myArray);
            Console.WriteLine(myArray.Sum);
            myArray.Inverse();
            Console.WriteLine(myArray);
            myArray.Multi(2);
            Console.WriteLine(myArray);
            MyArray myArrayText = new MyArray("test.txt");

            Console.WriteLine(myArrayText);
            Console.WriteLine(myArrayText.Max);
            Console.WriteLine(myArrayText.MaxCount);
            myArray.Output("test2.txt");
            FC.Pause();
        }
Exemplo n.º 30
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();
        }