Y1. Организация вывода с использованием вложенных циклов

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

Задачи
Y1.1. Напечатать числа в виде следующей таблицы:
а) 5 5 5 5 5 5
   5 5 5 5 5 5
   5 5 5 5 5 5
   5 5 5 5 5 5

б) 1 2 ... 10
   1 2 ... 10
   1 2 ... 10
   1 2 ... 10

в) 41 42 ... 50
   51 52 ... 60
   ... ... ... ...
   71 72 ... 80
Y1.2. Напечатать числа в виде следующей таблицы:
а) 5
   5 5
   5 5 5
   5 5 5 5
   5 5 5 5 5

б) 1 1 1 1 1
   1 1 1 1
   1 1 1
   1 1
   1
Y1.3. Напечатать числа в виде следующей таблицы:
а) 1
   2 2
   3 3 3
   4 4 4 4
   5 5 5 5 5

б) 5 5 5 5 5
   6 6 6 6
   7 7 7
   8 8
   9

в) 10
   20 20
   30 30 30
   40 40 40 40
   50 50 50 50 50

г) 5  5  5  5  5
   10 10 10 10
   15 15 15
   20 20
   25
Y1.4. Напечатать числа в виде следующей таблицы:
а) 0
   1 0
   2 1 0
   3 2 1 0
   4 3 2 1 0

б) 6 5 4 3 2
   7 4 3 2
   8 3 2
   9 2
   2

в) 30
   29 30
   28 29 30
   27 28 29 30
   26 27 28 29 30

г) 20 21 22 23 24
   19 20 21 22
   18 19 20
   17 18
   16
Y1.5. Напечатать полную таблицу сложения в виде:
1 + 1 = 2   2 + 1 = 3   ...   9 + 1 = 9
1 + 2 = 3   2 + 2 = 4   ...   9 + 2 = 11
...         ...         ...   ...
1 + 9 = 10  2 + 9 = 11  ...   9 + 9 = 18
Y1.6. Напечатать полную таблицу сложения в виде:
1 + 1 = 2   1 + 2 = 3  ...  1 + 9 = 10
2 + 1 = 3   2 + 2 = 4  ...  2 + 9 = 11
...         ...        ...  ...
9 + 1 = 10  9 + 2 = 11 ...  9 + 9 = 18
Y1.7. Напечатать полную таблицу умножения в виде:
1 х 1 = 1   1 х 2 = 2  ...  1 х 9 = 9
2 х 1 = 2   2 х 2 = 4  ...  2 х 9 = 18
...         ...        ...  ...
9 х 1 = 9   9 х 2 = 18 ...  9 х 9 = 81
Y1.8. Напечатать полную таблицу умножения в виде:
1 х 1 = 1   2 x 1 = 2   ...   9 x 1 = 9 
1 х 2 = 2   2 x 2 = 4   ...   9 x 2 = 18 
...         ...         ...   ... 
1 х 9 = 9   2 х 9 = 18  ...   9 х 9 = 81
Y1.9.  Оценки каждого из 18 учеников по трем предметам представлены в виде таблицы.

Ученик Предмет
1 2 3
1 4 4 5
2 3 4 3
...
18 5 4 4
Составить программу, которая запрашивает каждую из оценок и затем повторяет ее (на той же строчке). Задачу решить в двух вариантах: 1) ввод/вывод оценок осуществляется по строкам; 2) ввод/вывод оценок осуществляется по столбцам.
Y1.10. Баллы, полученные в соревнованиях по пятиборью каждым из восьми спортсменов по каждому виду спорта, представлены в виде таблицы.
Спортсмен Вид спорта
1 2 ... 5
1 876 655 604
2 744 634 780
...
8 897 880 798
Составить программу, которая запрашивает каждое из значений в таблице и затем повторяет его (на той же строчке). Задачу решить в двух вариантах: 1) ввод значений осуществляется по столбцам; 2) ввод значений осуществляется по строкам.

36 комментариев к “Y1. Организация вывода с использованием вложенных циклов”

  1. Сергей З.

    Y1.1.a) Напечатать числа в виде следующей таблицы:
    5 5 5 5 5 5
    5 5 5 5 5 5
    5 5 5 5 5 5
    5 5 5 5 5 5

    Пример решения

    static void Main()
    {
       for (int i = 0; i < 4; i++)
       {
          for (int j = 0; j < 6; j++)
             Console.Write(5 + " ");
          Console.WriteLine();
       }
    }
    
    1. Вячеслав Рычков

      Дмитрий! Таблицу рисовать не надо. Вводить и выводить через вложенные циклы. В 9-й а): от 1 до 18 (по строкам), внутри от 1 до 3 (по столбцам). Для остальных — аналогично с учетом условий.

  2. Подскажите, пожалуйста, как решить задачи 1.4_а и 1.4_б. Я никак не могу отследить логику построения тех чисел

      1. По поводу Y1.4а — спасибо, а по Y1.4б…
        там точно в первом столбце должны стоять числа:

        6
        7
        8
        9
        2

        а не числа

        6
        5
        4
        3
        2

        заранее спасибо

        1. Вячеслав Рычков

          Илья, а если так:

          int[] a = { 6, 5, 4, 3, 2 };
          for (int i = 0; i < 5; i++)
          {
             if (i == 4)
                Console.WriteLine(2);
             else
             {
                a[i] = 6 + i;
                for (int j = i; j < 5; j++)
                   Console.Write(a[j] + " ");
                Console.WriteLine();
             }
          }
          Console.ReadKey();
  3. Y1.1. Напечатать числа в виде следующей таблицы
    в)
    41 42 … 50
    51 52 … 60
    … … … …
    71 72 … 80

    int i;
    for (i = 41; i < 51; i++)
       Console.Write($"{i} ");
    Console.WriteLine();
    for (; i < 61; i++)
       Console.Write($"{i} ");
    Console.WriteLine();
    for (; i < 71; i++)
       Console.Write($"{i} ");
    Console.WriteLine();
    for (; i < 81; i++)
       Console.Write($"{i} ");
    Console.WriteLine();

    Подскажите, как это задание можно сделать попроще?

    1. Вячеслав Рычков

      Vladi! Вложенные циклы (тема задач) — нужная вещь. Проще — вот так!

      for (int k = 4; k < 8; k++)
      {
         for (int i = 1; i < 11; i++)
            Console.Write($"{k*10+i} ");
         Console.WriteLine();
      }
  4. Y1.1. b) Напечатать числа в виде следующей таблицы:
    1 2 … 10
    1 2 … 10
    1 2 … 10
    1 2 … 10
    Пример решения:

    for (int i = 0; i < 4; i++)
    {
       for (int j = 1; j < 11; j++)
          Console.Write(j + " ");
       Console.WriteLine();
    }
  5. Y1.2. Напечатать числа в виде следующей таблицы:
    а)
    5
    5 5
    5 5 5
    5 5 5 5
    5 5 5 5 5
    Пример решения:

    int t = 5;
    for (int i = 1; i < 6; i++)
    {
        for (int j = 0; j < i; j++)
           Console.Write(t + " ");
        Console.WriteLine();
    }
  6. Y1.2. Напечатать числа в виде следующей таблицы:
    б) 1 1 1 1 1
    1 1 1 1
    1 1 1
    1 1
    1
    Пример решения:

    int t = 1;
    for (int i = 5; i > 0; --i)
    {
       for (int j = 0; j < i; j++)
          Console.Write(t + " ");
       Console.WriteLine();
    }
    
  7. Y1.3. Напечатать числа в виде следующей таблицы:
    а)
    1
    2 2
    3 3 3
    4 4 4 4
    5 5 5 5 5

    for (int i = 1; i < 6; i++)
    {
       for (int j = 0; j < i; j++)
          Console.Write(i + " ");
       Console.WriteLine();
    }

    в)
    10
    20 20
    30 30 30
    40 40 40 40
    50 50 50 50 50
    Решение

    for (int i = 1; i < 6; i++)
    {
       for (int j = 0; j < i; j++)
          Console.Write(i * 10 + " ");
       Console.WriteLine();
    }
  8. Y1.4. Напечатать числа в виде следующей таблицы:
    а)
    0
    1 0
    2 1 0
    3 2 1 0
    4 3 2 1 0
    Пример решения:

    for (int i = 0; i < 5; i++)
    {
       for (int j = 0; j <= i; j++)
       {
          if (i == j)
             Console.Write(0);
          else
             Console.Write(i-j + " ");
       }
       Console.WriteLine();
    }
    Console.ReadKey();
    1. Вячеслав Рычков

      Юлия! Чуть проще (уменьшая j) — так:

      for (int i = 0; i < 5; i++)
      {
         for (int j = i; j >= 0; j--)
            Console.Write(j + " ");
         Console.WriteLine();
      }
  9. Y1.4. Напечатать числа в виде следующей таблицы:
    в)
    30
    29 30
    28 29 30
    27 28 29 30
    26 27 28 29 30
    Пример решения:

    int[] a = { 30, 29, 28, 27, 26 };
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j <= i; j++)
        {
             if (i == j)
                Console.Write(30);
             else
                 Console.Write(a[i]++ + " ");
         }
         Console.WriteLine();
    }
    
    1. Вячеслав Рычков

      Юлия! Решение верное, но чуть навороченное (аналог предыдущего Вашего решения, да еще с массивом).
      А если так?

      for (int i = 30; i > 25; i--)
      {
         for (int j = i; j < 31; j++)
            Console.Write(j + " ");
         Console.WriteLine();
      }
  10. Y1.2. Напечатать числа в виде следующей таблицы:
    а) 5
    5 5
    5 5 5
    5 5 5 5
    5 5 5 5 5

    for (int i = 1; i <= 5; i++)
     {
        for(int k = 0; k < i; k++)
          Console.Write("5 ");
        Console.WriteLine();
     }
  11. Y1.4. Напечатать числа в виде следующей таблицы:
    г)
    20 21 22 23 24
    19 20 21 22
    18 19 20
    17 18
    16

    int k = 25;
    for (int i = 20; i > 15; i--)
    {
        for(int j = i; j < k; j++)
           Console.Write(j + " ");
        Console.WriteLine();
        k -= 2;
    }
  12. Y1.5. Напечатать полную таблицу сложения в виде:
    1 + 1 = 2 2 + 1 = 3 … 9 + 1 = 10
    1 + 2 = 3 2 + 2 = 4 … 9 + 2 = 11
    … … … …
    1 + 9 = 10 2 + 9 = 11 … 9 + 9 = 18

    for (int i = 1; i < 10; i++)
    {
       for(int j = 1; j < 10; j++)
          Console.Write($"{j} + {i} = {i + j}\t");
       Console.WriteLine();
    }
  13. Y1.9. Не совсем понятно в каком виде должен быть представлен ответ.

    int [,] grades =  new int[18,3];
    for (int i = 0; i < 18; i++)
    {
       for (int j = 0; j < 3; j++)
       {
           Console.WriteLine($"Введите оценку. Ученик №{i + 1}, предмет №{j + 1}");
           grades[i,j] = Convert.ToInt32(Console.ReadLine());
           Console.WriteLine($"Вы ввели {grades[i,j]}");
       }
       Console.WriteLine("*****************************");
    }
                
    for (int i = 0; i < 18; i++)
    {
        for (int j = 0; j < 3; j++)
           Console.Write(grades[i, j] + " ");
        Console.WriteLine();
    }
    1. Вячеслав Рычков

      Антон! Ввод по строкам выполнен верно. Повтор введенного числа на той же строчке, похоже, не возможен простыми средствами. Вывод массива, который Вы добавили, позволяет увидеть массив целиком и проверить на соответствие исходной таблице. Зачет.

  14. Николай

    Напечатать числа в виде следующей таблицы:
    а) 5
    5 5
    5 5 5
    5 5 5 5
    5 5 5 5 5

    Решение:

    int a = 5;
    for (int i = 0; i < 5; i++)
    {
       for (int j = 0; j < i + 1; j++)
       {
           Console.Write(a);
       }
       Console.WriteLine();
    }
    1. Вячеслав Рычков

      Николай!
      Уже были два решения этой задачи (Юлия и Антон), см. выше.
      Ваше небольшое отличие — нет пробелов между 5.
      Но все равно, с началом!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх