Beispiel #1
0
        // метод задачи №2
        static public void MessageProgram()
        {
            Console.Write("Введите текстовое сообщение с любым количеством слов: ");
            // Message msg = new Message("лето солнце тесто жара чай снег осень зима");
            Message msg = new Message(Console.ReadLine()); // создаем объект Message

            Console.WriteLine("Вы ввели сообщение: " + msg.ToString());
            Console.Write("Введите максимальное количество букв из которых должно состоять слово: ");
            int count = Maxyber.Ask(0); // запрашиваем число букв

            msg.PrintWords(count);
            Console.Write("Введите символ, на который заканчиваются слова для удаления: ");
            char uChar = Maxyber.Ask(' '); // запрашиваем символ, на которое заканчивается слово

            msg.WordDeleteLC(uChar);       // удаляем слова из последовательности
            msg.Print();
            Console.WriteLine($"Самое длинное слово сообщения - \"{msg.Longest()}\", его длина {msg.Longest().Length} символов");
            StringBuilder sb = new StringBuilder();

            sb = msg.SBLongest(); // формируем последовательность из самых длинных слов с помощью StrinBuilder
            Console.WriteLine("Строка StrinBuilder: " + sb.ToString());
            Maxyber.ConsolePause();
            Dictionary <string, int> dict = new Dictionary <string, int>();

            string[] uWords = { "солнце", "небо", "луна" }; // задаем массив слов, по которым необходимо создать частотный массив
            string   uText  = "Солнце взошло утром, небо было чистое, луна ушла вниз к земле, солнце никак не хотело двигаться, небо покрылось облаками, а луна была одинока, солнце - это наше все";

            dict = FreqAnalise(uWords, uText);

            foreach (KeyValuePair <string, int> key in dict)
            {
                Console.WriteLine(key.ToString());
            }
            Maxyber.ConsolePause();
        }
Beispiel #2
0
 // Создаем метод, который принимает делегат
 // На практике этот метод сможет принимать любой метод
 // с такой же сигнатурой, как у делегата
 public static void Table(Fun F, double x, double b, double y)
 {
     Console.WriteLine("- X -------- Y -------- f(x,y) ---");
     while (x <= b)
     {
         Console.WriteLine("| {0,8:0.000} | {1,8:0.000} | {2,8:0.000} |", x, y, F(x, y));
         x += 1;
     }
     Console.WriteLine("---------------------");
     Maxyber.ConsolePause();
 }
Beispiel #3
0
        // int temp = new Random().Next(5);
        static void Main(string[] args)
        {
            // Задание №4. Реализовать метод проверки логина и пароля. На вход метода подается логин и пароль. На выходе истина, если прошел авторизацию, и ложь, если не прошел (Логин: root, Password: GeekBrains).
            // Используя метод проверки логина и пароля, написать программу: пользователь вводит логин и пароль, программа пропускает его дальше или не пропускает. С помощью цикла do while ограничить ввод пароля тремя попытками.
            Console.Clear();
            Maxyber.UserLogPassTry(3);

            // задание №3. С клавиатуры вводятся числа, пока не будет введен 0. Подсчитать сумму всех нечетных положительных чисел.

            int[] NumArray = Maxyber.InputIntArray(); // вызывает мето заполнения массива числами, введенными с клавиатуры
            Maxyber.SummArray(NumArray);              // вызывает метод подсчета суммы положительных нечетных чисел

            // задание №1. Написать метод, возвращающий минимальное из трёх чисел.
            // int[] nums = new int[4] { 20, 30, 10, 40 }; изначально в задании необходимо было найти минимальное число из чисел известного массива, задача была расширена после выполнения задания №3
            int min = Maxyber.minNumber(NumArray);

            Maxyber.ConsolePrint("Минимальное число в введенном ранее массиве: " + min);

            // задание №2. Написать метод подсчета количества цифр числа.
            Console.Clear();
            long number = Maxyber.ConsoleRequestNumber("Введите любое целое число: ");
            long result = Maxyber.CalcNumberChars(number);

            Maxyber.ConsolePrint("сумма цифр числа: " + result);

            // Задание №5.  а) Написать программу, которая запрашивает массу и рост человека, вычисляет его индекс массы и сообщает, нужно ли человеку похудеть, набрать вес или всё в норме.
            //              б) *Рассчитать, на сколько кг похудеть или сколько кг набрать для нормализации веса. Нормой ИМТ считается интервал от 18,5 до 24,99.
            Console.Clear();
            double userIMT = Maxyber.CalcIMT(); // вызов функции рассчета индекса массы тела

            Maxyber.ConsolePrint("Индекс массы тела: " + userIMT);

            // Задание №6. *Написать программу подсчета количества «Хороших» чисел в диапазоне от 1 до 1 000 000 000. Хорошим называется число, которое делится на сумму своих цифр.
            // Реализовать подсчет времени выполнения программы, используя структуру DateTime.
            Console.Clear();
            Console.WriteLine("Максимальная граница диапазона, в котором считать количество \"хороших\" числел: ");
            long maxGoodNumsLine = Convert.ToInt64(Console.ReadLine());
            int  countGoodNums   = Maxyber.CalcGoodNumbers(maxGoodNumsLine);

            Maxyber.ConsolePrint("Количество \"хороших\" чисел в интервале от 1 до " + maxGoodNumsLine + " равно - " + countGoodNums);

            // Задание №7. a) Разработать рекурсивный метод, который выводит на экран числа от a до b (a<b);
            // б) *Разработать рекурсивный метод, который считает сумму чисел от a до b.
            int[] userNums = new int[2];
            userNums = Maxyber.AskRecursiveNums();
            Console.WriteLine("Числовой ряд от " + userNums[0] + " до " + userNums[1]);
            Console.WriteLine(Maxyber.RecursionNumbers(userNums[0], userNums[1]));
            Console.WriteLine("Сумма чисел от " + userNums[0] + " до " + userNums[1]);
            Console.WriteLine(Maxyber.RecursionSumNumbers(userNums[0], userNums[1]));
            Maxyber.ConsolePause();
        }
Beispiel #4
0
        // задача на перестаноку
        public static void Exchanging()
        {
            bool flag = true;
            int  x;

            Console.WriteLine("введите последовательно две строки");
            string str1 = Console.ReadLine();
            string str2 = Console.ReadLine();

            if (str1.Length != str2.Length)
            {
                Console.WriteLine("Строки имеют разную длину и не могут быть перестановкой");
            }
            else
            {
                // создаем по одному словарю для каждой строки
                Dictionary <char, int> dict1 = new Dictionary <char, int>();
                Dictionary <char, int> dict2 = new Dictionary <char, int>();
                dict1 = MakeStrDictionary(str1);
                dict2 = MakeStrDictionary(str2);
                foreach (KeyValuePair <char, int> key in dict1)
                {
                    dict2.TryGetValue(key.Key, out x);
                    if (!dict2.ContainsKey(key.Key))
                    {
                        Console.WriteLine("В словаре 1 найден символ, которого нет в словаре 2. Строки не являются перестановкой");
                        flag = false;
                        break;
                    }
                    else if (key.Value != x)
                    {
                        Console.WriteLine($"Количество вхождений символа {key.Key} в словарях 1 и 2 различается ({key.Value} и {x})");
                        flag = false;
                        break;
                    }
                }
                if (flag)
                {
                    Console.WriteLine($"Строки \"{str1}\" и \"{str2}\" являются перестановкой");
                }
            }
            Maxyber.ConsolePause();
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            //Задача №1. Создать программу, которая будет проверять корректность ввода логина.Корректным логином будет строка от 2 до 10 символов,
            //содержащая только буквы латинского алфавита или цифры, при этом цифра не может быть первой:
            //а) без использования регулярных выражений;
            //б) **с использованием регулярных выражений.

            AskCorrectLogin();

            //Задача №2. Разработать статический класс Message, содержащий следующие статические методы для обработки текста:
            //а) Вывести только те слова сообщения,  которые содержат не более n букв.
            //б) Удалить из сообщения все слова, которые заканчиваются на заданный символ.
            //в) Найти самое длинное слово сообщения.
            //г) Сформировать строку с помощью StringBuilder из самых длинных слов сообщения.
            //д) ***Создать метод, который производит частотный анализ текста.В качестве параметра в него передается массив слов и текст,
            //  в качестве результата метод возвращает сколько раз каждое из слов массива входит в этот текст. Здесь требуется использовать класс Dictionary.

            MessageProgram();

            //Задача №3. * Для двух строк написать метод, определяющий, является ли одна строка перестановкой другой.
            //Например:
            //badc являются перестановкой abcd.

            Exchanging();

            //Задача №4. *Задача ЕГЭ.
            //На вход программе подаются сведения о сдаче экзаменов учениками 9 - х классов некоторой средней школы. В первой строке сообщается количество учеников N,
            //которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
            //< Фамилия > < Имя > < оценки >,
            //где < Фамилия > — строка, состоящая не более чем из 20 символов, < Имя > — строка, состоящая не более чем из 15 символов, < оценки > —
            //через пробел три целых числа, соответствующие оценкам по пятибалльной системе. < Фамилия > и<Имя>, а также<Имя> и<оценки> разделены одним пробелом. Пример входной строки:
            //Иванов Петр 4 5 3
            //Требуется написать как можно более эффективную программу, которая будет выводить на экран фамилии и имена трёх худших по среднему баллу учеников.
            //Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трёх худших, следует вывести и их фамилии и имена.

            StudentListAnalyse();

            Maxyber.ConsolePause();
        }
Beispiel #6
0
 public static void Pause()
 {
     Maxyber.ConsolePause();
 }
Beispiel #7
0
        static void Main(string[] args)
        {
            string Family = "";
            string Name   = "";
            int    Age;
            double Height;
            int    Weight;

            //  Задание №1. Программа Анкета
            Console.WriteLine("Введите вашу фамилию");
            Family = Console.ReadLine();

            Console.WriteLine("Введите ваше имя");
            Name = Console.ReadLine();

            Console.WriteLine("Введите ваш возраст в годах");
            Age = Convert.ToInt32(Console.ReadLine());          // перевод в численное строкового значения возраста

            Console.WriteLine("Введите ваш рост в сантиметрах");
            Height = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Введите ваш вес в килограммах");
            Weight = Convert.ToInt32(Console.ReadLine());

            Console.Clear();
            Console.WriteLine(Family + " " + Name + ", возраст " + Age + " лет, вес " + Weight + " килограмм при росте " + Height + " сантиметров."); // способ вывода на экран склеиванием
            Console.WriteLine("{0} {1}, возраст {2} лет, вес {3} килограмм при росте {4} сантиметров.", Family, Name, Age, Weight, Height);           // форматированный вывод на экран
            Maxyber.ConsolePrint($"{Family} {Name}, возраст {Age} лет, вес {Weight} килограмм при росте {Height} сантиметров.");                      // форматированный вывод через знак $

            /* Задание №2. Ввести вес и рост человека. Рассчитать и вывести индекс массы тела (ИМТ) по формуле I=m/(h*h); где m — масса тела в килограммах, h — рост в метрах.
             */
            // программа рассчета индекса массы тела
            Height = Height / 100; // приводим рост человека к значению в метрах для расчета показателя
            double IMT;

            IMT = (Weight) / (Math.Pow(Height, 2));
            Console.WriteLine("Ваш индекс массы тела: {0:F2}", IMT);
            Console.ReadKey();
            Console.Clear();

            /* Задание №3.
             * а) Написать программу, которая подсчитывает расстояние между точками с координатами x1, y1 и x2,y2 по формуле r=Math.Sqrt(Math.Pow(x2-x1,2)+Math.Pow(y2-y1,2)).
             * Вывести результат, используя спецификатор формата .2f (с двумя знаками после запятой);
             * б) *Выполнить предыдущее задание, оформив вычисления расстояния между точками в виде метода.
             */
            int x1, x2, y1, y2;

            Console.WriteLine("введите последовательно координаты двух точек, x1, y1, x2, y2, нажимая Enter после ввода каждой координаты");
            x1 = Convert.ToInt32(Console.ReadLine());
            y1 = Convert.ToInt32(Console.ReadLine());
            x2 = Convert.ToInt32(Console.ReadLine());
            y2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine($"x1 - {x1}, y1 = {y1}, x2 - {x2}, y2 - {y2}");

            Console.WriteLine($"Расстояние между точкам: {PointsDistanceMethod(x1, y1, x2, y2):f2}");
            Maxyber.ConsolePause();

            /* Задание №4.
             * Написать программу обмена значениями двух переменных:
             * а) с использованием третьей переменной;
             *  б) *без использования третьей переменной.
             */

            string strX, strY; // переменные для которых требуется обмен значениями
            int    XX, YY;

            Console.Clear();
            Console.WriteLine("Введите числовое значение первой переменной x");
            strX = Console.ReadLine();
            Console.WriteLine("Введите числовое значение второй переменной y");
            strY = Console.ReadLine();
            // обмен значениями переменных с использованием третьей любой тип

            /*
             * strTemp = strY;
             * strY = strX;
             * strX = strTemp;
             */
            // обмен значениями переменных без использования третьей числовой тип
            XX = Convert.ToInt32(strX);
            YY = Convert.ToInt32(strY);
            XX = XX + YY;
            YY = XX - YY;
            XX = XX - YY;
            Console.WriteLine($"X = {XX}, Y = {YY}");
            Console.ReadKey();

            /* Задание №5.
             * а) Написать программу, которая выводит на экран ваше имя, фамилию и город проживания.
             * б) *Сделать задание, только вывод организовать в центре экрана.
             * в) **Сделать задание б с использованием собственных методов (например, Print(string ms, int x,int y).
             */
            Console.Clear();
            string City = "Балашиха", FIO;
            int    consoleWidth, consoleHeight;
            double xStart, yStart;

            consoleHeight = Console.WindowHeight;
            consoleWidth  = Console.WindowWidth;
            Console.WriteLine("Введите название города в котором живете");
            City = Console.ReadLine();
            Console.WriteLine("Введите ФИО, которое хотите отобразить");
            FIO = Console.ReadLine();
            Console.Clear();
            // рассчет стартовых координат вывода первой строки сообщения
            xStart        = (consoleWidth - FIO.Length) / 2;
            yStart        = consoleHeight / 2;
            consoleWidth  = Convert.ToInt32(Math.Floor(xStart));
            consoleHeight = Convert.ToInt32(yStart) - 1;

            PrintMsg(consoleWidth, consoleHeight, FIO); // вывод первой строки сообщения

            // рассчет стартовых координат вывода второй строчки сообщения
            consoleWidth  = Console.WindowWidth;
            xStart        = (consoleWidth - City.Length) / 2;
            consoleWidth  = Convert.ToInt32(Math.Floor(xStart));
            consoleHeight = consoleHeight + 1;

            PrintMsg(consoleWidth, consoleHeight, City); // вывод второй строки сообщения
            Maxyber.ConsolePause();

            /* Задание №6.
             *Создать класс с методами, которые могут пригодиться в вашей учебе(Print, Pause).
             */
            Console.Clear();
            Maxyber.ConsolePrint("Проверка работоспособности метода, который создан в собственном классе и должен поставить паузу после вывода этого сообщения");
        }