← Каталог
Приёмы написания кода — Проверка границ контракта
Фрагмент из «Приёмы написания кода»: Проверка границ контракта.
// [Предусловие: список не пуст, шаг > 0]
// [Постусловие: результат содержит элементы с индексами 0, шаг, 2*шаг, ...]
функция выбрать_каждый_n(список, шаг):
если список.длина == 0:
вызвать ошибку("Список не должен быть пустым")
если шаг <= 0:
вызвать ошибку("Шаг должен быть положительным")
результат = []
индекс = 0
пока индекс < список.длина:
результат.добавить(список[индекс])
индекс = индекс + шаг
вернуть результат // [Предусловие: список не пуст, шаг > 0]
// [Постусловие: результат содержит элементы с индексами 0, шаг, 2*шаг, ...]
функция выбрать_каждый_n(список, шаг):
если список.длина == 0:
вызвать ошибку("Список не должен быть пустым")
если шаг <= 0:
вызвать ошибку("Шаг должен быть положительным")
результат = []
индекс = 0
пока индекс < список.длина:
результат.добавить(список[индекс])
индекс = индекс + шаг
вернуть результат