Работаем дома

Форум о заработке в Интернет, фриланс, и о хобби, которое может принести деньги


    Язык программирования С# - Си Шарп.

    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Язык программирования С# - Си Шарп.

    Сообщение автор Admin Ср 4 Дек 2019 - 15:14

    Первое сообщение в теме :

    Сегодня продолжаю (начинаю) снова изучать Си Шарп. Продолжаю потому что уже разбирался в основах и немного понятно. Начинаю - потому что начинаю читать снова, так как подзабыл.  Embarassed

    Что то берут меня сомнения, что я опять осилю книгу. В прошлый раз пару книг прочитал, проводил даже занятия, но многое осталось непонятным ... всё таки учиться без учителя - трудновато. Да и эти грёбанные фигурные скобки выбешивают изрядно, хотя уже и привык к ним немного.   И так поехали....
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Пт 31 Янв 2020 - 13:09

    Это не задание и не решение, просто удобный код, который очень часто задают в заданиях. Проверить число на чётность.

    Код:
    using System;
    using System.Windows.Forms;
    using Microsoft.VisualBasic;

    class OddEvenDemo
    {
        static void Main()
        {
            int number, reminder;
            //считывание целого числа
            number = Int32.Parse(Interaction.InputBox("Введите целое число","Проверка"));
            // вычисляется остаток деления на 2
            reminder = number % 2;
            string txt = "Вы ввели ";
            txt += (reminder == 0 ? "чётное" : "нечётное") + " число!";
            MessageBox.Show(txt);

        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Сб 1 Фев 2020 - 12:32

    Задание:

    Напишите программу, которая проверяет, делится ли введённое пользователем число на 3.


    Решение задачи:
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value, rezValue;
            value = Int32.Parse(Interaction.InputBox("Введите целое число", "Проверка деления на 3"));
            rezValue = value % 3;
            MessageBox.Show((rezValue == 0) ? "число делится на 3" : "число не делится на 3");
        }
    }

    Не сложно, главное задать условие, чтобы число делилось на 3 без остатка, используя целочисленное деление.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Сб 1 Фев 2020 - 12:58

    Задание:
    Напишите программу, которая проверяет, удовлетворяет ли введённое пользователем число следующим критериям:

    • при делении на 5 в остатке должно быть 2
    • а при делении не 7 в остатке должно быть 1


    Решение задачи:
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value,rezValue1,rezValue2;
            value = Int32.Parse(Interaction.InputBox("Введите целое число"));
            rezValue1 = value % 5;
            rezValue2 = value % 7;
            MessageBox.Show((rezValue1==2 && rezValue2==1)?"число удовлетворяет условиям"
                :"число "+value+" не удовлетворяет условиям. \nПри делении на 5 остаток = "+rezValue1
                +"\nпри делении на 7 остаток = "+rezValue2
                ,"Условие: число / на 5 остаток =2, число / 7 остаток =1");

              
        }
    }
    P.S Честно говоря, я так и не нашёл число, которое удовлетворяло бы обоим условиям. Для большей ясности программу дополнил, чтобы в результате показывался также и результат остатка при целочисленном делении.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Сб 1 Фев 2020 - 13:20

    Задание

    Напишите программу, которая проверяет, удовлетворяет ли введённое пользователем число следующим критериям:
    число делится на 4 и оно должно быть больше 10


    Решение
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value, rezValue;
            //запрашиваем число у пользователя
            value = Int32.Parse(Interaction.InputBox("Введите целое число, не меньше 10"));
            rezValue = value % 4;
            MessageBox.Show((rezValue == 0 && value >= 10) ? "число "
                + value + " делится на 4 и оно больше десяти"
                : "число " + value + " не делится на 4 или оно меньше десяти"
                ,"Проверка критериев");

        }
    }

    Программку дополнил от себя, чтобы вывод результата был более понятен.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Сб 1 Фев 2020 - 13:39

    Задание
    Напишите программу, которая проверяет, попадает ли введённое пользователем число в диапазон
    от 5 до 10 включительно.



    Решение
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value;
            value = Int32.Parse(Interaction.InputBox("Введите целое число от 5 до 10"));
            MessageBox.Show((value >= 5 && value <= 10) ? "вы правильно ввели число"
                : "не правильное число");

        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Сб 1 Фев 2020 - 14:05

    Задание

    Напишите программу, которая проверяет, сколько тысяч во введённом пользователем числе.

    Решение
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            //Объявляем переменные
            int value, rezValue;
            //запрашиваем число, преобразуем в int
            value = Int32.Parse(Interaction.InputBox("Введите целое число больше 1000"));
            //узнаём сколько тысяч в числе
            rezValue = value / 1000 % 10;
            //выводим сообщение
            MessageBox.Show("В числе " + value + "\nтысяч = "+rezValue);
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 6 Фев 2020 - 11:19

    Задание

    Напишите программу, в которой пользователь вводит число, а программа проверяет делится ли оно на 3 и на 7. Результаты проверки отображаются в диалоговом окне. Используйте обработку исключений.



    Решение
    Код:
    using System;
    using System.Windows.Forms;
    using Microsoft.VisualBasic;

    class MyProrgam
    {
        static void Main()
        {
            int value=0;
            try
            {
                value = Int32.Parse(Interaction.InputBox("Введите целое число", "Ввод числа"));
                if (value % 7 == 0 && value % 3 == 0)
                {
                    MessageBox.Show("Число " + value + " подходит под условие", "Проверка деления на 3 и 7");
                }
                else
                {
                    MessageBox.Show("Число " + value + " не подходит под условие", "Проверка деления на 3 и 7");
                }
            }
            catch
            {
                MessageBox.Show("Это не целое число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox.Show("Программа закончила работу", "Ошибка");
            }
     
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 6 Фев 2020 - 11:47

    Задание С#

    Напишите программу, в которой пользователь последовательно вводит два целых числа.
    Программа определяет, какое из чисел больше или они равны и выводит сообщение в диалоговом окне.
    Используйте обработку исключений




    Решение задачи
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value1 = 0, value2 = 0;
            try
            {
                value1 = Int32.Parse(Interaction.InputBox("Введите целое число", "Ввод числа"));
                value2 = Int32.Parse(Interaction.InputBox("Введите целое число", "Ввод числа"));
                if (value1 >= value2)
                {              
                    MessageBox.Show("Число " + value1 + " больше или равно " + value2);
                }
                else
                {              
                    MessageBox.Show("Число " + value2 + " больше или равно " + value1);
                }
                
            }
            catch
            {
                MessageBox.Show("Вы не ввели число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox.Show("Прекращение работы программы");
            }
        }
    }

    В выше предоставленном решении, логика выполняется при условии (если  значение больше, или равно)
    В ниже предоставленном решении, проверяется как какое значение больше, либо если это не так, то значения равны.

    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int value1 = 0, value2 = 0;
            try
            {
                value1 = Int32.Parse(Interaction.InputBox("Введите целое число", "Ввод числа"));
                value2 = Int32.Parse(Interaction.InputBox("Введите целое число", "Ввод числа"));
                if (value1 > value2)
                {              
                    MessageBox.Show("Число " + value1 + " больше " + value2);
                }          
                else if (value2 > value1)
                {
                    MessageBox.Show("Число " + value2 + " больше " + value1);
                }
                else//в любых других значениях числа равны
                {
                    MessageBox.Show("Число " + value1 + " равно " + value2);
                }
                          
            }
            catch
            {
                MessageBox.Show("Вы не ввели число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox.Show("Прекращение работы программы");
            }
        }
    }

    Также в каждом из вариантов включён блок исключений. То есть, если пользователь ввел не целое число, либо текст, либо вообще ничего не ввёл, выводится сообщение об ошибке.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 6 Фев 2020 - 12:30

    Задание C#

    Напишите программу, в которой вычисляется сумма чисел, которые вводит пользователь.
    Программа выводит запрос на ввод числа, считывает введённое пользователем число, прибавляет его к сумме и снова выводит запрос на ввод числа. 
    Процесс продолжается до тех пор, пока пользователь не введёт нулевое значение. Используйте обработку исключений.



    Решение задачи
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            //Объявление двух переменных, для вводимых чисел и результата сложения
            int value,rez=0;
            //блок исключений
            try
            {
                //Запрашивает постоянный ввод чисел
                do
                {
                    value = Int32.Parse(Interaction.InputBox("Введите целое число. \nЕсли введёте 0, то запрос чисел прекратится"
                        , "Ввод числа"));
                    //результат суммируется с введёнными числами
                    rez += value;
                } while (value != 0);//если пользователь ввёл 0 то выводится сумма введённых чисел
                MessageBox.Show("Сумма введённых чисел = " + rez);
            }
            catch//если пользователь не ввёл целое число, используется обработка исключений и программа завершается
            {
                MessageBox.Show("Вы не ввели целое число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox.Show("Работа программы прекращена");
            }
        }
    }

    В программе также используется блок исключений, на случай, если пользователь не ввёл целое число.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 6 Фев 2020 - 13:25

    Задание C#

    Напишите программу, в которой пользователь вводит целое число в диапазоне от 1 до 7, а программа определяет по этому числу день недели.
    Если введённое пользователем число выходит за допустимый диапазон, выводится сообщение о том, что введено некорректное значение. Используйте оператор switch. Предложите механизм обработки ошибки, связанной с вводом не числового значения.



    Решение
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            int number;
            string txt;
            try
            {
                number = Int32.Parse(Interaction.InputBox("Введите число от 1 до 7 включительно", "Ввод числа"));
                switch (number)
                {
                    case 1:
                        txt = "понедельник";
                        break;
                    case 2:
                        txt = "вторник";
                        break;
                    case 3:
                        txt = "среда";
                        break;
                    case 4:
                        txt = "четверг";
                        break;
                    case 5:
                        txt = "пятница";
                        break;
                    case 6:
                        txt = "суббота";
                        break;
                    case 7:
                        txt = "воскресение";
                        break;
                    default:
                        txt = "некорректное значение";
                        break;                 
                }
                MessageBox.Show(txt, "День недели");
            }
            catch
            {
                MessageBox.Show("Вы не ввели число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                MessageBox.Show("Завершение программы");
            }
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Чт 6 Фев 2020 - 14:25

    Задание C#
    Напишите программу, в которой пользователю предлагается ввести название дня недели.
    По введённому названию программа определяет порядковый номер дня в неделе.
    Если пользователь вводит неправильное название дня, программа выводит сообщение о том, что такого дня нет.
    Предложите программу и на основе вложенных условных операторов и на основе оператора выбора switch.

    Решение задачи на основе вложенных условных операторов
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            //Объявляем переменные для ввода пользователя и для вывода значения
            //так как никаких арифметических операций не планируется,
            //вывод значения также будет инициализироваться как string (строковое значение)
           
            string day,value;
            //запрос у пользователя ввести день недели         
            day= Interaction.InputBox("Введите день недели с маленькой буквы", "Название дня недели");
            if (day == "понедельник")
            { value = "Порядковый номер недели: 1"; }
            else if (day == "вторник")
            { value = "Порядковый номер недели: 2"; }
            else if (day == "среда")
            { value = "Порядковый номер недели: 3"; }
            else if (day == "четверг")
            { value = "Порядковый номер недели: 4"; }
            else if (day == "пятница")
            { value = "Порядковый номер недели: 5"; }
            //небольшое исключение ошибки для пользователей, которые не знают как пишется день недели суббота
            //в задании этого нет, поэтому логику (или) можно убрать
            else if (day == "суббота" || day == "субота")
            { value = "Порядковый номер недели: 6"; }
            //небольшое исключение ошибки для пользователей, которые не знают как пишется день недели воскресенье
            //в задании этого нет, поэтому логику (или) можно убрать
            else if (day == "воскресенье" || day == "воскресение")
            { value = "Порядковый номер недели: 7"; }
            else
            //иначе все введённые значения не правдивы
            //в том числе, если никакого значения вообще не введено
            { value = "Такого дня не существует"; }
            //вывод на экран
            MessageBox.Show(value,"Порядковый день недели");                           
        } 
    }

    Решение задачи на основе оператора выбора switch
    Код:
    using System;
    using Microsoft.VisualBasic;
    using System.Windows.Forms;

    class MyProgram
    {
        static void Main()
        {
            string day, value;
            day = Interaction.InputBox("Введите день недели с маленькой буквы");
            switch (day)
            {
                case "понедельник":
                    value = "Порядковый номер дня недели: 1";
                    break;
                case "вторник":
                    value = "Порядковый номер дня недели: 2";
                    break;
                case "среда":
                    value = "Порядковый номер дня недели: 3";
                    break;
                case "четверг":
                    value = "Порядковый номер для недели : 4";
                    break;
                case "пятница":
                    value = "Порядковый номер для недели: 5";
                    break;
                case "суббота":
                    value = "Порядковый номер дня недели: 6";
                    break;
                case "воскресенье":
                    value = "Порядковый номер дня недели: 7";
                    break;
                default:
                    value = "Такого дня недели нет";
                    break;
            }
            MessageBox.Show(value);
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Вс 9 Фев 2020 - 14:39

    Задание

    Напишите программу, в которой вычисляется сумма нечётных чисел.
    Для проверки результат воспользуйтесь тем, что 2+4+6+...+2n=n(n+1)
    Предложите версии программы, использующие разные операторы цикла.


    Так как я ни в коем разе не математик, и школьные годы были так эдак лет 20 с лишним лет назад, я как то не очень допёр эту формулу. Да и программирование это сначала логика, а потом уже всё остальное. Взял более простое решение.
    Суть такова. 
    1. Есть значение k, которое по умолчанию рано 1 (для нечётных значений) .... если нужно чётное значение, то k=0
    2. В цикле к значению k (оно равно 1) добавляется +2, получаются значения 1,3,5,7,9 и т.д 
    3. В цикле значение k увеличивается до нечётного значения, которое ввёл пользователь
    4. Во втором счётчике все значения суммируются.

    Решение задачи с оператором do while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            int value, k=1,sum=0;
            Console.WriteLine("Введите нечётное значение, целое число");
            value = Int32.Parse(Console.ReadLine());
            do//делать пока выполняется условие
            {
                //к сумме прибавляем последующую нечётную цифру
                sum += k;
                //счётчик возрастания нечётного значения, начальное значение счётчика равно 1
                //в итоге счётчик постоянно растёт по нечётным значениям, 1,3,5,7 и т.д пока не станет равным
                //значению введённого пользователем
                k+=2;
            } while (k <= value); //прекратить цикл, когда (к) станет равно введённому значению
            Console.WriteLine("Сумма нечётных значений {0} равна {1}", value, sum);
            Console.ReadKey();
        }
    }

    Решение задачи с оператором for
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {     
            Console.WriteLine("Введите нечётное число");
            int k, value, sum;
            value= Int32.Parse(Console.ReadLine());
            for (k = 1, sum = 0; (k <= value); sum += k, k += 2) ;
            Console.WriteLine("Сумма нечётных чисел значения {0} =  {1}", value, sum);
            Console.ReadKey();
        }
    }


    Решение задачи с оператором while
    Код:
    using System;
    class MyProgram
    {
        static void Main()
        {     
            Console.WriteLine("Введите нечётное число");
            int k=1, value, sum=0;
            value = Int32.Parse(Console.ReadLine());
            while (k <= value)
            {
                sum += k;
                k += 2;
            }
            Console.WriteLine("Сумма нечётных значений числa {0} = {1}", value, sum);
            Console.ReadKey();
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Вс 9 Фев 2020 - 15:16

    Задание 

    Напишите программу для вычисления суммы квадратов натуральных чисел.
    Для проверки результата воспользуйтесь тем, что 1^2+2^2+3^2+...+n^2=(n(n+1)(2n+1))/6
    Предложите решение с разными операторами цикла.

    Опять же была предложена длинная и ни фига не понятная формула. По аналогии с предыдущем решением поправил её и получилось, что
    1. к сумме добавляем квадрат каждого целого числа, которое идёт по порядку до значения, которое ввёл пользователь
    то есть 1^2+2^2+3^2+...    в программе это sum+=k*k
    2. Счётчик порядка чисел k++ (каждое следующее число увеличивается на 1)
    3. Всё работает пока счётчик не доходит до заданного пользователем значения, после чего выводится результат.


    Решение задачи с помощью цикла while do
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
           
            int value, k = 1,sum=0;
            Console.WriteLine("Введите значение");
            value = Int32.Parse(Console.ReadLine());
            do
            {
                sum += k*k;         
                k++;
            } while (k <= value);
            Console.WriteLine("Сумма квадратов целого числа {0} = {1}", value, sum);
            Console.ReadKey();

        }
    }

    Решение задачи с оператором for
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {     
            int value, k = 1,sum=0;
            Console.WriteLine("Введите значение");
            value = Int32.Parse(Console.ReadLine());
            //первого условия нет, так как объявили и инициализировали ранее
            //проводится проверка условия
            //в третьей часте проводится решение
            for (; (k <= value); sum += k*k, k++) ;
            //вывод результа пользователю
            Console.WriteLine("Сумма квадратов целого числа {0} = {1}", value, sum);
            Console.ReadKey();
        }
    }

    Решение задачи с оператором while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {     
            int value, k = 1,sum=0;
            Console.WriteLine("Введите значение");
            value = Int32.Parse(Console.ReadLine());
            while (k <= value)
            {
                sum += k * k;
                k++;
            }
            Console.WriteLine("Сумма квадратов целого числа {0} = {1}", value, sum);
            Console.ReadKey();
        }
    }
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Вс 9 Фев 2020 - 17:06

    Задача

    Напишите программу, которая выводит последовательность чисел Фибоначчи.
    Первые два числа в этой последовательности равны 1, а каждое следующее число равно сумме двух предыдущих(получается последовательность 1,1,2,3,5,8,13,21,34 и так далее) Количество чисел в последовательности
    вводится пользователем.
    Предложите версии программы, использующие разные операторы цикла.

    Первое решение задачи размещают с комментариями, последующие для сокращения времени комментировать не буду, так как логика одинаковая.

    Решение задачи с помощью оператора цикла do while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //объявляем переменные (значение для ввода пользователя, число Фибоначчи, первоначальные значения
            //первого и второго числа
            int value, number, one = 1, two = 1;
            Console.WriteLine("Введите количество чисел в последовательности Фибоначчи, \nне меньше 3");
            //запрос на количество чисел Фибоначчи, конвертируем со строки в целое.
            value = Int32.Parse(Console.ReadLine());
            //Если число указанное пользователем выше , чем 3, то вычисляем
            if (value >= 3)
            {
                //пустая строка
                Console.WriteLine();
                //выводим первые два числа Фибоначчи.
                Console.Write(one + "," + two);
                //цикл вычисления
                do
                {
                    //вычисляем следующее число Фибоначчи
                    number = one + two;
                    //используем числовой сдвиг вправо, т.е первой переменной присваиваем значение второй переменной
                    one = two;
                    //так как результат это следующее число Фибоначчи, присваиваем его значение второй переменной
                    two = number;
                    //уменьшаем значение введённое пользователем на 1         
                    value--;
                    //выводим результат         
                    Console.Write("," + number);
                } while (value - 2 > 0);
            }else
            {
                Console.WriteLine("Число указано не верно");
            }
            //ждём нажатие клавиши для завершения программы
            Console.ReadKey();

           
        }
    }

    Так как по условиям задачи количество чисел, должен задавать пользователь, а первые два числа 1,1 по умолчанию. Сделал так, чтобы они также входили в диапазон чисел указанный пользователем.  Но в таком случае, если  пользователем будет введено число меньше 3, выходит сообщение, что неверно указано число.

    Решение задачи с помощью оператора цикла for
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //объявляем переменные (значение для ввода пользователя, число Фибоначчи, первоначальные значения
            //первого и второго числа
            metka1:
            int value, number, one = 1, two = 1;
            Console.WriteLine("Введите количество чисел в последовательности Фибоначчи, \nне меньше 3");
            //запрос на количество чисел Фибоначчи, конвертируем со строки в целое.
            value = Int32.Parse(Console.ReadLine());
            //Если число указанное пользователем выше , чем 3, то вычисляем
            if (value >= 3)
            {
                //пустая строка
                Console.WriteLine();
                //выводим первые два числа Фибоначчи.
                Console.Write(one + "," + two);
                //цикл вычисления
                for (; (value - 2 > 0); value--)
                {
                    number = one + two;
                    one = two;
                    two = number;
                    Console.Write("," + number);
                }
            }else
            {
                Console.WriteLine("Число указано не верно");
                Console.WriteLine("Укажите число снова, нажмите Enter");
                Console.WriteLine("");
                Console.ReadKey();       
                goto metka1;
            }
            //ждём нажатие клавиши для завершения программы
            Console.ReadKey();

           
        }
    }

    Добавил повторный ввод пользователем, если он набрал число меньше 3. Также попробовал использовать оператор goto

    Решение задачи с помощью оператора цикла while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            int one = 1, two = 1, number, value;
            Console.WriteLine("Введите количество чисел в последовательности Фибоначчи");
            value = Int32.Parse(Console.ReadLine());
            Console.WriteLine();
            Console.Write(one + "," + two);
            while (value > 0)
            {
                number = one + two;
                one = two;
                two = number;
                value--;
                Console.Write(","+ number);
            }
            Console.ReadKey();
        }
    }

    В выше предоставленном примере выводится два числа по умолчанию 1,1 плюс количество указанных пользователем чисел Фибоначчи.
    Admin
    Admin
    Admin
    Admin


    Сообщения : 214
    Репутация : 0
    Дата регистрации : 2013-01-30

    Язык программирования С# - Си Шарп. - Страница 2 Empty Re: Язык программирования С# - Си Шарп.

    Сообщение автор Admin Пн 10 Фев 2020 - 15:28

    Задание

    Напишите программу, в которой пользователем вводится два целых числа.
    Программа выводит все целые числа - начиная с наименьшего (из двух введённых) и заканчивая наибольшим.
    Предложите разные версии программы(с использованием разных операторов цикла) , а также механизм обработки исключений.



    Решение задачи с оператором цикла do while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //Обявляем переменные
            int one, two,value1,value2;
            //блок исключений
            try
            {
                //ввод пользователя
                Console.WriteLine("Введите первое целое число");
                one = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите второе целое число");
                two = Int32.Parse(Console.ReadLine());
                //определяем меньше число и присваиваем ему переменную value1
                //вывод на экран первое меньшее число
                if (one < two)
                {
                    value1 = one;
                    value2 = two;
                    Console.Write(value1);
                }
                else
                {
                    value1 = two;
                    value2 = one;
                    Console.Write(value1);
                }
                //цикл вывода чисел по возрастанию
                do
                {
                    value1++;
                    Console.Write(","+value1);
                } while (value1 < value2);
                //второй блок исключений
            }
            catch
            {
                Console.WriteLine("Введённое число некорректно");
            }
            //ожидаем нажатие клавиши для закрытия консоли
            Console.ReadKey();
        }
    }

    Решение задачи с оператором цикла for
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //Обявляем переменные
            int one, two,value1,value2;
            //блок исключений
            try
            {
                //ввод пользователя
                Console.WriteLine("Введите первое целое число");
                one = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите второе целое число");
                two = Int32.Parse(Console.ReadLine());
                //определяем меньше число и присваиваем ему переменную value1
                //вывод на экран первое меньшее число
                if (one < two)
                {
                    value1 = one;
                    value2 = two;
                    Console.Write(value1);
                }
                else
                {
                    value1 = two;
                    value2 = one;
                    Console.Write(value1);
                }
                //цикл вывода чисел по возрастанию
                for (; (value1 <= value2); value1++)
                {
                    Console.Write("," + value1);
                }
                //второй блок исключений
            }
            catch
            {
                Console.WriteLine("Введённое число некорректно");
            }
            //ожидаем нажатие клавиши для закрытия консоли
            Console.ReadKey();
        }
    }

    Решение задачи с помощью оператора цикла while
    Код:
    using System;

    class MyProgram
    {
        static void Main()
        {
            //Обявляем переменные
            int one, two,value1,value2;
            //блок исключений
            try
            {
                //ввод пользователя
                Console.WriteLine("Введите первое целое число");
                one = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите второе целое число");
                two = Int32.Parse(Console.ReadLine());
                //определяем меньше число и присваиваем ему переменную value1
                //вывод на экран первое меньшее число
                if (one < two)
                {
                    value1 = one;
                    value2 = two;
                    Console.Write(value1);
                }
                else
                {
                    value1 = two;
                    value2 = one;
                    Console.Write(value1);
                }
                //цикл вывода чисел по возрастанию
                while(value1<value2)
                {
                    value1++;
                    Console.Write("," + value1);
                }
                //второй блок исключений
            }
            catch
            {
                Console.WriteLine("Введённое число некорректно");
            }
            //ожидаем нажатие клавиши для закрытия консоли
            Console.ReadKey();
        }
    }

      Текущее время Вс 3 Ноя 2024 - 16:14