1 of 31

2 of 31

  • for (int i = 1; i <= 5; i++)
  • 1️⃣ int i = 1
  • создать счётчик
  • начать с 1
  • «Начни считать с 1»
  • 2️⃣ i <= 5
  • условие
  • пока это правда — цикл работает
  • «Пока i меньше или равно 5»
  • 3️⃣ i++
  • шаг
  • что делать после каждого круга
  • «После каждого раза увеличь i на 1»

ЗАРАНЕЕ известно, сколько раз повторять

Цикл с параметром (for)

1 Для приседаний�(начни с 1; пока не дошёл до 5; каждый раз +1)

3 of 31

  • Сначала проверка → потом действие
  • Цикл с предусловием (while)
  • 2 Пока идёт дождь — я сижу дома/ дождь идёт
  • условие верно
  • ты садишься дома
  • всё логично
  • 2: дождя НЕТ ☀️
  • условие ложь
  • правило говорит:
  • «пока идёт дождь — сидеть»
  • А дождя нет.
  • 👉 Значит:
  • сидеть не нужно
  • ты даже не начинаешь сидеть
  • ты сразу выходишь

  • Компьютер думает так:
    • Проверить условие
    • Если правда → выполнить действие
    • Если ложь → НЕ выполнять вообще
    • ❗ Ни одного раза

4 of 31

  • int x;
  • cin >> x;

  • while (x != 0) {
  •     cout << x << endl;
  •     cin >> x;
  • }

  • Возможны ДВА варианта
  • ▶ Вариант 1: x = 0
    • условие ложь
    • цикл НЕ запускается
    • программа сразу заканчивается
    • ▶ Вариант 2: x ≠ 0
    • условие истина
    • компьютер заходит внутрь { }

  • Строка 3: while (x != 0)
  • Перевод на русский
  • ПОКА x не равен 0
  • Компьютер НЕ выполняет код сразу, он:
    • смотрит на x
    • проверяет условие x != 0

  • Строка 2: cin >> x;
  • Что делает компьютер
    • ждёт, пока ты введёшь число с клавиатуры
    • ты нажимаешь Enter
    • введённое число записывается в x

  • Строка 1: int x;
    • int — тип данных целое число
    • x — имя переменной
    • 👉 Создаётся ячейка в памяти, в которой будет храниться число.
    • ❗ Пока там нет значения, просто пусто.

  • Что будет:
    • Ввёл 5 → x != 0 → печатает 5
    • Ввёл 3 → x != 0 → печатает 3
    • Ввёл 7 → x != 0 → печатает 7
    • Ввёл 0 → x == 0 → ❌ выход из цикла
    • получится бесконечный цикл

  • Строка 4: cout << x << endl;
  • Что значит
    • cout — вывод на экран
    • << — отправить в экран
    • x — значение переменной
    • endl — новая строка
    • Что увидишь на экране
    • Если x = 5, экран покажет:

5 of 31

  • Цикл с постусловием (do while)
  • 📌 Сначала действие → потом проверка
  • Жизненный пример
  • Ты хочешь попробовать еду, а потом решить:
  • Понравилось — съесть ещё�Не понравилось — остановиться

  • do {
  •     попробовать();
  • } while (вкусно);

  • Цикл с постусловием (do while)
  • 📌 Сначала действие → потом проверка
  • Жизненный пример
  • Ты хочешь попробовать еду, а потом решить:
  • Понравилось — съесть ещё�Не понравилось — остановиться

  • Попробуй кусочек�Если вкусно — попробуй ещё�Если нет — хватит�

  • int a;
  • do {
  •     cin >> a;
  •     cout << a << endl;
  • } while (a != 0);

  •  �

Почему “постусловие”�Потому что условие проверяется после выполнения.

6 of 31

  • Очень коротко одной фразой
    • for — «СДЕЛАЙ 10 РАЗ»
    • while — «ПОКА условие верно»
  • do while — «СНАЧАЛА сделай, ПОТОМ спроси»

  • while
  • СНАЧАЛА проверка → ПОТОМ действие�может не выполниться ни разу
  • do while
  • СНАЧАЛА действие → ПОТОМ проверка�выполнится хотя бы один раз

7 of 31

Программирование циклических алгоритмов

- писать код на языке программирования, используя операторы цикла

- строить алгоритмические модели задач с использованием языка программирования

- строить трассировочную таблицу

8 of 31

Цикл - это многократное выполнение одинаковых действий.

Что такое цикл?

Два вида циклов:

1. Цикл с переменной или с известным числом шагов

2. Цикл с условием или с неизвестным числом шагов

Задача. Вывести на экран 5 раз слово «Привет».

Можно ли решить известными методами?

?

9 of 31

Повторения в программе

cout << "Привет\n";

cout << "Привет\n";

cout << "Привет\n";

cout << "Привет\n";

cout << "Привет\n";

Что плохо?

?

10 of 31

Цикл while

  • Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис цикла while в C++ выглядит следующим образом.

while (Условие) {

тело цикла;

}

  • Данный цикл будет выполняться, пока условие, указанное в круглых скобках является истиной.

11 of 31

Цикл while повторяет действие, пока условие верно

while (условие) {�  // тело цикла�}

12 of 31

13 of 31

Блок-схема цикла

начало

конец

да

нет

сделали 10 раз?

вывод "Привет!"

счётчик = 0

пока счётчик < 10

cout << "Привет\n";

увеличить счётчик на 1

счётчик = 10

пока счётчик > 0

cout << "Привет\n";

уменьшить счётчик на 1

14 of 31

Сколько раз выполняется цикл?

a = 0;

for(int i = 0; i < 3; i++) a = a + 1;

a = ?

a = 0;

for(int i = 3; i <1; i++ ) a = a + 1;

a = ?

int a = 0;

while (a < 3)

{

cout << “Привет”;

}

a = ?

15 of 31

Сколько раз выполняется цикл?

a = 0;

for(int i = 0; i < 3; i++) a = a + 1;

a = 3

a = 0;

for( i = 3; i <1; i++ ) a = a + 1;

a = 0

int a = 0;

while (a < 3)

{

cout << “Привет”;

}

a = Бесконечно

16 of 31

Практическая работа

Создай программу, следуя модели на блок-схеме:

Дескрипторы:

- использует цикл с постусловием

- использует операторы присвоения

- определяет условие цикла

- формулирует тело цикла

- правильно выводит результат

- строит трассировочную таблицу

i:=1

P:=1

P:=P*i

1

i>5

ко

P

да

нач

i=3

P=2

P=P^i

i=i+1

i<5

кон

P

нет

17 of 31

  • #include <iostream>
  • #include <cmath>
  • using namespace std;

  • int main() {
  •     int i = 3;
  •     int P = 2;

  •     do {
  •         P = pow(P, i);
  •         i = i + 1;
  •     } while (i < 5);

  •     cout << P;

  •     return 0;
  • }

18 of 31

Шаг

Р

i

Проверка условия

i:=1

P:=1

P:=P*i

1

i>5

ко

P

да

нач

i=3

P=2

P=P^i

i=i+1

i<5

кон

P

нет

19 of 31

Шаг

Р

i

Проверка условия

1

2

2

3

3

8

4

4<5 (истина)

4

4096

5

5<5(ложь)

i:=1

P:=1

P:=P*i

1

i>5

ко

P

да

нач

i=3

P=2

P=P^i

i=i+1

i<5

кон

P

нет

20 of 31

Задание �Нарисуйте блок-схему и напишите программу

  • Организовать беспрерывный  ввод пароля с клавиатуры, пока пользователь не введёт определенный . После ввода правильного пароля, показать на экран количество попыток, которые были введены. Подсказка: необходимо объявить переменную-счетчик, которая будет считать количество введенных чисел.

  • Вводим значение переменной до тех пор пока его значение не равно 10

21 of 31

Задачи

  1. Найдите сумму от 1 до N. N вводится с консоли.
  2. Вывести таблицу умножения для N. N вводится с консоли.
  3. Вводится число N. Нужно найти квадраты чисел от 1 до N и сумму этих квадратов.
  4. Найти сумму цифр числа.

22 of 31

Рефлексия

  • сегодня я узнал…
  • было интересно…
  • было трудно…
  • я выполнял задания…
  • теперь я могу…
  • у меня получилось …
  • я попробую…
  • меня удивило…
  • урок дал мне для жизни…

23 of 31

Цикл с условием

Цикл while выполняет некоторый код, пока его условие истинно, то есть возвращает true. Он имеет следующее формальное определение

While (условие)

{

    // выполняемые действия

}

Цикл while является самым простым из 4-х циклов, которые есть в языке C++. Он очень похож на ветвление if/else:

Цикл while объявляется с использованием ключевого слова while. В начале цикла обрабатывается условие. Если его значением является true (любое ненулевое значение), то тогда выполняется тело цикла. Однако, в отличие от оператора if, после завершения выполнения тела цикла, управление возвращается обратно к while и процесс проверки условия повторяется. Если условие опять является true, то тогда тело цикла выполняется еще раз. Например, следующая программа выводит все числа от 0 до 9:

#include <iostream>≠

Using namespace std;

int main()

{

    int count = 0;

    while (count < 10)

        {

        cout << count << " ";

        count++;

        }

    cout << "done!";

    return 0;

}

Результат выполнения программы:0 1 2 3 4 5 6 7 8 9 done!

24 of 31

Цикл с условием

  • С другой стороны, если условие цикла всегда принимает значение true, то и сам цикл будет выполняться бесконечно. Это называется бесконечным циклом. Например:

�2

3

4

5

6

7

8

9

10

#include <iostream>

Using namespace std;

int main()

{

    int count = 0;

    while (count < 10) // это условие никогда не будет false

        cout << count << " "; // поэтому эта строка будет выполняться постоянно

    return 0; // а эта строка никогда не выполнится

}

Поскольку переменная count не увеличивается на единицу в этой программе, то условие count < 10 всегда будет true. Следовательно, цикл никогда не будет завершен, и программа будет постоянно выводить 0 0 0 0 0....

Единственный способ выйти из бесконечного цикла — использовать операторы returnbreakgoto, выбросить исключение

25 of 31

  • #include <iostream>
  • using namespace std;
  • int main()
  • {
  •     int count = 0;
  •     while (count < 10)
  •     {
  •         cout << count << " ";
  •         //count++;
  •     }
  •     return 0;
  • }

26 of 31

Прерывание цикла: Break

Обычно цикл завершается при вычислении условия в false.

Но мы можем выйти из цикла в любой момент с помощью специальной директивы break.

Например, следующий код подсчитывает сумму вводимых чисел до тех пор, пока пользователь их вводит, а затем – выдаёт:

int sum = 0;

while (true)

{

int value = int.Parse(Console.ReadLine());

sum = value;

break;

}

cout << ("Сумма: " + sum);

27 of 31

  • Return
  • Смысл: вернуть результат и выйти из функции.�Проще: «верни значение и закончи работу функции».
  • Пример на пальцах:�Функция что-то посчитала → return отправляет ответ обратно.
  • Break
  • Смысл: прервать выполнение цикла.�Проще: «остановись прямо сейчас».
  • Пример из жизни:�Ты считаешь до 100, но учитель сказал «стоп» → это break
  • Goto
  • Смысл: перейти к указанной метке в коде.�Проще: «перепрыгни в другое место программы».
  • Важно:�goto почти не используют, потому что код становится запутанным

  • return — верни результат
  • break — останови цикл
  • goto — перейди к метке

28 of 31

Задание (Код на С++, блок-схема, трассировочная таблица)

1. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.(while)

2.Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A (while)

3. Даны целые числа K и N (N > 0). Вывести N раз число K (while)

4. Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно. (while)

5. Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введет 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму.(do while)

Виды циклов в языке С++ - online presentation (ppt-online.org)

29 of 31

  • 1 Даны два положительных числа A и B, причём A > B.
  • На отрезке длины A размещают максимально возможное количество отрезков длины B без наложений.
  • Нужно найти длину незанятой части отрезка A,�НЕ используя умножение и деление,�используя цикл while.
  • Ключевая идея (очень важно)
  • Мы многократно вычитаем B из A, пока это возможно.�Когда вычитать больше нельзя — остаток и есть ответ.
  • Это по сути остаток от деления, но деление запрещено, поэтому делаем вручную
  • Алгоритм (словами)
  • Вводим A и B
  • Пока A ≥ B
    • вычитаем B из A
  • Когда цикл закончится
    • в A останется незанятая часть

30 of 31

  • 2 Главное отличие от предыдущей задачи
  • ❌ раньше искали остаток (незанятую часть)
  • ✅ теперь ищем сколько раз B помещается в A
  • То есть счётчик, а не остаток
  • Даны положительные числа A и B (A > B).
  • На отрезке длины A размещают максимально возможное количество отрезков длины B без наложений.
  • Нужно найти КОЛИЧЕСТВО отрезков длины B,�не используя умножение и деление,�используя while.
  • 3 Даны целые числа K и N, причём N > 0.�Нужно вывести число K ровно N раз,�используя цикл while.
  • Нам нужен счётчик, который будет считать,�сколько раз мы уже вывели K.

31 of 31

Шаг

i (до)

Условие i <= n

Действие

Вывод

i (после)

1

1

1 ≤ 3 → true

cout << k

7

2

2

2

2 ≤ 3 → true

cout << k

7

3

3

3

3 ≤ 3 → true

cout << k

7

4

4

4

4 ≤ 3 → false

выход из цикла

k = 7n = 3

4Даны числа A и B (A < B).�Нужно найти произведение всех целых чисел от A до B включительно.

Слово «произведение» = умножить все числа подряд.

A = 2 «От A до B включительно» — это числа: 2, 3, 4, 5

B = 5

2 × 3 × 4 × 5 = 120

5 Ты вводишь число 2️⃣ Компьютер смотрит:

  • если это НЕ 0→ кладёт число в сумму→ увеличивает счётчик
  • если это 0→ больше ничего не делает→ заканчивает

  • Ввели 5 → не ноль → запомнили
  • Ввели 3 → не ноль → запомнили
  • Ввели −2 → не ноль → запомнили
  • Ввели 7 → не ноль → запомнили
  • Ввели 0 → СТОП 

4

13