
В 8 классе мы писали простые программы. В 9 классе научимся собирать большие алгоритмы из частей — этот приём делает сложные задачи посильными. Разберёмся.
Чему ты научишься. разбивать большую задачу на подзадачи методом «сверху вниз» и оформлять их вспомогательными алгоритмами.
Пошаговая детализация
Большую задачу решают методом пошаговой детализации («сверху вниз»): сначала делят её на подзадачи покрупнее, затем каждую — на более мелкие, пока каждая не станет простой.
ПОШАГОВАЯ ДЕТАЛИЗАЦИЯ (сверху вниз):
ЗАДАЧА
┌──────┼──────┐
подзадача подзадача подзадача
┌──┴──┐
шаг шаг ← дробим, пока каждый шаг не станет простым
Вспомогательные алгоритмы
Отдельную подзадачу оформляют как вспомогательный алгоритм и вызывают его из основного по имени — так не повторяют один и тот же код. Данные передают через параметры: формальные — имена в описании алгоритма, фактические — конкретные значения при вызове. Алгоритм, который вызывает сам себя, называют рекурсивным.
Контрольный вопрос. Метод решения задачи «сверху вниз» — деление на всё более мелкие подзадачи — называется…
Подсказка: Дробим задачу на части.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Алгоритм, который вызывает сам себя, называется…
Подсказка: Например, факториал.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Отдельную подзадачу, которую вызывают из основного алгоритма по имени, оформляют как… алгоритм. Впиши слово.
Подсказка: Помогает главному алгоритму, но существует отдельно.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Конкретные значения, которые передают алгоритму при вызове, называются… параметрами.
Подсказка: Реальные, конкретные — как сам факт.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Данные передают вспомогательному алгоритму через… Впиши слово.
Подсказка: У них есть формальный и фактический вид.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Метод пошаговой детализации предполагает, что задачу делят на подзадачи и продолжают дробить, пока каждая не станет…
Подсказка: Цель дробления — получить понятные, лёгкие шаги.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Имена параметров в описании вспомогательного алгоритма называются… параметрами.
Подсказка: Конкретные значения при вызове — фактические.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Зачем оформлять повторяющийся код как вспомогательный алгоритм, а не копировать его в разных местах?
Подсказка: Главная выгода — не писать одно и то же дважды.
Онлайн-проверка ответа появится позже
Контрольный вопрос. У вспомогательного алгоритма есть формальный параметр x. При вызове передали значение 7. Чем формальный параметр отличается от фактического в этом случае?
Подсказка: Формальный — как ИМЯ в анкете, фактический — то, что реально вписали.
Онлайн-проверка ответа появится позже
Задание. Опиши свой вспомогательный алгоритм для бытовой задачи методом пошаговой детализации. Например, задача «приготовить чай» делится на подзадачи: «вскипятить воду», «заварить чай», «налить в чашку».
1) Раздели свою задачу на минимум 3 подзадачи.
2) Выбери ОДНУ из подзадач и опиши, какие данные ей нужны как параметры (например, для «вскипятить воду» — количество воды). Укажи формальный параметр (имя) и придумай фактическое значение при вызове.
3) Объясни, почему этот алгоритм можно назвать вспомогательным.Подсказка: Формальный параметр — общее имя (например, «объём»); фактическое значение — конкретное число при реальном вызове.
Онлайн-проверка ответа появится позже
Итог. Сложную задачу решают пошаговой детализацией: дробят на подзадачи, пока каждая не станет простой. Отдельную подзадачу оформляют вспомогательным алгоритмом и вызывают по имени, передавая данные через параметры.
Что дальше
В Python вспомогательные алгоритмы — это функции. Научимся их писать. Следующий урок.
