2. Алгоритмы и способы их представления
h ## Понятие алгоритма
Алгоритм — это конечная последовательность действий, которая приводит к решению поставленной задачи.
Алгоритм отвечает на три главных вопроса:
- Что делать?
- В каком порядке выполнять действия?
- Когда завершить выполнение?
Любая программа — это алгоритм, записанный на языке программирования.
Отличие алгоритма от набора действий
Не каждый набор действий является алгоритмом.
Пример:
1. Включить компьютер
2. Работать
На первый взгляд это похоже на алгоритм, но:
- неясно, что значит «работать»;
- не указано, когда алгоритм завершается;
- отсутствует конкретный результат.
Значит, это не алгоритм.
Свойства алгоритма
Чтобы набор действий считался алгоритмом, он должен обладать определёнными свойствами.
1 Определённость
Каждый шаг алгоритма должен быть:
- точным;
- однозначным;
- понятным исполнителю.
Плохо:
«Сделать задание нормально»
Хорошо:
«Открыть файл задания и выполнить все пункты»
Исполнитель не должен додумывать смысл шага.
2 Конечность
Алгоритм должен:
- иметь начало;
- иметь конец.
Плохо:
«Повторять действия всегда»
Хорошо:
«Повторять действия, пока не выполнено условие»
Бесконечный алгоритм — ошибка.
3 Массовость
Алгоритм должен работать:
- не для одного случая;
- а для целого класса задач.
Пример:
- алгоритм входа в систему подходит для разных пользователей;
- алгоритм приготовления чая — для разных кружек и видов чая.
4 Результативность
После выполнения алгоритма:
- должен быть получен результат.
Если результат отсутствует — алгоритм составлен неправильно.
Зачем нужны разные формы записи алгоритмов
Алгоритм можно записать разными способами, потому что:
- человеку проще читать одно;
- компьютеру — другое;
- при обучении важна наглядность.
Один и тот же алгоритм может быть записан в нескольких формах.
Основные формы записи алгоритмов
Существует три основные формы записи алгоритмов:
- словесная (текстовая);
- псевдокод;
- блок-схема.
Словесная (текстовая) форма
Алгоритм записывается в виде обычного текста, по шагам.
Пример:
1. Включить компьютер
2. Ввести логин
3. Ввести пароль
4. Нажать кнопку входа
Преимущества:
- простая;
- понятна любому человеку;
- не требует специальных знаний.
Недостатки:
- может быть неоднозначной;
- сложно представить сложные условия и циклы.
Псевдокод
Псевдокод — это упрощённая запись алгоритма, близкая к языкам программирования, но без строгого синтаксиса.
Пример:
НАЧАЛО
ввести логин
ввести пароль
ЕСЛИ данные верны
войти в систему
ИНАЧЕ
вывести сообщение об ошибке
КОНЕЦ
Преимущества:
- ближе к программированию;
- легко переводится в код;
- помогает понять логику программы.
Недостатки:
- требует базового понимания алгоритмов;
- не всегда нагляден для новичков.
Блок-схема
Блок-схема — это графическое представление алгоритма с помощью специальных символов.
Каждый символ обозначает определённый тип действия:
- начало и конец;
- действие;
- условие;
- ввод и вывод данных.
Блок-схемы особенно полезны:
- на этапе обучения;
- при анализе логики алгоритма;
- при поиске ошибок.
Почему блок-схемы важны
Перед написанием кода важно:
- понимать логику программы;
- видеть последовательность действий;
- осознавать ветвления и повторы.
Блок-схема позволяет:
- «увидеть» алгоритм;
- избежать логических ошибок;
- упростить переход к языку программирования.
Сначала алгоритм → потом код.
Связь алгоритма и программы
Связь можно представить так:
Задача
↓
Алгоритм
↓
Форма записи (текст / схема / псевдокод)
↓
Программа
Если алгоритм составлен неправильно:
- программа будет работать неправильно,
- даже если код написан без ошибок.
Итоги
- Алгоритм — основа любой программы
- Алгоритм должен обладать строгими свойствами
- Один алгоритм можно записать разными способами
- Блок-схемы и псевдокод помогают понять логику
- Язык программирования — последний этап