static public void TDArrayDemo() { TDArray myArray = new TDArray(); myArray.Fill(10, 10, 1, 1000); myArray.Print(); Maxyber.ConsolePrint("Заполнили двумерный массив размерностью 10 на 10 случайными числами от 1 до 999, вывели на печать."); int sum = SumAll(myArray); Console.WriteLine($"Array summ: {sum}"); Console.WriteLine($"MinValue: {myArray.MinValue("Value")}, MinValue coordinates: {myArray.MinValue("Coord")}"); Console.WriteLine($"MaxValue: {myArray.MaxValue("Value")}, MaxValue coordinates: {myArray.MaxValue("Coord")}"); Maxyber.ConsolePrint("Посчитали сумму всех элементов массива, значение и координаты минимального и максимального элемента массива"); Console.Clear(); TDArray my2Array = new TDArray(); string path = "../../data/tdarray.txt"; my2Array.ReadFromFile(path); Maxyber.ConsolePrint("Считали двумерный массив из файла data/tdarray.txt, в случае отсутствия файла программа сообщит об этом и остановит выполнение"); Console.Clear(); string path2 = "../../data/tdarrayrw.txt"; my2Array.WriteToFile(path2); Maxyber.ConsolePrint("Записали двумерный массив в файл data/tdarrayrw.txt, в случае, если файл уже есть предлагается его перезаписать или сразу выйти из программы"); Console.Clear(); }
public Complex AskNumber() { Complex result = new Complex(); Console.Write("Введите действительную часть комплексного числа: "); result.re = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите мнимую часть комплексного числа без \"i\": "); result.im = Convert.ToInt32(Console.ReadLine()); Maxyber.ConsolePrint("Вы ввели число: " + result.ToString()); return(result); }
// 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(); }
static public void ClassArrayDemo() { MassiveClass userMassive = new MassiveClass(); userMassive.Fill(20, -10000, 10000); userMassive.Print(); Maxyber.ConsolePrint("Массив заполненный случайными числами через метод класса массивов, 20 элементов от -10 000 до 10 000"); int pairs = MassiveClass.Pair(userMassive, 2); Maxyber.ConsolePrint("Количество пар в массиве, одно из чисел в которых делится на 3 без остатка"); Console.Clear(); MassiveClass arrayFileMassive = new MassiveClass(); arrayFileMassive = MassiveClass.ReadFile("../../data/arrayspec.txt"); arrayFileMassive.Print(); Maxyber.ConsolePrint("Заполнили массив из файла data/arrayspec.txt и вывели на экран консоли"); Console.Clear(); // Задача №3 MassiveClass newMassive = new MassiveClass(); newMassive.FillOrder(30, 1, 3); // заполнение массива числами в количестве 30 элементов от 1 с шагом 3 newMassive.Print(); Console.WriteLine("Сумма элементов массива: " + newMassive.Sum()); Maxyber.ConsolePrint("Заполнили массив количеством 30 элементов с началом 1 и шагом 3, далее вывели его на печать и посчитали сумму элементов массива"); MassiveClass new2Massive = new MassiveClass(); new2Massive = newMassive.Inverse(); new2Massive.Print(); Console.WriteLine("Сумма элементов массива: " + new2Massive.Sum()); Maxyber.ConsolePrint("Инвертировали предыдущий массив и вывели его на печать, посчитав сумму всех лементов"); new2Massive.Multi(-1); new2Massive.Print(); Maxyber.ConsolePrint("Умножили все элементы последнего массива на -1 и вывели его на печать"); Console.Clear(); MassiveClass new3Massive = new MassiveClass(); new3Massive.Fill(50, 1, 11); new3Massive.Print(); Console.WriteLine("Количество максимальных элементов массива:" + new3Massive.MaxCount()); Maxyber.ConsolePrint("Заполнили массив количеством 50 элементов случайными числами от 1 до 10, далее вывели количество максимальных значений в нем"); Console.Clear(); MassiveClass userMassiveDict = new MassiveClass(); userMassiveDict.Fill(200, 1, 10); userMassiveDict.Print(); Dictionary(userMassiveDict); Maxyber.ConsolePrint("Заполнили массив количеством 200 элементов случайными числами от 1 до 10, после чего вывели его на экран и создали словарь<int><int>, " + "который содержит информацию о том, сколько раз входит в массив каждый из элементов"); Console.Clear(); }
static void Main(string[] args) { // Задание №1. Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. // Заполнить случайными числами. Написать программу, позволяющую найти и вывести количество пар элементов массива, в которых только одно число делится на 3. // В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 6; 2; 9; –3; 6 ответ — 2. Massive(); // Задание №2. Реализуйте задачу 1 в виде статического класса StaticClass; // а) Класс должен содержать статический метод, который принимает на вход массив и решает задачу 1; // б) *Добавьте статический метод для считывания массива из текстового файла. Метод должен возвращать массив целых чисел; // в)**Добавьте обработку ситуации отсутствия файла на диске. // Задание №3. а) Дописать класс для работы с одномерным массивом.Реализовать конструктор, создающий массив определенного размера и заполняющий массив //числами от начального значения с заданным шагом.Создать свойство Sum, которое возвращает сумму элементов массива, // метод Inverse, возвращающий новый массив с измененными знаками у всех элементов массива(старый массив, остается без изменений), // метод Multi, умножающий каждый элемент массива на определённое число, свойство MaxCount, возвращающее количество максимальных элементов. // б)**Создать библиотеку содержащую класс для работы с массивом.Продемонстрировать работу библиотеки // е) ***Подсчитать частоту вхождения каждого элемента в массив(коллекция Dictionary< int,int>) ClassArrayDemo(); // Задание №4. Решить задачу с логинами из урока 2, только логины и пароли считать из файла в массив.Создайте структуру Account, содержащую Login и Password. Account account = new Account(); account.ReadFile("../../data/login.txt", ref account); if (account.Check(account) == true) { Maxyber.ConsolePrint("Пароль принят."); } else { Maxyber.ConsolePrint("Пароль введен неверно"); } Maxyber.ConsolePrint("Считали логин, пароль и название аккаунта из файла data/login.txt и предложили пользователю пройти проверку"); Console.Clear(); // Задание №5. а) Реализовать библиотеку с классом для работы с двумерным массивом.Реализовать конструктор, заполняющий массив случайными числами. // Создать методы, которые возвращают сумму всех элементов массива, сумму всех элементов массива больше заданного, свойство, // возвращающее минимальный элемент массива, свойство, возвращающее максимальный элемент массива, метод, возвращающий номер // максимального элемента массива(через параметры, используя модификатор ref или out). // **б) Добавить конструктор и методы, которые загружают данные из файла и записывают данные в файл. // ***в) Обработать возможные исключительные ситуации при работе с файлами. TDArrayDemo(); Maxyber.ConsolePrint("Домашнее задание полностью выполнено"); }
public static void FractionsCalc(Fractions number1, Fractions number2) // метод, выполняющий выбранную операцию с двумя дробями { string userProcedure = ""; do { Console.WriteLine("Введите необходимы тип операции с комплексными числами (+/сложение, -/вычитание, */умножение или произведение, / или деление), введите \"exit\" для выхода"); userProcedure = Console.ReadLine(); Fractions newResult = new Fractions(); switch (userProcedure) { case "+": case "сложение": newResult = number1.Plus(number2); Maxyber.ConsolePrint(number1.ToString() + " + " + number2.ToString() + " = " + newResult.ToString()); break; case "-": case "вычитание": newResult = number1.Minus(number2); Maxyber.ConsolePrint(number1.ToString() + " - " + number2.ToString() + " = " + newResult.ToString()); break; case "*": case "умножение": case "произведение": newResult = number1.Multi(number2); Maxyber.ConsolePrint(number1.ToString() + " * " + number2.ToString() + " = " + newResult.ToString()); break; case "/": case "деление": newResult = number1.Division(number2); Maxyber.ConsolePrint(number1.ToString() + " / " + number2.ToString() + " = " + newResult.ToString()); break; case "exit": Maxyber.ConsolePrint("Спасибо за пользование калькулятором комплексных чисел. Всего доброго."); return; default: Maxyber.ConsolePrint("Тип операции выбран неверно"); break; } } while (userProcedure != "exit"); }
static public void Massive() { int[] intArray = new int[20]; intArray = Maxyber.RandArray(-10000, 10000, 20); // создание массива случайных чисел Maxyber.ConsolePrintArray(intArray); // вывод массива случайных чисел на экран int pairCount = 0; for (int i = 0; i < intArray.Length - 2; i++) { if (((intArray[i] % 3 == 0) || (intArray[i + 1] % 3 == 0)) && ((intArray[i] % 3) != (intArray[i + 1]))) { pairCount++; Console.WriteLine("Пара чисел " + intArray[i] + " и " + intArray[i + 1] + " удовлетворяет условию."); } } Maxyber.ConsolePrint("Всего пар, отвечающих условию, что только одно из двух чисел делится на 3 без остатка: " + pairCount); Console.Clear(); }
static void Main(string[] args) { /* * // Задание №1 а) Дописать структуру Complex, добавив метод вычитания комплексных чисел. Продемонстрировать работу структуры. * // б) Дописать класс Complex, добавив методы вычитания и произведения чисел.Проверить работу класса. * // в) Добавить диалог с использованием switch демонстрирующий работу класса. * * // AskComplexNumbers(2); НЕ РАБОТАЕТ!!! метод формирования массива комплексных чисел, разобраться!!! * Complex complex1 = new Complex(); * complex1 = complex1.AskNumber(); * Complex complex2 = new Complex(); * complex2 = complex2.AskNumber(); * * ComplexCalc(complex1, complex2); * * // Задание №2 а) С клавиатуры вводятся числа, пока не будет введён 0 (каждое число в новой строке). Требуется подсчитать сумму всех нечётных положительных чисел. * // Сами числа и сумму вывести на экран, используя tryParse. * int[] arr; * arr = Maxyber.InputIntArray(); * Maxyber.ConsolePrintArray(arr); * Maxyber.SummArray(arr); */ // Задание №3. *Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть методы сложения, вычитания, умножения и деления дробей. // Написать программу, демонстрирующую все разработанные элементы класса. // *Добавить свойства типа int для доступа к числителю и знаменателю; // *Добавить свойство типа double только на чтение, чтобы получить десятичную дробь числа; // **Добавить проверку, чтобы знаменатель не равнялся 0.Выбрасывать исключение ArgumentException("Знаменатель не может быть равен 0"); // ***Добавить упрощение дробей. Fractions frac1 = new Fractions(); frac1 = frac1.AskNumber(); frac1 = frac1.Contraction(); Maxyber.ConsolePrint(frac1.ToString()); Fractions frac2 = new Fractions(); frac2 = frac2.AskNumber(); frac2 = frac2.Contraction(); Maxyber.ConsolePrint(frac2.ToString()); FractionsCalc(frac1, frac2); }
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("Проверка работоспособности метода, который создан в собственном классе и должен поставить паузу после вывода этого сообщения"); }