ИНФОРМАТИКА · 6 КЛАСС
Алгоритмы и Python · Интерактивный конспект

§ 20. Составление программ. Использование подпрограмм (вспомогательных алгоритмов)

Выделим повторяющиеся действия в функции, введём параметры и проверим состояние исполнителя при каждом вызове.

Попробовать на модели ↓
Разбираемся в теме

Основные пункты параграфа

1

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

Часть решения получает имя и может вызываться повторно.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Одна функция — несколько вызовов

Увеличивайте число вызовов. Одно описание создаёт несколько фигур.

Вспомогательный алгоритм — последовательность команд, к которой обращаются по имени. Если трижды нужно нарисовать треугольник, можно один раз описать его построение, затем вызвать функцию три раза. Это уменьшает повторение и упрощает исправления.

Повторение

Одна функция строит несколько одинаковых объектов.

Разделение задачи

Разные функции строят дом, ель и сосну; основная программа размещает их.

Подпрограммы полезны даже без повторяющихся объектов: большую задачу легче понять и проверить по отдельным частям.

Главная мысль: Подпрограмма решает подзадачу; функция Python оформляет такой алгоритм.
2

Определение и вызов функции

Определение сохраняет описание, вызов запускает его.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Определить не значит выполнить

Нажмите «Определить», затем «Вызвать». Сравните состояние до и после вызова.

def treug():
    turtle.forward(100)
    turtle.left(120)
    turtle.forward(100)
    turtle.left(120)
    turtle.forward(100)
    turtle.left(120)

treug()

После def записывают имя, круглые скобки и двоеточие. Тело функции выделяют отступом; обычно используют четыре пробела и единый стиль. Даже без параметров скобки обязательны. Имя в учебных примерах составляют из латинских букв, цифр и подчёркивания; оно не начинается с цифры.

Главная мысль: def задаёт функцию; её имя со скобками вызывает выполнение.
3

Параметры и начальное состояние

Одна функция может строить фигуры разных размеров и в разных местах.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Параметры меняют результат

Передавайте длину стороны и положение: рисунок меняется без переписывания функции.

def p(x, y):
    turtle.penup()
    turtle.setpos(x, y)
    turtle.setheading(0)
    turtle.pendown()

def treug(x, y, d):
    p(x, y)
    turtle.forward(d)
    turtle.left(120)
    turtle.forward(d)
    turtle.left(120)
    turtle.forward(d)
    turtle.left(120)

В вызове treug(−50, 0, 100) параметры задают начало (−50, 0) и сторону 100. Функция p заранее устанавливает положение и направление вправо, а переход выполняется с поднятым пером. Поэтому результат не зависит от случайного прежнего направления.

Функции могут вызывать другие функции. Важно, чтобы к моменту вызова нужные определения уже были выполнены.

Главная мысль: Параметры передают значения для конкретного вызова.
4

Основная программа и проверка

После подготовки функций размещаем объекты.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Соберите программу из подзадач

Добавляйте дом и деревья. Каждое действие вызывает свою функцию и дополняет картину.

import turtle

def p(x, y):
    turtle.penup()
    turtle.setpos(x, y)
    turtle.setheading(0)
    turtle.pendown()

def treug(x, y, d):
    p(x, y)
    turtle.forward(d)
    turtle.left(120)
    turtle.forward(d)
    turtle.left(120)
    turtle.forward(d)
    turtle.left(120)

turtle.color("green")
treug(-50, -90, 100)
treug(-50, 0, 100)
treug(-50, 90, 100)
turtle.done()

Это полная программа: подключение модуля, определения обеих функций и основная часть с вызовами. Её можно сохранить в файл .py и запустить в среде Python. Между треугольниками не будет соединительных линий, потому что p поднимает перо.

  1. Проверьте одну функцию

    Получается ли правильная фигура?

  2. Проверьте параметры

    Изменяется ли нужный размер или положение?

  3. Проверьте композицию

    Не перекрываются ли объекты нежелательным образом?

  4. Сохраните

    Дайте итоговому файлу понятное имя.

Главная мысль: Основной алгоритм вызывает подпрограммы с подходящими аргументами.
Интерактивная практика

Вызовы функции

Меняйте сторону и число вызовов. Полная программа обновляется: определение остаётся общим, аргументы меняются.

Соберём главное

Шесть выводов

01

Подпрограмма решает подзадачу; функция Python оформляет такой алгоритм.

02

def задаёт функцию; её имя со скобками вызывает выполнение.

03

Параметры передают значения для конкретного вызова.

04

Основной алгоритм вызывает подпрограммы с подходящими аргументами.

05

Определение функции само по себе не рисует фигуру: команды её тела выполняются при вызове.

06

После вызова функции состояние Черепахи может измениться; следующий вызов начинается с полученных положения и направления.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Что такое вспомогательный алгоритм?

2. Зачем выделять функции?

3. Какое слово начинает определение функции?

4. Что должно быть после скобок в заголовке?

5. Как выделяют тело функции?

6. Как вызвать функцию treug без параметров?

7. Рисует ли одно определение treug фигуру?

8. Что задаёт d в treug(x, y, d)?

9. Зачем p задаёт setheading(0)?

10. Зачем penup перед setpos?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…