План занятия
- 3 минПовторение. Житейское понимание алгоритма: три вопроса с мгновенной проверкой.
- 7 минТеория. Понятие алгоритма, исполнитель, свойства алгоритмов; блок-схема и программа на Python.
- 5 минРазбор кода. Готовая программа с командой
print()и три задания к ней. - 15–18 минПрактикум. Три обязательные задачи и две задачи со звёздочкой (★) с автоматической проверкой.
- 3 минИтог. Вывод, задания «Проверить себя», завершение занятия.
Цель занятия
Усвоить понятия «алгоритм» и «исполнитель», научиться определять свойства алгоритмов и записывать первую программу на языке Python для исполнителя-компьютера.
print().Повторение
Три вопроса на житейское понимание алгоритма. Проверка выполняется сразу после выбора ответа; ответ можно изменить.
Теория
Шаг 1. Понятие алгоритма
В повседневной жизни многие действия выполняются по правилам: рецепт определяет порядок приготовления блюда, инструкция описывает работу с прибором, правила дорожного движения задают порядок перехода улицы. Такие правила называют алгоритмами.
Слово «алгоритм» (англ. algorithm) происходит от латинской формы имени среднеазиатского учёного аль-Хорезми, жившего в IX веке. Он описал правила выполнения арифметических действий в десятичной системе счисления.
Алгоритм составляется для исполнителя. Алгоритм, записанный на языке программирования (англ. programming language), называется программой. Компьютер выполняет программы. В курсе используется язык Python; команда print() выводит текст на экран, а сам текст записывается в кавычках.
Алгоритм — понятное и точное предписание исполнителю совершить последовательность действий, приводящих от исходных данных к искомому результату.
Пример: рецепт
Исходные данные — продукты. Последовательность действий — шаги рецепта. Искомый результат — готовое блюдо.
Блок-схема
Программа на Python
print("Добро пожаловать в Котор!")
print("Начинается урок информатики.")
Блок-схема и программа описывают один и тот же алгоритм: две строки выводятся по порядку.
Обозначения блок-схемы (ГОСТ 19.701): овал — начало и конец; параллелограмм — ввод и вывод данных; прямоугольник — действие; ромб — условие (в этом конспекте не используется).
Шаг 2. Исполнитель
Исполнитель (англ. executor) — объект, способный выполнять определённый набор команд. Исполнителем может быть человек, животное или технический объект: повар выполняет рецепт, банкомат — запросы владельца карты, компьютер — программу.
Исполнитель характеризуется средой, системой команд и режимами работы. Среда (англ. environment) — обстановка, в которой действует исполнитель. Система команд исполнителя (СКИ; англ. instruction set) — полный перечень команд, которые исполнитель умеет выполнять. Команда, не входящая в этот перечень, не выполняется.
Формальный исполнитель выполняет команды строго по записи, не вникая в смысл и не исправляя ошибки. Результат определяется только порядком и содержанием команд.
| Исполнитель | Среда | Система команд | Пример команды |
|---|---|---|---|
| Повар | кухня, продукты, посуда | действия из рецепта | «нарезать овощи» |
| Банкомат | карта, клавиатура, экран, отсек для купюр | запрос баланса, снятие наличных, возврат карты | «выдать 50 евро» |
| Компьютер с Python | окно вывода, память компьютера | команды языка Python | print("Здравствуйте!") |
Непосредственное управление
Исполнитель получает и выполняет команды по одной. Каждая команда выполняется сразу после подачи. Пример: диспетчер по радио диктует водителю маршрут шаг за шагом.
Программное управление
Исполнитель получает всю последовательность команд (программу) и выполняет её самостоятельно. Пример: навигатор с маршрутом, заданным целиком. Программа на Python выполняется в этом режиме: команды исполняются сверху вниз.
Блок-схема
Программа на Python
print("Включить плиту")
print("Поставить чайник на плиту")
print("Налить воду в чайник")
Исполнитель выводит команды в записанном порядке, даже если этот порядок не приводит к нужному результату.
Шаг 3. Свойства алгоритмов
Не каждая последовательность действий является алгоритмом. Алгоритм обладает пятью свойствами.
1. Понятность (англ. comprehensibility)
Алгоритм состоит только из команд, входящих в систему команд исполнителя.
Нарушение: банкомату предписано «приготовить кофе».
2. Дискретность (англ. discreteness)
Процесс выполнения разбивается на отдельные шаги; следующий шаг выполняется после завершения предыдущего.
Нарушение: предписание «приготовить обед» без разбиения на отдельные команды.
3. Определённость (англ. definiteness)
Каждая команда понимается однозначно; результат не зависит от произвола исполнителя.
Нарушение: команда «подождать немного» — длительность не задана.
4. Результативность (англ. effectiveness)
За конечное число шагов алгоритм приводит к результату или сообщает, что решения нет.
Нарушение: предписание «записывать подряд все натуральные числа» — выполнение не заканчивается.
5. Массовость (англ. generality)
Алгоритм применим к целому классу задач, различающихся исходными данными. Правило сложения столбиком подходит для любой пары натуральных чисел.
Нарушение: инструкция «купить билет Подгорица — Котор на 14:00» пригодна для единственного набора данных.
Программа на Python
Программа из команд print() — тоже алгоритм: команды выполняются по одной (дискретность), каждая понимается однозначно (определённость), выполнение заканчивается после последней команды (результативность).
Блок-схема
Программа на Python
print("1. Вскипятить воду")
print("2. Положить в чашку пакетик чая")
print("3. Залить пакетик кипятком")
print("4. Подождать 3 минуты")
Алгоритм обладает свойствами: шаги отдельные, каждый однозначен («3 минуты», а не «немного»), выполнение конечно.
Разбор кода
Готовая программа
print("Маршрут: Подгорица - Котор")
print("Отправление: 08:15")
print()
print("Прибытие: 09:40")
| Строка | Что делает |
|---|---|
| 1, 2, 4 | Команда print() выводит текст из кавычек и переходит на новую строку. |
| 3 | Команда print() без текста выводит пустую строку. |
Команды выполняются сверху вниз, каждая один раз. Текст записывается в кавычках внутри круглых скобок. Команда начинается с первого символа строки: лишний пробел слева вызывает ошибку.
Задание 1. Определите, что выведет программа
Практикум
Три обязательные задачи и две задачи со звёздочкой (★) по возрастанию сложности. Каждая задача проверяется автоматически; подсказки открываются по одной.
Итог
Вывод
- Алгоритм — понятное и точное предписание исполнителю совершить последовательность действий, приводящих от исходных данных к искомому результату.
- Исполнитель — объект, способный выполнять определённый набор команд. Характеристики исполнителя: среда, система команд (СКИ), режимы работы — непосредственное и программное управление.
- Программа — алгоритм, записанный на языке программирования. Команда Python
print("текст")выводит строку;print()выводит пустую строку. Команды выполняются сверху вниз.
| Свойство | Содержание | Нарушение |
|---|---|---|
| Понятность | команды входят в СКИ исполнителя | команда вне системы команд |
| Дискретность | процесс разбит на отдельные шаги | действие без разбиения на шаги |
| Определённость | каждая команда понимается однозначно | «подождать немного» |
| Результативность | результат получен за конечное число шагов | выполнение никогда не заканчивается |
| Массовость | алгоритм применим к любым исходным данным из класса задач | алгоритм годится для единственного набора данных |