W.2. Использование условного оператора в теле операторов цикла с условием

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи. Пример решения.
Решены задачи: 1,2,5,6. Не решены: 3-4, 7-25.

Задачи

W2.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» квадратного корня из всех целых чисел от a до b (a>b).
Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.

Внимание! До решения задач, связанных с обработкой заданного натурального числа, рекомендуется решить задачу W2.1.

W2.2. Дано натуральное число. Определить:
а) количество цифр 3 в нем;
б) сколько раз в нем встречается последняя цифра;
в) количество четных цифр в нем. Составное условие и более одного неполного условного оператора не использовать;
г) сумму его цифр, больших пяти;
д) произведение его цифр, больших семи;
е) сколько раз в нем встречаются цифры 0 и 5 (всего).

W2.3. Дано натуральное число. Определить:
а) сколько раз в нем встречается цифра а;
б) количество его цифр, кратных z (значение z вводится с клавиатуры; z = 2, 3, 4);
в) сумму его цифр, больших a (значение a вводится с клавиатуры; 0 <= a <= 8);
г) сколько раз в нем встречаются цифры x и y.

W2.4. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:
а) сумму всех чисел последовательности, больших числа x;
б) количество всех четных чисел последовательности.

W2.5. Дана последовательность ненулевых целых чисел, оканчивающая нулем. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)

W2.6. Дано натуральное число.
а) Определить его максимальную цифру.
б) Определить его минимальную цифру.

W2.7. Дано натуральное число.
а) Определить его максимальную и минимальную цифры.
б) Определить, на сколько его максимальная цифра превышает минимальную.
в) Найти сумму его максимальной и минимальной цифр.
Примечание. Во всех задачах использовать только один оператор цикла.

W2.8. Дано натуральное число, в котором все цифры различны. Определить:
а) порядковый номер его максимальной цифры, считая номера:
— от конца числа;
— от начала числа;
б) порядковый номер его минимальной цифры, считая номера:
— от конца числа;
— от начала числа.
Примечание. Во всех случаях использовать только один оператор цикла.

W2.9. Дано натуральное число, в котором все цифры различны. Определить порядковые номера его максимальной и минимальной цифр, считая номера:
а) от конца числа;
б) от начала числа.

W2.10. Дано натуральное число. Определить номер цифры 8 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой левой из них.

W2.11. Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра (например, для числа 132 233 ответ равен 3, для числа 46 336 — 2, для числа 12 345 — 1).

W2.12. Дано натуральное число. Определить, сколько раз в нем встречается минимальная цифра (например, для числа для числа 102 200 ответ равен 3, для числа 40 330 — 2, для числа 10 345 — 1).

W2.13. Напечатать все кратные тринадцати натуральные числа, меньшие 100. Задачу решить двумя способами:
а) без использования оператора цикла с условием;
б) с использованием оператора цикла с условием.

W2.14. Найти 15 первых натуральных чисел, делящихся нацело на 19 и находящихся в интервале, левая граница которого равна 100.

W2.15. Найти 20 первых натуральных чисел, делящихся нацело на 13 или на 17 и находящихся в интервале, левая граница которого равна 500.

W2.16. Найти 10 первых натуральных чисел, оканчивающихся на цифру 7, кратных числу 9 и находящихся в интервале, левая граница которого равна 100.

W2.17. Составить программу, определяющую общее число удалений и общее штрафное время каждой из хоккейных команд во время игры (игроки удаляются на 2, 5 или 10 мин). Окончание игры моделировать вводом числа 0.

W2.18. Дано натуральное число. Определить, сколько раз в нем встречается первая цифра.

W2.19. Дано натуральное число n (n > 9). Определить его вторую (с начала) цифру. Задачу решить двумя способами:
а) с использованием двух операторов цикла;
б) с использованием одного оператора цикла.

W2.20. Дано натуральное число n (n > 99). Определить его третью (с начала) цифру. Задачу решить двумя способами:
а) с использованием двух операторов цикла;
б) с использованием одного оператора цикла.

W2.21. Дано натуральное число.
а) Определить две его максимальные цифры.
б) Определить две его минимальные цифры.
Примечание. В обеих задачах использовать только один оператор цикла.

W2.22. Дано натуральное число, в котором все цифры различны. Определить:
а) порядковые номера двух его максимальных цифр, считая номера:
— от конца числа;
— от начала числа;
б) порядковые номера двух его минимальных цифр, считая номера:
— от конца числа;
— от начала числа.
Примечание. Во всех задачах использовать только один оператор цикла.

W2.23. Дана непустая последовательность вещественных чисел, оканчивающаяся числом 1000. Последовательность является неубывающей. Несколько чисел, идущих подряд, равны между собой. Найти количество таких чисел. Сколько различных чисел имеется в последовательности?

W2.24. Дана непустая последовательность вещественных чисел, оканчивающаяся нулем. Последовательность является невозрастающей. Найти количество различных чисел в последовательности.

W2.25. Найти наибольший общий делитель трех заданных натуральных чисел, используя алгоритм Евклида и учитывая, что НОД(a, b, c) = = НОД(НОД(a, b), c).


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
17 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

W2.8. Дано натуральное число, в котором все цифры различны. Определить:
а) порядковый номер его максимальной цифры, считая номера:
— от конца числа;
— от начала числа;

int c=0, b=0, i=0;
        System.Console.WriteLine(«Enter number»);
        int a = int.Parse(Console.ReadLine());     
        while(a>0){
          b++;      //total lenght of number
          int d=a%10;
          if (d>c) c=d;
          if (c==d) i=b;
          a/=10;        
        }
        System.Console.WriteLine($»От конца — {i}  \nОт начала — {b-i+1} \n Общая длина — {b}»);

Последний раз редактировалось 6 месяцев назад Dowran ем

Tak?

{
           // W2.1. Имеется фрагмент программы в виде оператора цикла с параметром,
           // обеспечивающий вывод на экран «столбиком» квадратного корня из всех целых чисел от a до b (a>b).
           //Оформить этот фрагмент в виде:
           //а) оператора цикла с предусловием;

           Console.WriteLine("число a i b (a>b)");
           int a = int.Parse(Console.ReadLine());//9
           int b = int.Parse(Console.ReadLine());//4

           while (a >= b)
           {
               int k = Convert.ToInt32(Math.Sqrt(a));
               Console.WriteLine(k);
               a--;
           }
       }

W2.5. Дана последовательность ненулевых целых чисел, оканчивающая нулем. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)

using System;

using System.Linq;

using System.Text;

using System.Collections.Generic;




namespace Learning_Csharp

{

  class Solution

  {

    public List<int> nums;




    private void Answer()

    {

      int helper = nums[0];

      int count = 0;

      int i = 1;

      while (i < nums.Count)

      {

        if (helper > 0 && nums[i] > 0)

        {

          count = count;

          helper = nums[i];

        }

        else if (helper > 0 && nums[i] < 0)

        {

          count++;

          helper = nums[i];

        }

        else if (helper < 0 && nums[i] > 0)

        {

          count++;

          helper = nums[i];

        }

        else if (helper < 0 && nums[i] < 0)

        {

          count = count;

          helper = nums[i];

        }

        i++;

      }




      Console.WriteLine("Знак менялся: " + count);

    }




    public void Result()

    {

      Console.WriteLine("Answer for Mission: ");

      Answer();

    }

  }




  class Program

  {

    static void Main(string[] args)

    {

      var userArray = new Solution();

      userArray.nums = new List<int>();

      var StrNums = new List<string>();

      while (true)

      {

        string line = Console.ReadLine();

        if (line == " " || line == "")

          break;

        else

        {

          StrNums.Add(line);

          if (line == "0")

          {

            break;

          }

        }

      }

       

      for (int i = 0; i < StrNums.Count; i++)

      {

        userArray.nums.Add(int.Parse(StrNums[i]));

      }




      userArray.Result();




    }

  }

W.2. Использование условного оператора в теле операторов цикла с условием

using System;
//W.2. Использование условного оператора в теле операторов цикла с условием
namespace W2
{
    class Program
    {
        static double Input (string Name, double Min = -1.7E308, double Max = 1.7E308, double Exception1 = -1.7E308, double Accord1 = -1.7E308, double Accord2 = -1.7E308, double Accord3 = -1.7E308)
        {
            double Num;
            Console.WriteLine($"Введите {Name}:");
            while (!(double.TryParse(Console.ReadLine(), out Num) && Num >= Min && Num <= Max && Num != Exception1 || Num==Accord1 || Num == Accord2 || Num == Accord3)) Console.WriteLine("Введено неверное значение, повторите ввод:");
            return Num;
        }
        static void Main()
        {
            //W2.1
            Console.WriteLine("W2.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» квадратного корня из всех целых чисел от a до b (a>b).\nОформить этот фрагмент в виде:\nа) оператора цикла с предусловием;\nб) оператора цикла с постусловием.");
            int N1A = (int)Input("число A",0);
            int N1B = (int)Input("число B", 0, N1A-1);
            int N1temp = N1A;
            while (N1temp>=N1B)
            {
                Console.WriteLine($"Квадратный корень из {N1temp} равен {Math.Sqrt(N1temp):f2}");
                N1temp--;
            }
            N1temp = N1A;
            Console.WriteLine();
            do
            {
                Console.WriteLine($"Квадратный корень из {N1temp} равен {Math.Sqrt(N1temp):f2}");
                N1temp--;
            }
            while (N1temp >= N1B);
            Console.ReadKey();
            Console.Clear();
            //W2.2
            Console.WriteLine("W2.2. Дано натуральное число. Определить: \nа) количество цифр 3 в нем;\nб) сколько раз в нем встречается последняя цифра;\nв) количество четных цифр в нем.Составное условие и более одного неполного условного оператора не использовать;\nг) сумму его цифр, больших пяти;\nд) произведение его цифр, больших семи;\nе) сколько раз в нем встречаются цифры 0 и 5(всего).");
            double N2 = Input("это число");
            int N2count3 = 0;
            int N2countLast = 0;
            int N2countEven = 0;
            int N2sum = 0;
            int N2product = 1;
            int N2count05 = 0;
            int N2temp = 0;
            int N2cicle = 1;
            while (N2cicle <= Convert.ToString(N2).Length)
            {
                N2temp = (int)((N2 % (Math.Pow(10, N2cicle)))/(Math.Pow(10,N2cicle-1)));
                if (N2temp == 3) N2count3++;
                if (N2temp == N2%10) N2countLast++;
                if (N2temp%2 == 0) N2countEven++;
                if (N2temp > 5) N2sum += N2temp;
                if (N2temp > 7) N2product *= N2temp;
                if (N2temp == 0 || N2temp == 5) N2count05++;
                N2cicle++;
            }
            Console.WriteLine($"а) количество цифр 3 в нем {N2count3}\nб) в нем встречается последняя цифра {N2countLast} раз\nв) количество четных цифр в нем {N2countEven}\nг) сумма его цифр, больших пяти {N2sum}\nд) произведение его цифр, больших семи {N2product}\nе) в нем встречаются цифры 0 и 5(всего) {N2count05} раз");
            Console.ReadKey();
            Console.Clear();
            //W2.3
            Console.WriteLine("W2.3. Дано натуральное число. Определить:\nа) сколько раз в нем встречается цифра а;\nб) количество его цифр, кратных z(значение z вводится с клавиатуры; z = 2, 3, 4);\nв) сумму его цифр, больших n(значение a вводится с клавиатуры; 0 <= n <= 8);\nг) сколько раз в нем встречаются цифры x и y.");
            long N3 = (long)Input("это натуральное число");
            long N3temp = N3;
            int N3A = (int)Input("цифру A",0,9);
            int N3countA=0;
            while (N3temp > 0)
            {
                if (N3temp % 10 == N3A) N3countA++;
                N3temp /= 10;
            }
            Console.WriteLine($"а) в нем встречается цифра а {N3countA} раз");
            N3temp = N3;
            int N3Z = (int)Input("цифру Z", 2, 4);
            int N3countZ=0;
            while (N3temp > 0)
            {
                if ((N3temp % 10)%N3Z == 0) N3countZ++;
                N3temp /= 10;
            }
            Console.WriteLine($"б) количество его цифр, кратных z {N3countZ}");
            N3temp = N3;
            int N3N = (int)Input("цифру N", 0, 8);
            int N3sumN = 0;
            while (N3temp > 0)
            {
                if ((N3temp % 10) > N3N) N3sumN += (int)(N3temp%10);
                N3temp /= 10;
            }
            Console.WriteLine($"в) сумму его цифр, больших n {N3sumN}");
            N3temp = N3;
            int N3X = (int)Input("цифру X", 0, 9);
            int N3Y = (int)Input("цифру Y", 0, 9);
            int N3countXY = 0;
            while (N3temp > 0)
            {
                if (N3temp % 10 == N3X || N3temp%10 == N3Y) N3countXY++;
                N3temp /= 10;
            }
            Console.WriteLine($"г) в нем встречаются цифры x и y {N3countXY} раз");
            Console.ReadKey();
            Console.Clear();
            //W2.4
            Console.WriteLine("W2.4. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти:\nа) сумму всех чисел последовательности, больших числа x;\nб) количество всех четных чисел последовательности.");
            int N4;
            int N4X = (int) Input("число X");
            int N4sumX = 0;
            int N4countEven=-1;
            do
            {
                N4 = (int)Input($"новый элемент последовательности");
                if (N4 > N4X) N4sumX += N4;
                if (N4 % 2 == 0) N4countEven++;
            }
            while (N4 != 0);
            Console.WriteLine($"а) сумму всех чисел последовательности, больших числа x {N4sumX};\nб) количество всех четных чисел последовательности {N4countEven}.");
            Console.ReadKey();
            Console.Clear();
            //W2.5
            Console.WriteLine("W2.5. Дана последовательность ненулевых целых чисел, оканчивающая нулем. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)");
            int N5;
            int N5P=0;
            int N5count = 0;
            int N5cicle = 1;
            do
            {
                N5 = (int)Input($"{N5cicle} - й член последовательности");
                if ((N5 > 0 && N5P < 0) || (N5 < 0 && N5P > 0)) N5count++;
                N5P = N5;
            }
            while (N5 != 0);
            Console.WriteLine($"Знак сменился {N5count} раз");
            Console.ReadKey();
            Console.Clear();
            //W2.6
            Console.WriteLine("W2.6. Дано натуральное число.\nа) Определить его максимальную цифру.\nб) Определить его минимальную цифру.");
            long N6 = (long)Input("натуральное число");
            int N6Max = 0;
            int N6Min = 9;
            int N6temp;
            int N6cicle = 1;
            while (N6cicle<=Convert.ToString(N6).Length)
            {
                N6temp = (int)(N6 % Math.Pow(10, N6cicle)) / (int)(Math.Pow(10, N6cicle - 1));
                if (N6temp < N6Min) N6Min = N6temp;
                if (N6temp > N6Max) N6Max = N6temp;
                N6cicle++;
            }
            Console.WriteLine($"Минимальная цифра {N6Min}, максимальная цифра {N6Max}");
            Console.ReadKey();
            Console.Clear();
            //W2.7
            Console.WriteLine("W2.7. Дано натуральное число.\nа) Определить его максимальную и минимальную цифры.\nб) Определить, на сколько его максимальная цифра превышает минимальную.\nв) Найти сумму его максимальной и минимальной цифр.\nПримечание.Во всех задачах использовать только один оператор цикла.");
            int N7 = (int)Input("натуральное число");
            int N7temp;
            int N7Max=0;
            int N7Min=9;
            while (N7 !=0)
            {
                N7temp = N7 % 10;
                if (N7temp < N7Min) N7Min = N7temp;
                if (N7temp > N7Max) N7Max = N7temp;
                N7 /= 10;
            }
            Console.WriteLine($"Максимальная {N7Max} и минимальная {N7Min}\nМаксимальная больше минимальной на {N7Max-N7Min}\nСумма максимальной и минимальной цифр {N7Max+N7Min}");
            Console.ReadKey();
            Console.Clear();
            //W2.8
            Console.WriteLine("W2.8. Дано натуральное число, в котором все цифры различны. Определить:\nа) порядковый номер его максимальной цифры, считая номера:\n— от конца числа;\n— от начала числа;\nб) порядковый номер его минимальной цифры, считая номера:\n— от конца числа;\n— от начала числа.\nПримечание.Во всех случаях использовать только один оператор цикла.");
            int N8 = (int)Input("натуральное число, в котором все цифры различны");
            int N8Max = 0;
            int N8MaxPlace=0;
            int N8Min = 9;
            int N8MinPlace=0;
            int N8temp;
            int N8cicle = 1;
            while (N8cicle<=Convert.ToString(N8).Length)
            {
                N8temp = ((N8 % (int)Math.Pow(10, N8cicle)) / (int)Math.Pow(10,N8cicle-1));
                if (N8temp < N8Min) { N8Min = N8temp; N8MinPlace = N8cicle; }
                if (N8temp > N8Max) { N8Max = N8temp; N8MaxPlace = N8cicle; }
                N8cicle++;
            }
            Console.WriteLine($"порядковый номер его максимальной цифры, {N8MaxPlace} — от конца числа; {Convert.ToString(N8).Length - N8MaxPlace+1} — от начала числа\nпорядковый номер его минимальной цифры {N8MinPlace} — от конца числа; {Convert.ToString(N8).Length - N8MinPlace+1} — от начала числа.");
            Console.ReadKey();
            Console.Clear();
            //W2.9
            Console.WriteLine("W2.9. Дано натуральное число, в котором все цифры различны. Определить порядковые номера его максимальной и минимальной цифр, считая номера:\nа) от конца числа;\nб) от начала числа.");
            int N9 = (int)Input("натуральное число, в котором все цифры различны");
            int N9Max = 0;
            int N9MaxPlace = 0;
            int N9Min = 9;
            int N9MinPlace = 0;
            int N9temp;
            int N9cicle = 1;
            while (N9 > 0)
            {
                N9temp = N9%10;
                if (N9temp < N9Min) { N9Min = N9temp; N9MinPlace = N9cicle; }
                if (N9temp > N9Max) { N9Max = N9temp; N9MaxPlace = N9cicle; }
                N9cicle++;
                N9 /= 10;
            }
            Console.WriteLine($"порядковый номер его максимальной цифры, {N9MaxPlace} — от конца числа; {Convert.ToString(N9).Length - N9MaxPlace + 1} — от начала числа\nпорядковый номер его минимальной цифры {N9MinPlace} — от конца числа; {Convert.ToString(N9).Length - N9MinPlace + 1} — от начала числа.");
            Console.ReadKey();
            Console.Clear();
            //W2.10
            Console.WriteLine("W2.10. Дано натуральное число. Определить номер цифры 8 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой левой из них.");
            int N10 = (int)Input("Натуральное число");
            int N10cicle = 1;
            int N10temp;
            int N10n8=0;
            while (N10 > 0)
            {
                N10temp = N10 % 10;
                if (N10temp == 8) N10n8 = N10cicle;
                N10cicle++;
                N10 /= 10;
            }
            Console.WriteLine(N10n8);
            Console.ReadKey();
            Console.Clear();
            //W2.11
            Console.WriteLine("W2.11. Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра (например, для числа 132 233 ответ равен 3, для числа 46 336 — 2, для числа 12 345 — 1).");
            int N11 = (int)Input("натуральное число");
            int N11Max = 0;
            int N11count = 0;
            int N11temp = 0;
            while (N11>0)
            {
                N11temp = N11 % 10;
                if (N11temp > N11Max) { N11Max = N11temp; N11count = 0; }
                if (N11temp == N11Max) N11count++;
                N11 /= 10;
            }
            Console.WriteLine(N11count);
            Console.ReadKey();
            Console.Clear();
            //W2.12
            Console.WriteLine("W2.12. Дано натуральное число. Определить, сколько раз в нем встречается минимальная цифра (например, для числа для числа 102 200 ответ равен 3, для числа 40 330 — 2, для числа 10 345 — 1).");
            int N12 = (int)Input("натуральное число");
            int N12Min = 9;
            int N12count = 0;
            int N12temp;
            while (N12>0)
            {
                N12temp = N12 % 10;
                if (N12temp < N12Min) { N12Min = N12temp; N12count = 0; }
                if (N12temp == N12Min) N12count++;
                N12 /= 10;
            }
            Console.WriteLine(N12count);
            Console.ReadKey();
            Console.Clear();
            //W2.13
            Console.WriteLine("W2.13. Напечатать все кратные тринадцати натуральные числа, меньшие 100. Задачу решить двумя способами:\nа) без использования оператора цикла с условием\nб) с использованием оператора цикла с условием.");
            int N13temp = 1;
            while (N13temp<100)
            {
                if (N13temp % 30 == 0) Console.Write($"{N13temp} ");
                N13temp++;
            }
            Console.WriteLine();
            for (int a = 1; a * 30 < 100; a++) Console.Write($"{a*30} ");
            Console.ReadKey();
            Console.Clear();
            //W2.14
            Console.WriteLine("W2.14. Найти 15 первых натуральных чисел, делящихся нацело на 19 и находящихся в интервале, левая граница которого равна 100.");
            int N14temp = 6;
            while ((N14temp-5) < 16)
            {
                Console.Write($"{N14temp*19} ");
                N14temp++;
            }
            Console.ReadKey();
            Console.Clear();
            //W2.15
            Console.WriteLine("W2.15. Найти 20 первых натуральных чисел, делящихся нацело на 13 или на 17 и находящихся в интервале, левая граница которого равна 500.");
            int N15temp=500;
            int N15count = 1;
            while (N15count<21)
            {
                if (N15temp % 13 == 0) { Console.Write($"{N15temp} "); N15count++; }
                if (N15temp % 17 == 0) { Console.Write($"{N15temp} "); N15count++; }
                N15temp++;
            }
            Console.ReadKey();
            Console.Clear();
            //W2.16
            Console.WriteLine("W2.16. Найти 10 первых натуральных чисел, оканчивающихся на цифру 7, кратных числу 9 и находящихся в интервале, левая граница которого равна 100.");
            int N16 = 12;
            int N16count = 1;
            while (N16count < 11)
            {
                if ((N16*9)%10==7) { Console.Write($"{N16*9} "); N16count++; }
                N16++;
            }
            Console.ReadKey();
            Console.Clear();
            //W2.17
            Console.WriteLine("W2.17. Составить программу, определяющую общее число удалений и общее штрафное время каждой из хоккейных команд во время игры (игроки удаляются на 2, 5 или 10 мин). Окончание игры моделировать вводом числа 0.");
            int N17 = -1;
            int N17team = -1;
            int N17count1 = 0;
            int N17count2 = 0;
            int N17sum1 = 0;
            int N17sum2 = 0;
            while (N17!=0 && N17team!=0)
            {
                N17team = (int)Input("игрок какой команды удален? (1 или 2)",0,2);
                N17 = (int)Input("насколько минут удален игрок? (2,5 или 10)", 0, 0,1.7E308,2,5,10);
                if (N17team == 1) { N17count1++; N17sum1 += N17; }
                if (N17team == 2) { N17count2++; N17sum2 += N17; }
            }
            Console.WriteLine($"общее число удалений {N17count1} и общее штрафное время {N17sum1} минут первой команды \nобщее число удалений {N17count2} и общее штрафное время {N17sum2} минут второй команды");
            Console.ReadKey();
            Console.Clear();
            //W2.18
            Console.WriteLine("W2.18. Дано натуральное число. Определить, сколько раз в нем встречается первая цифра.");
            long N18 = (long) Input("натуральное число");
            int N18count = 0;
            while (N18>0)
            {
                if (N18 % 10 == (int) (N18 / Math.Pow(10, Convert.ToString(N18).Length-1))) N18count++;
                N18 /= 10;
            }
            Console.WriteLine(N18count);
            Console.ReadKey();
            Console.Clear();
            //W2.19
            Console.WriteLine("W2.19. Дано натуральное число n (n > 9). Определить его вторую (с начала) цифру. Задачу решить двумя способами: \nа) с использованием двух операторов цикла;\nб) с использованием одного оператора цикла.");
            int N19 = (int)Input("натуральное число, больше 9", 10);
            int N19N2 = N19;
            int N19N3 = N19;
            int N19first=-1;
            int N19second=-1;
            while (N19>0)
            {
                N19second = N19first;
                N19first = N19 % 10;
                N19 /= 10;
            }
            Console.WriteLine(N19second);
            int N19count = 0;
            while (N19N2>0)
            {
                N19count++;
                N19N2 /= 10;
            }
            int N19cicle = 1;
            int N19temp = 1;
            while (N19cicle < N19count)
            {
                N19temp *= 10;
                N19second = N19N3 % N19temp / (N19temp / 10);
                N19cicle++;
            }
            Console.WriteLine(N19second);
            Console.ReadKey();
            Console.Clear();
            //W2.20
            Console.WriteLine("W2.20. Дано натуральное число n (n > 99). Определить его третью (с начала) цифру. Задачу решить двумя способами:\nа) с использованием двух операторов цикла;\nб) с использованием одного оператора цикла.");
            int N20 = (int)Input("натуральное число, больше 99", 100);
            int N20N1 = N20;
            int N20third = -1;
            while(N20N1>0)
            {
                if (N20N1 < 1000 && N20N1 > 99) N20third = N20N1 % 10;
                N20N1 /= 10;
            }
            Console.WriteLine(N20third);
            int N20N2 = N20;
            int N20length = 0;
            while(N20N2>0)
            {
                N20length++;
                N20N2 /= 10;
            }
            N20third = (int)(N20 % Math.Pow(10, N20length-2) / (Math.Pow(10, N20length - 3)));
            Console.WriteLine(N20third);
            int N20N3 = N20;
            int N20cicle = 1;
            int N20temp = 1;
            while(N20cicle<N20length - 1)
            {
                N20temp *= 10;
                N20third = N20N3 % N20temp / (N20temp / 10);
                N20cicle++;
            }
            Console.WriteLine(N20third);
            Console.ReadKey();
            Console.Clear();
            //W2.21
            Console.WriteLine("W2.21. Дано натуральное число. \nа) Определить две его максимальные цифры.\nб) Определить две его минимальные цифры.\nПримечание.В обеих задачах использовать только один оператор цикла.");
            int N21 = (int)Input("натуральное число");
            int N21Max1 = 0;
            int N21Max2 = 0;
            int N21Min1 = 9;
            int N21Min2 = 9;
            int N21temp;
            while (N21>0)
            {
                N21temp = N21 % 10;
                if (N21temp > N21Max1) { N21Max2 = N21Max1; N21Max1 = N21temp;}
                if (N21temp > N21Max2 && N21temp < N21Max1) N21Max2 = N21temp;
                if (N21temp < N21Min1) { N21Min2 = N21Min1; N21Min1 = N21temp;}
                if (N21temp < N21Min2 && N21temp > N21Min1) N21Min2 = N21temp;
                N21 /= 10;
            }
            Console.WriteLine($"Максимальные числа {N21Max2} и {N21Max1}, минимальные {N21Min2} и {N21Min1}");
            Console.ReadKey();
            Console.Clear();
            //W2.22
            Console.WriteLine("W2.22. Дано натуральное число, в котором все цифры различны. Определить:\nа) порядковые номера двух его максимальных цифр, считая номера:\n— от конца числа;\n— от начала числа;\nб) порядковые номера двух его минимальных цифр, считая номера:\n- от конца числа;\n— от начала числа.\nПримечание.Во всех задачах использовать только один оператор цикла.");
            int N22 = (int)Input("натуральное число, в котором все цифры различны");
            int N22Max1 = 0;
            int N22Max2 = 0;
            int N22Min1 = 9;
            int N22Min2 = 9;
            int N22Max1Place = -1;
            int N22Max2Place = -1;
            int N22Min1Place = -1;
            int N22Min2Place = -1;
            int N22temp;
            int N22count = 1;
            while (N22>0)
            {
                N22temp = N22 % 10;
                if (N22temp > N22Max1) { N22Max2 = N22Max1; N22Max2Place = N22Max1Place; N22Max1 = N22temp; N22Max1Place = N22count; }
                if (N22temp < N22Max1 && N22temp > N22Max2) { N22Max2 = N22temp; N22Max2Place = N22count; }
                if (N22temp < N22Min1) { N22Min2 = N22Min1; N22Min2Place = N22Min1Place; N22Min1 = N22temp; N22Min1Place = N22count; }
                if (N22temp > N22Min1 && N22temp < N22Min2) { N22Min2 = N22temp; N22Min2Place = N22count; }
                N22count++;
                N22 /= 10;
            }
            Console.WriteLine($"Максимальные числа расположены на позициях {N22count - N22Max1Place} и {N22count - N22Max2Place} с начала и {N22Max1Place} и {N22Max2Place} с конца,\nминимальные на позициях {N22count - N22Min1Place} и {N22count - N22Min2Place} с начала и {N22Min1Place} и {N22Min2Place} с конца");
            Console.ReadKey();
            Console.Clear();
            //W2.23
            Console.WriteLine("W2.23. Дана непустая последовательность вещественных чисел, оканчивающаяся числом 1000. Последовательность является неубывающей. Несколько чисел, идущих подряд, равны между собой. Найти количество таких чисел. Сколько различных чисел имеется в последовательности?");
            double N23A = -1.7E308;
            double N23B = -1.7E308;
            int N23sim=0;
            int N23dif=0;
            bool B23sim = false;
            while (N23A<1000)
            {
                N23A = (int)Input($"член последовательности, должен быть не меньше предыдущего и не более 1000", N23B, 1000);
                if (N23A == N23B)
                {
                    N23sim++;
                    if (!B23sim) { N23sim++; B23sim = true; }
                }
                else { N23dif++; B23sim = false; }
                N23B = N23A;
            }
            Console.WriteLine($"Количество повторяющихся членов {N23sim}, уникальных значений {N23dif}");
            Console.ReadKey();
            Console.Clear();
            //W2.24
            Console.WriteLine("W2.24. Дана непустая последовательность вещественных чисел, оканчивающаяся нулем. Последовательность является невозрастающей. Найти количество различных чисел в последовательности.");
            double N24A = 1.7E308;
            double N24B = 1.7E308;
            int N24count = 0;
            while (N24A!=0)
            {
                N24A = Input("член последовательности, не боьше предыдущего", Max: N24B);
                if (N24A != N24B) N24count++;
                N24B = N24A;
            }
            Console.WriteLine($"Униквльных членов последовательности {N24count}");
            Console.ReadKey();
            Console.Clear();
            //W2.25
            Console.WriteLine("W2.25. Найти наибольший общий делитель трех заданных натуральных чисел, используя алгоритм Евклида и учитывая, что НОД(a, b, c) = = НОД(НОД(a, b), c).");
            int N25A = (int)Input("число А");
            int N25B = (int)Input("число B, должно быть меньше А", Max:N25A);
            int N25C = (int)Input("число С, должно быть меньше B", Max:N25B);
            int N25gcd1 = N25A;
            int N25gcd2 = N25B;
            int N25temp1;
            bool B25 = true;
            while (N25gcd2!=0)
            {
                N25temp1 = N25gcd2;
                N25gcd2 = N25gcd1 % N25gcd2;
                if (N25gcd2 == 0 && B25==true) {N25gcd2 = N25temp1 ; N25gcd1 = N25C; B25 = false; }
                else N25gcd1 = N25temp1;
            }
            Console.WriteLine(N25gcd1);
            Console.ReadKey();
            Console.Clear();
        }
    }
}


#2.25
Console.WriteLine(«Введите натуральное число: «);
double a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(«Введите натуральное число: «);
double b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(«Введите натуральное число: «);
double c = Convert.ToDouble(Console.ReadLine());
double r = 0;
if (a % b != 0)
{
  while (a % b != 0)
  {
    if (a % b != 0)
      r = a % b;
    a = b;
    b = r;
    if (a % b == 0)
      break;
  }
}
else
{ }
if (b % c != 0)
{
  while (b % c != 0)
  {
    if (b % c != 0)
      r = b % c;
    b = c;
    c = r;
    if (b % c == 0)
      break;
  }
  Console.WriteLine($»наибольший общий делитель: {c}»);
}
else
{
  Console.WriteLine($»наибольший общий делитель: {c}»);
}
Console.ReadLine();

#2.11
Console.WriteLine(«Введите натуральное число: «);
int num = Convert.ToInt32(Console.ReadLine());
int k = num;
int max = 0;
int x = 0;
int i = 0;
int y = 0;
do
{
  x = num % 10;
  if (x > max)
    max = x;
  num /= 10;
}
while (num != 0);
do
{
  y = k % 10;
  if (k % 10 == max)
    i++;
  k /= 10;
}
while (k != 0);
Console.WriteLine($»максимальная цифра: {max}»);
Console.WriteLine($»максимальная цифра встречается {i} раза»);
Console.ReadLine();

#2.4
Console.WriteLine(«Введите значение Х: «);
int x = Convert.ToInt32(Console.ReadLine());
int[] numbers = new int [] {6, 5, 4, 3, 2, 1, 0 };
int result = 0;
int sum = 0;
for (int i=0; i< numbers.Length; i++)
{
    if (numbers[i] % 2 == 0 && (numbers[i]>0))
      result++;
    if (numbers[i] > x)
      sum += numbers[i];
}
Console.WriteLine($»Сумма всех чисел последовательности, больших числа x: {sum}»);
Console.WriteLine($»Количество всех четных чисел последовательности: {result}»);
Console.ReadLine();

W2.7. Дано натуральное число.
а) Определить его максимальную и минимальную цифры.
б) Определить, на сколько его максимальная цифра превышает минимальную.
в) Найти сумму его максимальной и минимальной цифр.

static void Main(string[] args)
        {
            int number;
            int max = -1, min = 10;
            int digit, difference, sumMinAndMax;
            Console.Write("Enter number=");
            number = int.Parse(Console.ReadLine());
            while(number!=0)
            {
                digit = number % 10;
                number /= 10;
                if(digit>max)
                {
                    max = digit;
                }
                if(digit<min)
                {
                    min = digit;
                }
            }
            Console.WriteLine("max=" + max);
            Console.WriteLine("min=" + min);
            difference = max - min;
            Console.WriteLine("difference between minimum and maximum=" + difference);
            sumMinAndMax = min + max;
            Console.WriteLine("min+max=" + sumMinAndMax);
        }

Алексей В, все врено! Рассмотрите варианты следующих улучшений кода:
— не стоит все переменные объявлять в одно месте — захламляет код; объявляйте их перед использованием в нужном блоке
— min, max переменные можно лучше назвать
— переменные суммы и разницы не нужны, текст сообщения сам объясняет их и код тоже
— используйте комбинацию автоформатирования в студии, что-бы сделать код более однородным и читаемым.

Важно: Вы можете поддержать проект и автора.

W2.6. Дано натуральное число.
а) Определить его максимальную цифру.
б) Определить его минимальную цифру.

static int VvodChisla(string info)
{
string ch;
int a;
Console.Write(«Введите число «+info+»:»);
ch = Console.ReadLine();
if (!Int32.TryParse(ch, out a))
{
Console.Write(«Введите число заново:»);
ch = Console.ReadLine();
}
return a;
}

static void Main(string[] args)
{
int buffer1 = 0;
int buffer2 = 0;
int a = VvodChisla(«натуральное число»);
do
{
int i = a % 10;
if (i > buffer1)
buffer1 = i;
if (i = 1);
Console.WriteLine($»Максимальная цифра: {buffer1}. \nМинимальная цифра: {buffer2}.\n») ;
Console.ReadLine();
}

static int VvodChisla(string info)
{
string ch;
int a;
Console.Write(«Введите число «+info+»:»);
ch = Console.ReadLine();
if (!Int32.TryParse(ch, out a))
{
Console.Write(«Введите число заново:»);
ch = Console.ReadLine();
}
return a;
}

// w 2.4
int sum = 0;
int c = 0;
int x = VvodChisla(«»);
int a = VvodChisla(«с которого начинается последовательность»);
for (int i = a; i>=x; i—)
{
do
{
sum += i;
i—;
if (i % 2 == 0)
c++;
}
while (i > x);

Console.WriteLine($»Cумма чисел от {a} до {x} = {sum}.\nКоличество четных чисел — {c}.\n»);
Console.ReadLine();
}

W2.5. Дана последовательность ненулевых целых чисел, оканчивающая нулем. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)

           int n;
            int change = 0;
            n = Convert.ToInt32(Console.ReadLine());
            int[] Arr = new int[n];
            Random random = new Random();
            Console.WriteLine("Вы ввели последовательность");
            for (int i = 1; i < Arr.Length ; i++)
            {
                Arr[i] = random.Next(-100, 100);
                Console.WriteLine(Arr[i]);
                if (Arr[i] * Arr[i - 1] < 0)
                {
                    change++;
                }
            }
            Console.WriteLine();
            Console.WriteLine($"знак сменился {change} раз");
            Console.ReadKey();
Важно: Вы можете поддержать проект и автора.

А если последовательность например {12, -1, 0, 12}, у Вас получится всего одна смена знака.

W2.1.Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком»
квадратного корня из всех целых чисел от a до b(a> b).
Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
W2.2.Дано натуральное число. Определить:
а) количество цифр 3 в нем;
б) сколько раз в нем встречается последняя цифра;
в) количество четных цифр в нем. Составное условие и более одного неполного условного оператора не использовать;
г) сумму его цифр, больших пяти;
д) произведение его цифр, больших семи;
е) сколько раз в нем встречаются цифры 0 и 5(всего).

В Задачах 1 и 2 (воспользовался методом ввода числа Эда)

class Program
    {
        static int Vvod_Chisla_Int(string info)
        {
            int chislo;
            string vvod;
            Console.Write("Введите " + info + ": ");
            vvod = Console.ReadLine();
            while (!Int32.TryParse(vvod, out chislo))
            {
                Console.WriteLine("Недопустимые символы в строке ввода.Ожидается целое число:");
                vvod = Console.ReadLine();
            }
            return chislo;
        }
        static void Main()
        {
            // w2.1 a)
            int a, b, c;
            a = Vvod_Chisla_Int(" значение числа а (а > b)");
            b = Vvod_Chisla_Int(" значение числа b (b < a)");
            c = a;
            while (c >= b)
            {
                Console.WriteLine($"Квадратный корень из {c} равен  " + string.Format("{0:f3}", Math.Sqrt(c)));
                c--;
            }
            // w2.1 b)
            Console.WriteLine("цикл с постусловием");
            c = a;
            do
            {
                Console.WriteLine($"Квадратный корень из {c} равен  " + string.Format("{0:f3}", Math.Sqrt(c)));
                c--;
            } while (c >= b);

            //w2.2 
            int num = Vvod_Chisla_Int("Натуральное число");
            int counter_3 = 0;
            // a) количество цифр 3 в нем;
            do
            {
                if (num % 10 == 3)
                    counter_3++;
                num /= 10;
            }
            while (num > 1);
            Console.WriteLine("Количество цифры 3 в заданном числе = " + counter_3);

            // б)  сколько раз в нем встречается последняя цифра;
            num = Vvod_Chisla_Int("Натуральное число");
            int currentCount;
            int lastNum = num % 10;
            int lastNumCounter = 0;          
            while (num > 1)
            {
                currentCount = num % 10;
                num /= 10;
                if (currentCount == lastNum)
                {
                    lastNumCounter++;
                }
            }
            Console.WriteLine("Цифра " + lastNum + " в заданном числе встречактся " + lastNumCounter + " раз");


            // в) количество четных цифр в нем. Составное условие и более одного неполного условного оператора не использовать;
            int sumN = 0;
            num = Vvod_Chisla_Int("Натуральное число");
            while (num > 1)
            {
                currentCount = num % 10;
                num /= 10;
                if (currentCount % 2 == 0)
                    sumN++;
            }
            Console.WriteLine("Количество четных цифр в числе = " + sumN);

            // г) сумму его цифр, больших пяти;
            // д) произведение его цифр, больших семи;
            int sum = 0, multiply = 1;
            num = Vvod_Chisla_Int("Натуральное число");
            while (num > 1)
            {
                currentCount = num % 10;
                num /= 10;
                if (currentCount > 5)
                    sum += currentCount;
                if (currentCount > 7)
                    multiply *= currentCount;
            }
            Console.WriteLine("Сумма его цифр, больших пяти = " + sum);
            Console.WriteLine("Произведение его цифр, больших семи = " + multiply);

            // е) сколько раз в нем встречаются цифры 0 и 5 (всего).
            num = Vvod_Chisla_Int("Натуральное число");
            int counter_0_5 = 0;
            do
            {
                if (num % 10 == 0 || num % 10 == 5)
                    counter_0_5++;
                num /= 10;
            }
            while (num > 1);
            Console.WriteLine("В заданном числе цифры 0 и 5 встречаются " + counter_0_5 + " раз.");
        }
    }
Важно: Вы можете поддержать проект и автора.
Важно: Вы можете поддержать проект и автора.
17
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x