Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

2. Следование (Sequential execution)

Суть: действия выполняются одно за другим в том порядке, в котором записаны. Переход к следующему действию происходит только после полного завершения предыдущего.

Это самая простая конструкция. В блок-схемах обозначается последовательностью прямоугольников.

Пример из жизни: Алгоритм приготовления бутерброда:

  1. Взять хлеб.

  2. Отрезать кусок.

  3. Взять масло.

  4. Намазать масло на хлеб.

Здесь шаги нельзя переставить (нельзя намазать масло до того, как отрезал хлеб) — это и есть следование.

Пример в коде (Python):

Компьютер выполнит строки именно в этом порядке, не перепрыгивая и не возвращаясь.

3. Ветвление (Branching / Selection)

Суть: выполнение разных действий в зависимости от условия. Условие — это логическое выражение, которое может быть истинным (True) или ложным (False).

Ветвление бывает двух видов:

А) Неполное ветвление (if then)

Действие выполняется, только если условие истинно. Если ложно — алгоритм просто идёт дальше.

Блок-схема: Ромб (условие) → если да → прямоугольник (действие) → выход ↘ если нет → сразу выход

Код:

Б) Полное ветвление (if then else)

Есть две ветки: для истинного условия и для ложного. Выполняется всегда одна из них.

Блок-схема: Ромб (условие) → если да → действие 1 ↘ если нет → действие 2 Потом они сходятся в одну точку выхода.

Код:

В) Множественное ветвление

Когда нужно проверить несколько условий последовательно. Реализуется через if-elif-else или switch-case.

Код (Python):

Важный нюанс: в конструкции if-elif-else условия проверяются сверху вниз. Как только найдено первое истинное условие, соответствующая ветка выполняется, а остальные пропускаются.

4. Циклы (Loops / Iteration)

Суть: многократное выполнение одного и того же блока действий. Количество повторений либо известно заранее, либо определяется выполнением условия.

Циклы бывают трёх основных видов:

А) Цикл с параметром (со счётчиком) — for

Используется, когда точно известно, сколько раз нужно повторить действие.

Блок-схема: Блок инициализации → проверка условия → если да → тело цикла → изменение счётчика → снова проверка условия ↘ если нет → выход

Код (Python):

Здесь range(1,6) генерирует последовательность [1,2,3,4,5]. Для каждого значения выполняется тело цикла.

Код (C++):

Здесь чётко видны три части: инициализация (i=1), условие продолжения (i<=5), изменение после каждой итерации (i++).

Б) Цикл с предусловием — while

Сначала проверяется условие. Если оно истинно — выполняется тело цикла. Затем снова проверка. Если условие ложно с самого начала — тело не выполнится ни разу.

Блок-схема: Ромб (условие) → если да → действие → возврат к ромбу ↘ если нет → выход

Код:

В) Цикл с постусловием — do while

Сначала выполняется тело цикла, потом проверяется условие. Если условие истинно — цикл повторяется. Тело выполняется как минимум один раз всегда.

В Python такого цикла нет (это особенность языка), но в C++ и Java он есть.

Код (C++):

Если бы i изначально было равно 10, то тело выполнилось бы один раз (напечаталось бы 10), потом проверка 10 <= 5 дала бы false, и цикл завершился.

Г) Управление циклами

  • break — немедленный выход из цикла независимо от условия.

  • continue — пропуск текущей итерации и переход к следующей.

Пример с break:

5. Вложенные конструкции

Базовые конструкции можно вкладывать друг в друга сколько угодно раз. Например, цикл внутри цикла (таблицы умножения), ветвление внутри цикла (фильтрация), цикл внутри ветвления и так далее.

Пример: вложенные циклы (таблица умножения)

6. Почему именно эти три конструкции?

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

  • читать программу сверху вниз, не прыгая по коду;

  • доказывать правильность алгоритма;

  • легко отлаживать;

  • комбинировать конструкции без потери структуры.

Именно этот принцип (одна точка входа — одна точка выхода) отличает структурное программирование от спагетти-кода с goto.