// метод задачи №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(); }
// Создаем метод, который принимает делегат // На практике этот метод сможет принимать любой метод // с такой же сигнатурой, как у делегата 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(); }
// 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(); }
// задача на перестаноку 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(); }
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(); }
public static void Pause() { Maxyber.ConsolePause(); }
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("Проверка работоспособности метода, который создан в собственном классе и должен поставить паузу после вывода этого сообщения"); }