АлгоритмЧёткая последовательность шагов для решения задачи за конечное число действий. — это последовательность чётких шагов, решающих задачу. Сравните с кулинарным рецептом: есть входные данные (продукты), есть шаги (нарезать, обжарить), и есть результат (блюдо). Решать задачи по программированию — значит переводить понятный человеку план в код, шаг за шагом.
Даже инструкция «как дойти до магазина» — это алгоритм: выйти из подъезда, повернуть направо, идти 200 метров, перейти дорогу. Чёткие шаги, которые приводят к цели.
Как подходить к задаче
Понять условие. Что на входе? Что нужно вернуть? Разберите пример руками, на бумаге.
Придумать план словами, без кода. «Пройду по списку, для каждого числа проверю…»
Написать код по плану.
Проверить на примерах, включая крайние случаи (пустой списокИзменяемая упорядоченная коллекция элементов: [1, 2, 3]. По-английски list., одно число).
💡Совет
Главная ошибка новичка — сразу писать код, не поняв задачу. Сначала проговорите решение словами. Если не можете объяснить план словами — код тем более не получится.
Пример: найти максимум
Задача: найти наибольшее число в списке. Как бы вы сделали это руками, разбирая стопку карточек с числами? Скорее всего так: возьмёте первую карточку как «пока что самую большую», а затем переберёте остальные, и если встретите больше — запомните её. План словами: «Запомню первое число как максимум. Пройду по остальным; если встречу больше — обновлю максимум».
▶ find-max.py
Обратите внимание: код — это почти дословный перевод плана. biggest = nums[0] — «запомню первое», циклКонструкция, повторяющая блок кода: for перебирает элементы, while — пока условие истинно. — «пройду по остальным», if n > biggest — «если встречу больше», biggest = n — «обновлю». Когда план есть, код пишется сам собой.
💡Совет
Предскажите вывод. Что вернёт find_max([-5, -2, -9]) для списка из одних отрицательных чисел? Подсказка: начальное значение берётся из самого списка, а не как 0.
▶ predict-max.py
Вернёт -2 — наибольшее из отрицательных. Если бы мы по ошибке начали с biggest = 0, ответ был бы неверным (0 больше всех), ведь нуля в списке нет. Поэтому начальное значение берут из данных.
⚠️ Частые ошибки новичков
Ошибка. Инициализировать максимум нулём вместо первого элемента. Для списка отрицательных чисел это даст неверный ответ. Запустите код, увидите неправильный результат и почините: начните с biggest = nums[0].
▶ broken-max.py
Заданиерешение.py
По аналогии напишите функцию find_min(nums), возвращающую наименьшее число списка. Встроенную min() не используйте.
Заданиерешение.py
Напишите функцию count_above(nums, limit), которая возвращает, сколько чисел в списке строго больше limit.
❓Проверь себя
Что такое алгоритм?
С чего лучше начинать решение задачи?
ℹ️Важно
✅ Что вы узнали
Алгоритм — последовательность чётких шагов: вход → действия → результат.
Сначала понять условие и придумать план словами, потом писать код.
Проверяйте решение на крайних случаях.
Поиск максимума/минимума: начать с первого элемента и обновлять при необходимости.
Комментарии
Загрузка…
Загрузка комментариев…