Конструирование алгоритмов

Конструирование алгоритмов

В 8 классе мы писали простые программы. В 9 классе научимся собирать большие алгоритмы из частей — этот приём делает сложные задачи посильными. Разберёмся.

Чему ты научишься. разбивать большую задачу на подзадачи методом «сверху вниз» и оформлять их вспомогательными алгоритмами.

Пошаговая детализация

Большую задачу решают методом пошаговой детализации («сверху вниз»): сначала делят её на подзадачи покрупнее, затем каждую — на более мелкие, пока каждая не станет простой.

ПОШАГОВАЯ ДЕТАЛИЗАЦИЯ (сверху вниз):
            ЗАДАЧА
        ┌──────┼──────┐
     подзадача подзадача подзадача
      ┌──┴──┐
    шаг   шаг     ← дробим, пока каждый шаг не станет простым

Вспомогательные алгоритмы

Отдельную подзадачу оформляют как вспомогательный алгоритм и вызывают его из основного по имени — так не повторяют один и тот же код. Данные передают через параметры: формальные — имена в описании алгоритма, фактические — конкретные значения при вызове. Алгоритм, который вызывает сам себя, называют рекурсивным.

Контрольный вопрос. Метод решения задачи «сверху вниз» — деление на всё более мелкие подзадачи — называется…

Апошаговая детализация
Брекурсия
Всортировка

Подсказка: Дробим задачу на части.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Алгоритм, который вызывает сам себя, называется…

Арекурсивный
Блинейный
Ввспомогательный

Подсказка: Например, факториал.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Отдельную подзадачу, которую вызывают из основного алгоритма по имени, оформляют как… алгоритм. Впиши слово.

Подсказка: Помогает главному алгоритму, но существует отдельно.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Конкретные значения, которые передают алгоритму при вызове, называются… параметрами.

Афактическими
Бформальными

Подсказка: Реальные, конкретные — как сам факт.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Данные передают вспомогательному алгоритму через… Впиши слово.

Подсказка: У них есть формальный и фактический вид.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Метод пошаговой детализации предполагает, что задачу делят на подзадачи и продолжают дробить, пока каждая не станет…

Апростой
Ббесконечной
Водинаковой

Подсказка: Цель дробления — получить понятные, лёгкие шаги.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Имена параметров в описании вспомогательного алгоритма называются… параметрами.

Аформальными
Бфактическими

Подсказка: Конкретные значения при вызове — фактические.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Зачем оформлять повторяющийся код как вспомогательный алгоритм, а не копировать его в разных местах?

Ачтобы не повторять один и тот же код и вызывать его по имени
Бчтобы программа работала быстрее
Вчтобы скрыть код от других

Подсказка: Главная выгода — не писать одно и то же дважды.

Онлайн-проверка ответа появится позже

Контрольный вопрос. У вспомогательного алгоритма есть формальный параметр x. При вызове передали значение 7. Чем формальный параметр отличается от фактического в этом случае?

Аформальный — это имя x в описании, фактический — конкретное значение 7 при вызове
Бформальный и фактический — это одно и то же
Вформальный параметр не может иметь значения

Подсказка: Формальный — как ИМЯ в анкете, фактический — то, что реально вписали.

Онлайн-проверка ответа появится позже

Задание. Опиши свой вспомогательный алгоритм для бытовой задачи методом пошаговой детализации. Например, задача «приготовить чай» делится на подзадачи: «вскипятить воду», «заварить чай», «налить в чашку».
1) Раздели свою задачу на минимум 3 подзадачи.
2) Выбери ОДНУ из подзадач и опиши, какие данные ей нужны как параметры (например, для «вскипятить воду» — количество воды). Укажи формальный параметр (имя) и придумай фактическое значение при вызове.
3) Объясни, почему этот алгоритм можно назвать вспомогательным.

Подсказка: Формальный параметр — общее имя (например, «объём»); фактическое значение — конкретное число при реальном вызове.

Онлайн-проверка ответа появится позже

Итог. Сложную задачу решают пошаговой детализацией: дробят на подзадачи, пока каждая не станет простой. Отдельную подзадачу оформляют вспомогательным алгоритмом и вызывают по имени, передавая данные через параметры.

Что дальше

В Python вспомогательные алгоритмы — это функции. Научимся их писать. Следующий урок.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева