Сначала определите вход и ожидаемый результат
Пусть дан список целых чисел: 4, минус 1, 7, 0, 7. Нужно узнать, сколько элементов больше пяти. Вход — весь список, результат — одно число. Слово «элементов» существенно: две семёрки находятся в разных позициях, поэтому учитываются обе. Прежде чем писать алгоритм, решите пример вручную. Подходят третье и пятое числа, значит ожидаемый ответ равен двум. Такой ответ служит проверкой, но одного примера недостаточно: правильная программа должна работать и с другими допустимыми данными.
Задайте состояние и правило его изменения
Для подсчёта понадобится переменная-счётчик. До просмотра списка ей присваивают ноль: пока ни один элемент не обработан. Затем алгоритм по очереди рассматривает каждое число. Если оно больше пяти, счётчик увеличивается на единицу; иначе его значение сохраняется. Важно увеличивать счётчик, а не заменять его текущим числом. Команда присвоить семёрку и команда прибавить единицу решают разные задачи. Также нельзя обнулять счётчик внутри каждого повторения: тогда сведения о ранее найденных элементах будут потеряны.
Запишите каждое повторение
После числа 4 счётчик остаётся равным нулю. После минус 1 — тоже нулю. Число 7 удовлетворяет условию, поэтому получается единица. После нуля значение не меняется. Последняя семёрка увеличивает счётчик до двух. Получилась последовательность состояний: 0, 0, 1, 1, 2. На каждом шаге счётчик означает количество подходящих элементов среди уже просмотренных. Это объяснение помогает проверить алгоритм целиком. Если после третьего элемента записано семь, смысл переменной нарушен: вместо количества сохранено значение одного элемента.
Проверьте границу и необычные входы
Условие «больше пяти» отличается от «не меньше пяти». Число 5 в первом случае не учитывается, во втором учитывается. Поэтому тест с самой границей особенно полезен. Ещё нужны список без подходящих элементов и список, где подходят все. Если условие задачи допускает пустой список, цикл не выполнится ни разу, а результат останется нулём. Но допустимость такого входа нужно брать из постановки, а не предполагать. В конкретном языке также проверяют правила записи цикла и границ диапазона: внешне похожие конструкции могут обходить разные значения.
Попробуйте на практике
Выполните трассировку подсчёта чисел больше пяти для нового списка: 5, 6, 6, минус 2.
- Запишите начальное значение счётчика и объясните, что оно означает до первого повторения.
- Для каждого числа укажите, истинно ли условие «больше пяти», и запишите новое значение счётчика.
- Измените условие на «не меньше пяти» и повторите трассировку того же списка.
- Придумайте список из трёх чисел, для которого ответ равен нулю, и объясните, почему значение счётчика не изменится.
Как проверить результат. При первом условии состояния после элементов равны 0, 1, 2, 2, а ответ — 2. При втором условии ответ равен 3. Разницу объясняет только включение числа 5.
Частые вопросы
Почему повторяющиеся числа считаются несколько раз?
Задача спрашивает количество подходящих элементов, а не различных значений. Если требуется подсчитать разные числа, понадобится другая постановка и дополнительная логика.
Трассировка гарантирует отсутствие ошибок?
Она помогает обнаруживать ошибки на выбранных данных и понять логику. Для более уверенной проверки нужны разные случаи и объяснение того, что состояние переменной означает на каждом шаге.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.