Что такое алгоритм и как описывать решение задачи?
Автор: Казачкин Даниил Михайлович · Обновлено
Алгоритм — это точное описание действий, которое можно выполнить и получить результат. В школьной информатике алгоритмы встречаются в задачах на исполнителей, таблицы,…
Алгоритм — это точное описание действий, которое можно выполнить и получить результат. В школьной информатике алгоритмы встречаются в задачах на исполнителей, таблицы, вычисления, поиск, сортировку и обработку текста.
Хороший алгоритм обладает несколькими свойствами:
- определенность: каждый шаг понятен исполнителю;
- конечность: выполнение заканчивается за разумное число шагов;
- результативность: после выполнения получается ответ;
- массовость: способ подходит не только для одного примера, а для класса похожих входных данных.
Как перейти от условия к алгоритму
Сначала выпишите, что дано и что требуется найти. Затем решите задачу руками на маленьком примере. После этого сформулируйте шаги обычным языком: прочитать данные, подготовить счетчики, перебрать элементы, проверить условия, вывести ответ.
Например, нужно найти сумму чисел от 1 до n.
n = int(input())
total = 0
for number in range(1, n + 1):
total += number
print(total)Здесь алгоритм состоит из чтения числа, создания переменной для суммы, перебора чисел и вывода результата.
Зачем нужен псевдокод
Псевдокод помогает отделить идею от синтаксиса языка. Его удобно писать перед программой:
- Прочитать n.
- Обнулить сумму.
- Для каждого числа от 1 до n прибавить его к сумме.
- Напечатать сумму.
Если псевдокод понятен, код обычно пишется быстрее и содержит меньше ошибок. Этот навык особенно важен для задач ОГЭ, ЕГЭ и школьных олимпиад, где часть сложности скрыта именно в формулировке условия.
Практикум: алгоритм выдачи книги в библиотеке
Опишите алгоритм выдачи книги по читательскому билету. Учтите три входа: номер билета, наличие книги и число уже выданных книг. Сначала составьте обычный список шагов, затем псевдокод с ветвлениями. Проверьте его на случаях «книга доступна», «экземпляров нет» и «достигнут лимит». Попросите другого человека выполнить инструкцию буквально: если ему приходится додумывать правило, шаг сформулирован недостаточно точно. В финальной версии явно укажите момент завершения и сообщение для каждого отказа.
Контрольная точка
Найдите контрпример для инструкции «выдать книгу, если читатель зарегистрирован». Какие данные она игнорирует и почему алгоритм нельзя считать результативным для всех допустимых случаев? Исправьте правило, не привязывая его к одному конкретному читателю.
Частые вопросы
Чем алгоритм отличается от исходного кода?
Алгоритм описывает способ решения и может быть записан словами, блок-схемой или псевдокодом. Исходный код — точная реализация этого способа на выбранном языке. Один алгоритм можно реализовать на Python, JavaScript или вручную, сохранив порядок действий.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.