예제 #1
0
        //Ронжин Л.
        //2.Реализуйте задачу 1 в виде статического класса StaticClass;
        //  а) Класс должен содержать статический метод, который принимает на вход массив и решает задачу 1;
        //  б) *Добавьте статический метод для считывания массива из текстового файла.
        //Метод должен возвращать массив целых чисел;
        //  в)**Добавьте обработку ситуации отсутствия файла на диске.
        static void Main(string[] args)
        {
            int n = 20;
            int x = 10000;
            int count;

            int[] arr = StaticClass.Add(n, x);
            MyMetods.Print($"Массив из {n} чисел от {-x} до {x}");
            StaticClass.PrintArray(arr);
            count = StaticClass.CountPairs(arr);
            Console.WriteLine($"Количество пар, в которых 2 элемента подряд делятся на 3, равно - {count}");
            Console.WriteLine("Запись в файл и получение маччива из него");
            // пункт б и в.
            StaticClass.SaveToFile("temp.txt", n, arr);
            StaticClass.PrintArray(StaticClass.AddFromFile("temp.txt"));
            Console.WriteLine("Чтение из несуществующего файла");
            try
            {
                StaticClass.PrintArray(StaticClass.AddFromFile("temp1.txt"));
            }
            catch
            {
                Console.WriteLine("Файл не найден.");
            }
            MyMetods.Pause();
        }
예제 #2
0
        //Ронжин Л.
        //3.*Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел.
        //Предусмотреть методы сложения, вычитания, умножения и деления дробей.
        //Написать программу, демонстрирующую все разработанные элементы класса.
        //* Добавить свойства типа int для доступа к числителю и знаменателю;
        //* Добавить свойство типа double только на чтение, чтобы получить десятичную дробь числа;
        //** Добавить проверку, чтобы знаменатель не равнялся 0. Выбрасывать исключение ArgumentException("Знаменатель не может быть равен 0");
        //*** Добавить упрощение дробей.
        static void Main(string[] args)
        {
            string mes1   = "Введите числитель 1й дроби";
            string mes2   = "Введите знаменатель 1й дроби";
            Ratio  ratio1 = new Ratio(MyMetods.ReadInt(mes1), MyMetods.ReadInt(mes2));

            mes1 = "Введите числитель 2й дроби";
            mes2 = "Введите знаменатель 2й дроби";
            Ratio ratio2 = new Ratio();

            ratio2.M = MyMetods.ReadInt(mes1);
            ratio2.N = MyMetods.ReadInt(mes2);

            MyMetods.Print($"У Вас есть 2 дроби:{ratio1} и {ratio2}.");

            MyMetods.Print($"В десятичной форме данные дроби имеют вид: {ratio1.Des} и {ratio2.Des}.");

            Ratio rez;

            rez = Ratio.Simplification(Ratio.Sum(ratio1, ratio2));
            Console.WriteLine($"{ratio1} + {ratio2} = {rez}");

            rez = Ratio.Simplification(Ratio.Minus(ratio1, ratio2));
            Console.WriteLine($"{ratio1} - {ratio2} = {rez}");

            rez = Ratio.Simplification(Ratio.Multi(ratio1, ratio2));
            Console.WriteLine($"{ratio1} * {ratio2} = {rez}");

            rez = Ratio.Simplification(Ratio.Div(ratio1, ratio2));
            Console.WriteLine($"{ratio1} / {ratio2} = {rez}");

            MyMetods.Pause();
        }
예제 #3
0
        static void Main(string[] args)
        {
            /*  1. Написать программу «Анкета». Последовательно задаются вопросы (имя, фамилия, возраст,
             * рост, вес). В результате вся информация выводится в одну строчку:
             * а) используя склеивание;
             * б) используя форматированный вывод;
             * в) используя вывод со знаком $.          */
            #region
            //MyMetods cons = new MyMetods();
            MyMetods.Print("Укажите Ваше имя.");
            string name = Console.ReadLine();
            MyMetods.Print("Укажите Вашу фамилию.");
            string surName = Console.ReadLine();
            MyMetods.Print("Укажите Ваш возраст.");
            uint age = MyMetods.ReadUint();
            MyMetods.Print("Укажите Ваш вес в килограммах.");
            double weight = MyMetods.ReadDouble();
            MyMetods.Print("Укажите Ваш рост в метрах.");
            double growth = MyMetods.ReadDouble();
            //Вариант а
            Console.WriteLine("Вариант а.\nИмя: " + name + " Фамилия: " + surName + " Возраст: " + age + ", рост: " + growth + "м, вес: " + weight + "кг.");
            //Вариант б
            Console.WriteLine("Вариант б.\nИмя: {0} Фамилия: {1} Возраст: {2}, рост: {3}м, вес: {4}кг.", name, surName, age, growth, weight);
            //Вариант в
            Console.WriteLine($"Вариант в.\nИмя: {name} Фамилия: {surName} Возраст: {age}, рост: {growth}м, вес: {weight}кг.");
            MyMetods.Pause();

            #endregion
        }
예제 #4
0
        //Ронжин Л.
        //1. Дан целочисленный массив из 20 элементов.
        //Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно.
        //Заполнить случайными числами.
        //Написать программу, позволяющую найти и вывести количество пар элементов массива,
        //в которых только одно число делится на 3. В данной задаче под парой подразумевается
        //два подряд идущих элемента массива.Например, для массива из пяти элементов: 6; 2; 9; –3; 6 ответ — 2.

        //Несовсем понял, что требуется в данной задаче, написано сначало "кол-во пар, в которых только одно число делится на 3",
        //а далее описание пары где это "2 подряд элемента делящихся на 3". Сдела как по втрому варианту.
        static void Main(string[] args)
        {
            int n = 20;

            int[]  arr   = new int[n];
            int    x     = 10000;
            int    count = 0;
            Random rand  = new Random();

            MyMetods.Print($"Массив из {n} чисел от {-x} до {x}");
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = Convert.ToInt32(x * (rand.NextDouble() * 2 - 1));
                Console.WriteLine($"{i} - {arr[i]}");
            }
            Console.WriteLine();
            //for (int i = 0; i < arr.Length; i++)
            //{
            //    Console.WriteLine($"{i} - {arr[i]%3}");
            //}
            for (int i = 1; i < arr.Length; i++)
            {
                if (arr[i - 1] % 3 == 0 && arr[i] % 3 == 0)
                {
                    count++;
                }
                //Console.WriteLine($"{i} - {arr[i]}");
            }
            Console.WriteLine($"Количество пар, в которых 2 элемента подряд делятся на 3, равно - {count}");
            MyMetods.Pause();
        }
예제 #5
0
        //2. Написать метод подсчета количества цифр числа.
        static void Main(string[] args)
        {
            MyMetods.Print("Введите целое положительное число.");
            long n = MyMetods.ReadLong();

            Console.WriteLine($"Количкество чисел в числе {n} - {MyMetods.CountNumber(n)}.");
            MyMetods.Pause();
        }
예제 #6
0
        /*4. Реализовать метод проверки логина и пароля.
         * На вход метода подается логин и пароль.
         * На выходе истина, если прошел авторизацию, и ложь, если не прошел (Логин: root, Password: GeekBrains).
         * Используя метод проверки логина и пароля, написать программу: пользователь вводит логин и пароль,
         * программа пропускает его дальше или не пропускает. С помощью цикла do while ограничить ввод пароля тремя попытками.*/
        static void Main(string[] args)
        {
            bool Autorization(string userLogin, string userPassword)
            {
                string login    = "******";
                string password = "******";

                if (userLogin.ToLower() == login && userPassword == password)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            //string login = "******";
            //string password = "******";
            int count    = 1; // 1 т.к. использован цикл do while
            int tryCount = 3;

            do
            {
                MyMetods.Print("Введите логин.");
                string userLogin = Console.ReadLine();
                MyMetods.Print("Введите пароль.");
                string userPassword = Console.ReadLine();

                if (Autorization(userLogin, userPassword))
                {
                    MyMetods.Print("Вы вошли в систему.");
                    //count = trycount;
                    break;
                }
                else
                {
                    if (count == tryCount)
                    {
                        MyMetods.Print("Вы ввели неверный логин или пароль.\nВсе попытки использованы.\n");
                    }
                    else
                    {
                        string str;
                        if (tryCount - count == 2)
                        {
                            str = "ки";
                        }
                        else
                        {
                            str = "ка";
                        }
                        MyMetods.Print($"Вы ввели неверный логин или пароль.\nПопробуйте еще раз. У вас осталось {tryCount - count} попыт{str}.\n");
                    }
                }
            } while (count++ < tryCount);
            MyMetods.Pause();
        }
예제 #7
0
        static void Main(string[] args)
        {
            MyMetods.Print("Введите первое число.");
            int a = MyMetods.ReadInt();

            MyMetods.Print("Введите второе число.");
            int b = MyMetods.ReadInt();

            Console.WriteLine($"От a до b:              {MyMetods.RecPrint(a, b)}");
            Console.WriteLine($"От a до b(вар 2):       {MyMetods.RecPrintV2(a, b)}");
            Console.WriteLine($"Сумма от a до b:        {MyMetods.RecSum(a, b)}");
            Console.WriteLine($"Сумма от a до b(вар 2): {MyMetods.RecSumV2(a, b)}");
            MyMetods.Pause();
        }
예제 #8
0
 static void Main(string[] args)
 {
     /*2.Ввести вес и рост человека. Рассчитать и вывести индекс массы тела(ИМТ) по формуле
      *   I = m / (h * h); где m — масса тела в килограммах, h — рост в метрах.*/
     #region
     MyMetods.Print("Укажите Ваш вес в килограммах.");
     double weight = MyMetods.ReadDouble();
     MyMetods.Print("Укажите Ваш рост в метрах.");
     double growth        = MyMetods.ReadDouble();
     double indexBodyMass = weight / (Math.Pow(growth, 2));
     Console.WriteLine($"Ваш индекс массы тела (ИМТ), при росте {growth} и весе {weight}, составляет: {indexBodyMass}.");
     MyMetods.Pause();
     #endregion
 }
예제 #9
0
        //1. Написать метод, возвращающий минимальное из трёх чисел.
        static void Main(string[] args)
        {
            MyMetods.Print("Введите первое число.");
            double a = MyMetods.ReadDouble();

            MyMetods.Print("Введите второе число.");
            double b = MyMetods.ReadDouble();

            MyMetods.Print("Введите третье число.");
            double c = MyMetods.ReadDouble();

            Console.WriteLine($"Максимальное число из {a}, {b} и {c} - {MyMetods.MaxNumber(a, b, c)}.");
            Console.WriteLine($"Минимальное число из {a}, {b} и {c} - {MyMetods.MinNumber(a, b, c)}.");
            MyMetods.Pause();
        }
예제 #10
0
        static void Main(string[] args)
        {
            #region
            double defIMB      = 18.5; //верхний придел ИМТ при дефиците
            double normIMB     = 25;   //верхний придел ИМТ при норме
            double excIMB      = 30;   // верхний придел ИМТ при избыт. массе тела
            double obesity1IMB = 35;   //верхний придел ИМТ при ожирении 1ст
            double obesity2IMB = 40;   //верхний придел ИМТ при ожирении 2ст, все что выше ожирение 3ст

            MyMetods.Print("Укажите Ваш вес в килограммах.");
            double weight = MyMetods.ReadDouble();
            MyMetods.Print("Укажите Ваш рост в метрах.");
            double growth        = MyMetods.ReadDouble();
            double indexBodyMass = weight / (Math.Pow(growth, 2));

            if (indexBodyMass < defIMB)
            {
                MyMetods.Print("У Вас дефицит массы тела.");
                ChangeMass(normIMB, defIMB, weight, growth);
            }
            else if (indexBodyMass >= defIMB && indexBodyMass < normIMB)
            {
                MyMetods.Print("У Вас нормальная масса тела.");
            }
            else if (indexBodyMass >= normIMB && indexBodyMass < excIMB)
            {
                MyMetods.Print("У Вас избыточная масса тела.");
                ChangeMass(normIMB, defIMB, weight, growth);
            }
            else if (indexBodyMass >= excIMB && indexBodyMass < obesity1IMB)
            {
                MyMetods.Print("У Вас ожирение | степени.");
                ChangeMass(normIMB, defIMB, weight, growth);
            }
            else if (indexBodyMass >= obesity1IMB && indexBodyMass < obesity2IMB)
            {
                MyMetods.Print("У Вас ожирение || степени.");
                ChangeMass(normIMB, defIMB, weight, growth);
            }
            else
            {
                MyMetods.Print("У Вас ожирение ||| степени.");
                ChangeMass(normIMB, defIMB, weight, growth);
            }

            #endregion
            MyMetods.Pause();
        }
예제 #11
0
        //Ронжин Л.
        //1. а) Дописать структуру Complex, добавив метод вычитания комплексных чисел.Продемонстрировать работу структуры.
        //б) Дописать класс Complex, добавив методы вычитания и произведения чисел.Проверить работу класса.
        //в) Добавить диалог с использованием switch демонстрирующий работу класса.
        static void Main(string[] args)
        {
            string  mes1     = "Введите вещественную часть 1го числа";
            string  mes2     = "Введите мнимую часть 1го числа";
            Complex complex1 = new Complex(MyMetods.ReadInt(mes1), MyMetods.ReadInt(mes2));

            //Console.WriteLine(complex1);
            mes1 = "Введите вещественную часть 2го числа";
            mes2 = "Введите мнимую часть 2го числа";
            Complex complex2 = new Complex(MyMetods.ReadInt(mes1), MyMetods.ReadInt(mes2));

            //Console.WriteLine(complex2);
            Complex rez;

            MyMetods.Print($"У Вас есть 2 комплексных числа {complex1} и {complex1}.\n" +
                           $"Вы можете их сложить, найти их разницу или умножить.\n" +
                           $"Введите соответствующий символ.\n" +
                           $"\"+\" - для сложения,\n\"-\" - для нахождения разницы,\n\"*\" - для умножения.");

            string sym = Console.ReadLine();

            switch (sym)
            {
            case "+":
                rez = Complex.Sum(complex1, complex2);
                Console.WriteLine($"({complex1}) {sym} ({complex2}) = {rez}");
                break;

            case "-":
                rez = Complex.Subtraction(complex1, complex2);
                Console.WriteLine($"({complex1}) {sym} ({complex2}) = {rez}");
                break;

            case "*":
                rez = Complex.Multi(complex1, complex2);
                Console.WriteLine($"({complex1}) {sym} ({complex2}) = {rez}");
                break;

            default:
                MyMetods.Print("Вы выбрали несуществующее действие, программа ничего не выполнила.");
                break;
            }


            MyMetods.Pause();
        }
예제 #12
0
        static void Main(string[] args)
        {
            /*5.а) Написать программу, которая выводит на экран ваше имя, фамилию и город проживания.
             *  б) *Сделать задание, только вывод организовать в центре экрана.
             *  в) **Сделать задание б с использованием собственных методов (например, Print(string ms, int
             *  x,int y).*/
            #region
            MyMetods.Print("Леонид Ронжин, город Санкт-Петербург.");

            int row = Console.CursorTop;

            Console.SetCursorPosition(40, ++row);
            MyMetods.Print("Леонид Ронжин, город Санкт-Петербург.");
            MyMetods.Print("Леонид Ронжин, город Санкт-Петербург.", 40, row += 2);
            MyMetods.Print("Леонид Ронжин, город Санкт-Петербург.", 40, row += 2, ConsoleColor.Red);
            MyMetods.Pause();
            #endregion
        }
예제 #13
0
        //3. С клавиатуры вводятся числа, пока не будет введен 0. Подсчитать сумму всех нечетных положительных чисел.
        static void Main(string[] args)
        {
            MyMetods.Print("Введите целое число.");
            int n   = MyMetods.ReadInt();
            int sum = 0;

            do
            {
                if (n > 0 && (n % 2 != 0))
                {
                    sum += n;
                }
                MyMetods.Print("Введите следующее число.");
                n = MyMetods.ReadInt();
            }while (n != 0);
            Console.WriteLine($"Сумма всех нечетных положительных чисел введенных с клавиатуры - {sum}.");
            MyMetods.Pause();
        }
예제 #14
0
        //Ронжин Л.
        //4.Решить задачу с логинами из урока 2, только логины и пароли считать из файла в массив.
        //Создайте структуру Account, содержащую Login и Password.
        static void Main(string[] args)
        {
            string[,] arr = Account.ReadFile("LoginPass.txt");

            int count    = 1; // 1 т.к. использован цикл do while
            int tryCount = 3;

            do
            {
                MyMetods.Print("Введите логин.");
                string userLogin = Console.ReadLine();
                MyMetods.Print("Введите пароль.");
                string userPassword = Console.ReadLine();

                if (Account.Autorization(userLogin, userPassword))
                {
                    MyMetods.Print("Вы вошли в систему.");
                    //count = trycount;
                    break;
                }
                else
                {
                    if (count == tryCount)
                    {
                        MyMetods.Print("Вы ввели неверный логин или пароль.\nВсе попытки использованы.\n");
                    }
                    else
                    {
                        string str;
                        if (tryCount - count == 2)
                        {
                            str = "ки";
                        }
                        else
                        {
                            str = "ка";
                        }
                        MyMetods.Print($"Вы ввели неверный логин или пароль.\nПопробуйте еще раз. У вас осталось {tryCount - count} попыт{str}.\n");
                    }
                }
            } while (count++ < tryCount);
            MyMetods.Pause();
        }
예제 #15
0
        //Ронжин Л.
        //2. а)  С клавиатуры вводятся числа, пока не будет введён 0 (каждое число в новой строке).
        //Требуется подсчитать сумму всех нечётных положительных чисел.
        //Сами числа и сумму вывести на экран, используя tryParse.
        //б) Добавить обработку исключительных ситуаций на то, что могут быть введены некорректные данные.
        // При возникновении ошибки вывести сообщение.Напишите соответствующую функцию;
        static void Main(string[] args)
        {
            // Пункт б как я понимаю был выполнен еще на 1м уроке, где я заранее использовал tryParse
            MyMetods.Print("Введите целое число.");
            int    n   = MyMetods.ReadInt();
            int    sum = 0;
            string str = n.ToString();

            do
            {
                if (n > 0 && (n % 2 != 0))
                {
                    sum += n;
                }
                MyMetods.Print("Введите следующее число.");
                n   = MyMetods.ReadInt();
                str = str + ", " + n.ToString();
            }while (n != 0);
            Console.WriteLine($"Сумма всех нечетных положительных чисел из ряда: {str} составляет {sum}.");
            MyMetods.Pause();
        }
예제 #16
0
 static void Main(string[] args)
 {
     /*3.а) Написать программу, которая подсчитывает расстояние между точками с координатами x1,
      *  y1 и x2,y2 по формуле r=Math.Sqrt(Math.Pow(x2-x1,2)+Math.Pow(y2-y1,2). Вывести результат,
      *  используя спецификатор формата .2f (с двумя знаками после запятой);
      *  б) *Выполнить предыдущее задание, оформив вычисления расстояния между точками в виде
      *  метода.*/
     #region
     MyMetods.Print("Укажите координату X1.");
     double x1 = MyMetods.ReadDouble();
     MyMetods.Print("Укажите координату Y1.");
     double y1 = MyMetods.ReadDouble();
     MyMetods.Print("Укажите координату X2.");
     double x2 = MyMetods.ReadDouble();
     MyMetods.Print("Укажите координату Y2.");
     double y2 = MyMetods.ReadDouble();
     double r  = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
     Console.WriteLine($"Вариант а.\nРасстояние между точками составляет : {r:f}.");
     Console.WriteLine($"Вариант б.\nРасстояние между точками составляет : {MyMetods.distance(x1, y1, x2, y2):f}.");
     MyMetods.Pause();
     #endregion
 }
예제 #17
0
        static void Main(string[] args)
        {
            /*4. Написать программу обмена значениями двух переменных:
             *  а) с использованием третьей переменной; */
            #region
            MyMetods.Print("Вариант а.\nУкажите 1ю переменную.");
            int a = MyMetods.ReadInt();
            MyMetods.Print("Укажите 2ю переменную.");
            int b = MyMetods.ReadInt();
            int c;
            c = a;
            a = b;
            b = c;
            Console.WriteLine($"Первая переменная: {a}.\nВторая переменная: {b}.");

            /* б) *без использования третьей переменной. */
            MyMetods.Print("\nВариант б. Те же значения обратно.");
            a = a + b;
            b = a - b;
            a = a - b;
            Console.WriteLine($"Первая переменная: {a}.\nВторая переменная: {b}.");
            MyMetods.Pause();
            #endregion
        }