Основи програмування на С ++ для початківців

Вложенные циклы в C

вложенные циклы C++Ми з вами встигли познайомитися з трьома конструкціями повторення в мові програмування C ++. це циклиfor, while и do while. Если вы обратили внимание, вкладення конструкцій логічного вибору if і else в цикли вже застосовувалося. Сейчас же мы рассмотрим вложенные циклы – это когда в теле одного цикла (внешнего) размещается другой цикл (внутренний). Таких вложенных циклов во внешнем цикле может быть несколько.

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

Есть один интересный распространённый пример, для демонстрации работы вложенных циклов. Рассмотрим его: применяя циклы, необхідно намалювати прямокутник розміром 5 х 15 из символов @.

Сначала начинает выполняться цикл for в строке 6. Так як в його тілі нічого не прописано до другого циклу, программа сразу приступает к выполнению этого вложенного цикла – строки 8 – 11. В результате его выполнения, на экране в одной строке отображаются 15 символов @ и происходит выход из него. Тут сработает cout  в строке 12, управляющая переменная i увеличится на единицу и продолжится выполнение главного и вложенного циклов. То есть снова 15 символов на экране и переход на строку ниже. Так будет сделано 5 раз, после чего программа завершит работу. На экране видим то, что было в условии:

вложенные циклы в C

Можно эту задачу немного усложнить. Теперь пусть символ для печати фигуры выбирает пользователь, посредством ввода с клавиатуры. Он же выберет размер – ширину и высоту. Еще одно новшество – фигура должна быть пустой, а не заполненной, как в нашем предыдущем примере. То есть она должна состоять только из контура. Вот наше решение:

Результат зависит от введенных данных, которые задаст пользователь. У меня получился черный квадрат из вопросов :)

вложенные циклы в C++

Еще один пример: печать таблицы умножения.

В результате увидим таблицу умножения:

вложенные циклы в C++

вложенные циклы в C++

.

.

.

.

.

.

.

.

.

На рисунках показаны только начало и конец таблицы.

Надеюсь урок был для вас полезен. Вложенные конструкции в программировании на C встречаются достаточно часто. Обязательно рассмотрите задачи, которые мы приготовили. Если у вас остались какие-то вопросы по теме – ждем их в комментариях.

41 думки про "Вложенные циклы в C

    1. Важко сказати що ви маєте на увазі під основними правилами?
      Основні правила:
      – цикли повинні бути вкладені за принципом “matrjoşki”: кожен внутрішній цикл повинен ** повністю ** поміщатися всередину охоплює;
      – ніколи не змінюйте параметр (змінну) зовнішнього циклу у внутрішньому;
      – ніколи не виходьте з вкладених циклів оператором goto;

    1. В принципі, ні чим.
      Хоча C # … це відстій, і до обговорень на цьому сайті не має ніякого відношення.

  1. Скажіть, дане рішення прикладу з вашого уроку з квадратом із символів, еквівалентно вашого рішення наведеним в уроці? Або ж ваш варіант все таки має перевагу? Якщо так то в чому? Спасибо.

    1. Рішення будь-який завдання можна записати багатьма, часто багатьма десятками, різними способами.

      Критерієм правильності програми є тільки результат її виконання – запустіть і переконайтеся.

      1. А як зробити: користувач вводить радіус і малюється коло з таким радіусом
        P.s. Перепрошую якщо є помилки( я школяр:) )

    2. Ідентичне рішення з можливістю вибору:

      #include
      using namespace std;

      int main()
      {
      ІНТ лінії, стовпці;
      символ SYM;

      cout <> SYM;
      cout <> lines;
      cout <> стовпці;
      for (int i = 1; i <= lines; i )
      {
      for (int j = 1; j <= стовпці; j )
      {
      if (J == 1 || i == 1)
      {
      cout << SYM;
      continue;
      }
      else
      {
      if (i == lines || J == стовпці)
      {
      cout << SYM;
      if (J == стовпці)
      {
      break;
      }
      }
      else
      {
      cout << " ";
      }
      }
      }
      cout << endl;
      }

      return 0;
      }

  2. до солдат:
    “малюється коло” – це завдання з області графіки, вона не має ні найменшого відношення до мови програмування C ++, і на 100% визначається тим, якими графічними бібліотеками (фреймворком: МФЦ, Qt, GTK, WxWidgets і ін.) ви користуєтеся + в якій операційній системі.

      1. “коло” не можна “малювати” на C ++.
        “коло” можна “малювати” тільки функціями з різних графічних бібліотек … які можуть викликатися, в тому числі, і з коду на C ++.
        Але безпосередньо до C ++ це не має ніякого відношення.

        P.S. Передайте це своєму другові.

  3. хто знає як можна зробити так щоб, в завданні з порожнім квадратом, боку були подвійні?

  4. Напевно так

    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “rus”);
    system(“cls”);
    подвійний середн = 0;
    int exit = 0, a = 0, б = 0;
    cout << "Введите длину и высоту сторон: " <> a;
    cin >> b;
    for (INT I = 0; i < a;i )
    {
    for (Int J = 0 ; j < b; j )
    {
    if ( J == 0 || j == a-1 || J == 1 || j == a – 2)
    cout << "q";
    else if (i == 0 || i == b – 1 || i == 1 || i == b – 2)
    cout << "q";
    else cout << " ";

    }
    cout << endl;
    }
    return 0;
    }

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *