Перейти к содержанию
Educora
Средний6–9 классы25 мин26 / 59

Построение блок-схем: письменные задания

Как строить письменную блок-схему ГЦЭ: ввод N чисел, цикл со счётчиком, накопители, флаг, чередование знаков, кусочная функция и вывод «не найдено»; шесть модельных блок-схем и их проверка таблицей трассировки.

Проверь себя
В этом уроке ты узнаешь
  • Выделять из условия письменного задания ввод, вывод и случай «не найдено»
  • Строить каркас цикла со счётчиком для ввода N чисел и правильно задавать начальные значения накопителей
  • Использовать шаблоны флага, чередования знаков, «последний/первый» и кусочной функции
  • Проверять готовую блок-схему на примере и граничных случаях с помощью таблицы трассировки

На каждом из четырёх вступительных экзаменов 2025–2026 годов задание 88 по информатике было одного вида: «… постройте блок-схему алгоритма». Вариантов ответа здесь нет — блок-схему нужно нарисовать на бланке самому. Хорошая новость: эти задания очень похожи. Во всех вводятся N (или n) чисел, работает цикл со счётчиком, несколько переменных-накопителей что-то собирают, а в конце печатается результат. Освоив «каркас» и шесть моделей, вы будете решать новое задание, просто заполняя пустые места каркаса.

Письменное задание: что требуется

Письменные задания ГЦЭ оцениваются в 0, ⅓, ½, ⅔ или 1 балл, а в формуле баллов результат письменного задания умножается на 2 — полное решение стоит столько же, сколько два закрытых задания. Возможны частичные баллы, поэтому незаконченная, но правильно начатая блок-схема лучше пустого бланка. В опубликованных ГЦЭ ответах приводится одна модельная блок-схема с припиской «или эквивалентная блок-схема»: принимается любое верное решение, единственного «правильного рисунка» нет.

  • вычисление знакочередующейся суммы из N слагаемых (ряды вида 1/2 − 1/4 + …);
  • вывод последнего из N чисел, удовлетворяющего условию, и его номера, а если такого нет — сообщения;
  • проверка, является ли одно число натуральной степенью другого, и вывод показателя;
  • вычисление кусочной функции для n входных значений и сумма значений, удовлетворяющих условию.

Выше перечислены типы четырёх реальных письменных заданий 2025–2026 годов. Модели этого урока — собственные варианты этих типов: числа и условия другие, но структура та же.

Строительные блоки и каркас

  1. 1
    Разберите условие

    Что вводится (N и числа? a, b?), что нужно вывести и что делать, если ничего не найдено?

  2. 2
    Выберите переменные

    Назовите каждый накопитель и запишите его начальное значение до цикла: S = 0, c = 0, P = 1, t = 0, i = 1.

  3. 3
    Нарисуйте каркас

    Ромб i ≤ N, ввод x на ветви «Да», i = i + 1 в конце тела и стрелка назад к ромбу.

  4. 4
    Заполните тело

    Обработка x: условия, вычисления, обновление накопителей.

  5. 5
    Постройте вывод

    После цикла: при необходимости проверьте флаг и выведите результат или сообщение; затем Конец.

  6. 6
    Проверьте

    Постройте таблицу трассировки для примера из условия; затем проверьте граничный случай: N = 1, ни одно число не подходит.

РольДо циклаВ циклеКогда нужен
счётчикi = 1i = i + 1ввод N чисел
суммаS = 0S = S + xсуммы, ряды
количествоc = 0c = c + 1«сколько чисел…»
произведениеP = 1P = P · xпроизведения, степени
знакk = 1k = −kзнакочередующийся ряд
флагt = 0t = 1, когда найдено«… если нет — сообщение»
последний—каждый раз m = x, p = i«последний … и его номер»
первый—m = x, p = i только пока t = 0«первый … и его номер»
Шаблоны для письменных заданий
НачалоNi = 1S = 0, c = 0, t = 0 …i ≤ Nxобработка xi = i + 1Давывод результатаНетКонец
Общий каркас всех моделей: меняются только пунктирные блоки

Модель 1: знакочередующаяся сумма

S = 1 − 1/3 + 1/5 − 1/7 + … , aᵢ = k / (2·i − 1), k = −kS = 1 − 1/3 + 1/5 − 1/7 + … , aᵢ = k / (2·i − 1), k = −k
где:
  • iномер слагаемого, от 1 до N
  • 2·i − 1знаменатель i-го слагаемого: 1, 3, 5, 7, …
  • kзнак: начинается с 1 и на каждом шаге становится −k (1, −1, 1, …)

Общий член знакочередующегося ряда: знак хранится в отдельной переменной

НачалоNS = 0k = 1i = 1i ≤ NS = S + k / (2·i − 1)k = −ki = i + 1ДаSНетКонец
S = 1 − 1/3 + 1/5 − … (N слагаемых): k меняет знак на каждом шаге
Пример 1. Проверка модели 1

Постройте блок-схему, вычисляющую S = 1 − 1/3 + 1/5 − … (N слагаемых) для введённого натурального N, и проверьте её при N = 3.

Показать решение
Блок-схема приведена выше. Трассировка (N = 3):
i = 1: S = 0 + 1/1 = 1; k = −1; i = 2
i = 2: S = 1 − 1/3 = 2/3; k = 1; i = 3
i = 3: S = 2/3 + 1/5 = 13/15; k = −1; i = 4
4 ≤ 3 — Нет → вывод S = 13/15 ≈ 0,867. Верно: 1 − 1/3 + 1/5 = 13/15.
Эквивалентный вариант: хранить знаменатель в отдельной переменной d (d = 1, на каждом шаге d = d + 2) и писать S = S + k / d.

Модель 2: флаг и вывод «не найдено»

Определение
Флаг

Вспомогательная переменная всего с двумя значениями: t = 0 — «пока не найдено», t = 1 — «найдено хотя бы раз». До цикла t = 0, при нахождении подходящего числа t = 1, а после цикла в зависимости от t выводится результат или сообщение.

НачалоNt = 0i = 1i ≤ NxДаx % 2 = 0m = xp = it = 1ДаНетi = i + 1t = 1Нетm, p«Чётных чисел нет»ДаНетКонец
Последнее чётное число и его номер: флаг t отвечает на вопрос «нашлось ли?»
Пример 2. Последнее и первое чётное число

1) Проверьте модель 2 при N = 5 и числах 7, 4, 9, 10, 3.
2) Что будет выведено при N = 3 и числах 1, 5, 9?
3) Что изменить в блок-схеме, если нужно не последнее, а первое чётное число?

Показать решение
1) i = 1, x = 7: нечётное. i = 2, x = 4: m = 4, p = 2, t = 1. i = 3, x = 9: нечётное. i = 4, x = 10: m = 10, p = 4 (перезаписали!). i = 5, x = 3: нечётное. После цикла t = 1 → вывод 10 4.
2) Ни одно число не чётное, t остаётся 0 → «Чётных чисел нет».
3) Сделайте второй ромб «x % 2 = 0 и t = 0»: после t = 1 значения m и p больше не меняются. Тогда в (1) вывод будет 4 2.
Python
a = [7, 4, 9, 10, 3]
t = 0
for i in range(1, len(a) + 1):
    x = a[i - 1]
    if x % 2 == 0:
        m = x
        p = i
        t = 1
if t == 1:
    print(m, p)
else:
    print('no even numbers')
▸ Ожидаемый результат
10 4
Проверьте блок-схему на Python. В экзаменационном варианте числа вводятся с клавиатуры: сначала N = int(input()), затем внутри цикла x = int(input()).

Модель 3: является ли число степенью b?

Если a = bᵏ, то a можно ровно k раз разделить на b без остатка, и в конце останется 1. Эта идея превращается в цикл: пока a делится на b, a = a / b и k = k + 1. Если после цикла a = 1, то a — k-я степень b; если нет — не степень.

Началоa, bk = 0a % b = 0a = a / bk = k + 1Даa = 1Нетk«не степень b»ДаНетКонец
Проверка a = bᵏ последовательным делением (a > b ≥ 2)
Пример 3. Проверка степени

Проверьте модель 3 для трёх наборов: 1) a = 81, b = 3; 2) a = 72, b = 6; 3) a = 64, b = 4.

Показать решение
1) 81 → 27 → 9 → 3 → 1, k = 4; 1 % 3 = 1 ≠ 0 → цикл заканчивается; a = 1 → 4 (81 = 3⁴).
2) 72 → 12 (k = 1) → 2 (k = 2); 2 % 6 = 2 → цикл заканчивается; a = 2 ≠ 1 → «не степень b».
3) 64 → 16 → 4 → 1, k = 3 → 3 (64 = 4³).
Эквивалентный способ — умножение: d = b, k = 1; пока d < a: d = d · b, k = k + 1; в конце, если d = a, выводится k. Обе блок-схемы верны.

Модель 4: кусочная функция для n значений

y = 2·x + 5, если x < 3; y = x² − 4, если x ≥ 3
где:
  • xцелое число, вводимое на каждом шаге цикла
  • yзначение функции: ромб выбирает одну из двух формул

Задача: вычислить y для n чисел и вывести сумму значений, больших 20

НачалоnS = 0i = 1i ≤ nxДаx < 3y = x·x − 4y = 2·x + 5НетДаy > 20S = S + yДаНетi = i + 1SНетКонец
Два ветвления внутри цикла: сначала вычисляется y, затем по условию прибавляется к сумме
Пример 4. Трассировка модели 4

n = 4, числа: 6, 2, 10, −4. Что выведет модель 4?

Показать решение
x = 6: 6 < 3 — Нет → y = 36 − 4 = 32; 32 > 20 → S = 32.
x = 2: Да → y = 2·2 + 5 = 9; 9 > 20 — Нет, S не меняется.
x = 10: Нет → y = 100 − 4 = 96 → S = 32 + 96 = 128.
x = −4: Да → y = −8 + 5 = −3 → S не меняется.
Вывод: 128. x = 3 — граничный случай: 3 < 3 ложно, поэтому y = 9 − 4 = 5; всегда проверяйте, к какой формуле относится граница.

Модели 5 и 6: среднее и максимум

Пример 5. Среднее арифметическое положительных чисел

Вводится N чисел. Опишите словами блок-схему, которая выводит среднее арифметическое положительных чисел среди них, а если их нет — сообщение «Положительных чисел нет», и проверьте её на 4, −3, 7, 0, 10.

Показать решение
Блок-схема: N; S = 0; c = 0; i = 1; ромб i ≤ N → x; ромб x > 0 → Да: S = S + x, c = c + 1; i = i + 1 и стрелка назад. После цикла ромб c = 0: Да → «Положительных чисел нет»; Нет → вывод S / c.
Проверка: положительные 4, 7, 10 (0 не положительное!) → S = 21, c = 3 → 7.
Отдельный флаг здесь не нужен: c = 0 само означает «не найдено». Эта проверка заодно защищает от деления на ноль.
Пример 6. Максимум и его номер

Постройте тело блок-схемы, выводящей наибольшее из N чисел и его номер. Чем отличается ответ для 3, 11, 7, 11, 2 при сравнениях «>» и «≥»?

Показать решение
Метод кандидата: первое число читаем до цикла: m = x, p = 1, i = 2; в цикле ромб x > m → Да: m = x, p = i.
С «>»: 11 найдено на втором месте, четвёртое 11 не больше → 11 2 (первый максимум).
С «≥»: равное значение тоже перезаписывается → 11 4 (последний максимум).
Не начинайте m с 0: если все числа отрицательные, ответ будет неверным.

Эти шесть моделей покрывают большинство заданий ГЦЭ на блок-схемы. Два других письменных задания экзамена требуют тех же идей в виде программы на Python: цикл блок-схемы становится for или while, ромб — if, параллелограмм — input() и print(). Кто уверенно строит блок-схемы, тот легко пишет и программу.

Задание

Запишите модель 5 на Python: выведите среднее арифметическое положительных чисел списка a = [4, −3, 7, 0, 10]; если положительных нет, выведите none.

Задание · Python
a = [4, -3, 7, 0, 10]
# print the mean of the positive numbers, or 'none'
▸ Ожидаемый результат
7.0

Главное

  • Письменная блок-схема оценивается в 0, ⅓, ½, ⅔ или 1 балл и удваивается в формуле; принимается любая эквивалентная верная блок-схема.
  • Каркас: N; i = 1; накопители до цикла; ромб i ≤ N; x внутри цикла; i = i + 1 в конце тела; результат после цикла.
  • Начальные значения: сумма и количество 0, произведение 1, знак 1, флаг 0.
  • «Последний» — перезаписывать при каждом совпадении; «первый» — записывать, только пока t = 0; «если нет» — после цикла проверять флаг или количество.
  • Проверяйте готовую блок-схему таблицей трассировки на примере и граничном случае.

Проверь себя

Вопросов: 12. Каждый правильный ответ приносит XP.

1 / 12
Каким должно быть значение флага t для сообщения «не найдено» до цикла?