Три базовые конструкции алгоритма

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

Последовательность Ветвление Цикл
Как работать с этой страницей. Каждая конструкция — на отдельной вкладке. Сначала посмотрите на схему и прочитайте описание. Затем введите свои числа и понажимайте «Шаг →», чтобы увидеть, как программа выполняет эти действия пошагово.

① Последовательность (линейный алгоритм)

Самая простая конструкция: команды выполняются одна за другой, сверху вниз. Никаких условий и повторений. Ровно так, как читается книга.

Задача: ввести два числа и вывести их сумму.

Схема алгоритма

Начало Ввод a, b s = a + b Вывод s Конец

Живая трассировка

Введите два числа и нажмите «Шаг», чтобы увидеть, как программа выполняет команды по порядку.

Значения переменных

ПеременнаяЗначение
a—
b—
s—

Готово к запуску

Вывод программы

Код на C++

main.cpp
#include <iostream>
using namespace std;

int main() {
    int a, b, s;
    cin >> a >> b;   // ввод двух чисел
    s = a + b;         // сложение
    cout << s << endl;   // вывод результата
    return 0;
}
Ключевая идея. Порядок операторов в коде = порядок выполнения. Программа читается как инструкция «сделай это, потом это, потом это».

② Ветвление (условный оператор)

Иногда нужно выбрать между двумя вариантами действий в зависимости от условия. Для этого служит конструкция if … else.

Задача: ввести число и определить, положительное оно или нет.

Схема алгоритма

Начало Ввод x x > 0 ? да Вывод "> 0" нет Вывод "≤ 0"

Ромб — это вопрос. У него два выхода: «да» — одно действие, «нет» — другое.

Живая трассировка

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

ПеременнаяЗначение
x—
Условие x > 0—

Готово к запуску

Вывод программы

Код на C++

main.cpp
#include <iostream>
using namespace std;

int main() {
    int x;
    cin >> x;
    if (x > 0)
        cout << "положительное";
    else
        cout << "не положительное";
    return 0;
}
Скобки { }. Если в ветке несколько операторов — их обязательно нужно объединить в блок с помощью фигурных скобок. Один оператор можно писать без скобок, но лучше привыкать ставить их всегда.

③ Цикл (повторение)

Цикл нужен, когда одно и то же действие выполняется много раз. В C++ три оператора цикла: for, while, do-while.

Задача: посчитать сумму чисел от 1 до N.

Схема алгоритма

Начало Ввод N i = 1, s = 0 i ≤ N ? да s = s + i i = i + 1 нет Вывод s

Тело цикла повторяется, пока условие в ромбе истинно. Как только оно становится ложным — выходим из цикла.

Живая трассировка

Попробуйте N = 1, затем N = 3, потом N = 10. Обратите внимание, как накапливается сумма.

Значения переменных

ПеременнаяЗначение
N—
i—
s—
Условие i ≤ N—

Готово к запуску

Вывод программы

Код на C++

main.cpp
#include <iostream>
using namespace std;

int main() {
    int N;
    cin >> N;

    int s = 0;
    for (int i = 1; i <= N; i++) {
        s = s + i;
    }

    cout << s << endl;
    return 0;
}
Три части for. for (инициализация; условие; шаг) — три части разделены точкой с запятой. Инициализация выполняется один раз. Условие проверяется перед каждой итерацией. Шаг — после каждой итерации. В нашем случае: i = 1, потом i ≤ N, потом тело цикла, потом i++, и снова проверка условия.

Комбинируем всё: где какие конструкции

Помните задачу «средний балл» с прошлой страницы? Там были все три конструкции сразу:

Место в задачеКонструкция
Ввод N, инициализация sum и goodПоследовательность
Обход всех N оценокЦикл for
Проверка «оценка ≥ 4»Ветвление if
Вывод результатаПоследовательность

Практика: определите конструкцию

Для каждого фрагмента скажите, какая конструкция использована. Проверьте себя, нажав на ответ.

«Прочитать число, прибавить его к сумме, вывести сумму»

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

«Если число чётное — напечатать "even", иначе — "odd"»

Ветвление — у нас выбор между двумя вариантами по условию.

«Для каждой оценки в списке проверить, больше ли она 3»

Цикл + ветвление внутри — типичная комбинация. Обход списка — цикл, проверка — ветвление.

«Пока пользователь не введёт 0, читать числа»

Цикл while с условием в начале.