Перейти к содержанию

2. Алгоритмы и способы их представления

h ## Понятие алгоритма

Алгоритм — это конечная последовательность действий, которая приводит к решению поставленной задачи.

Алгоритм отвечает на три главных вопроса:

  1. Что делать?
  2. В каком порядке выполнять действия?
  3. Когда завершить выполнение?

Любая программа — это алгоритм, записанный на языке программирования.


Отличие алгоритма от набора действий

Не каждый набор действий является алгоритмом.

Пример:

1. Включить компьютер
2. Работать

На первый взгляд это похоже на алгоритм, но:

  • неясно, что значит «работать»;
  • не указано, когда алгоритм завершается;
  • отсутствует конкретный результат.

Значит, это не алгоритм.


Свойства алгоритма

Чтобы набор действий считался алгоритмом, он должен обладать определёнными свойствами.

1 Определённость

Каждый шаг алгоритма должен быть:

  • точным;
  • однозначным;
  • понятным исполнителю.

Плохо:

«Сделать задание нормально»

Хорошо:

«Открыть файл задания и выполнить все пункты»

Исполнитель не должен додумывать смысл шага.

2 Конечность

Алгоритм должен:

  • иметь начало;
  • иметь конец.

Плохо:

«Повторять действия всегда»

Хорошо:

«Повторять действия, пока не выполнено условие»

Бесконечный алгоритм — ошибка.

3 Массовость

Алгоритм должен работать:

  • не для одного случая;
  • а для целого класса задач.

Пример:

  • алгоритм входа в систему подходит для разных пользователей;
  • алгоритм приготовления чая — для разных кружек и видов чая.

4 Результативность

После выполнения алгоритма:

  • должен быть получен результат.

Если результат отсутствует — алгоритм составлен неправильно.


Зачем нужны разные формы записи алгоритмов

Алгоритм можно записать разными способами, потому что:

  • человеку проще читать одно;
  • компьютеру — другое;
  • при обучении важна наглядность.

Один и тот же алгоритм может быть записан в нескольких формах.


Основные формы записи алгоритмов

Существует три основные формы записи алгоритмов:

  1. словесная (текстовая);
  2. псевдокод;
  3. блок-схема.

Словесная (текстовая) форма

Алгоритм записывается в виде обычного текста, по шагам.

Пример:

1. Включить компьютер
2. Ввести логин
3. Ввести пароль
4. Нажать кнопку входа

Преимущества:

  • простая;
  • понятна любому человеку;
  • не требует специальных знаний.

Недостатки:

  • может быть неоднозначной;
  • сложно представить сложные условия и циклы.

Псевдокод

Псевдокод — это упрощённая запись алгоритма, близкая к языкам программирования, но без строгого синтаксиса.

Пример:

НАЧАЛО
ввести логин
ввести пароль
ЕСЛИ данные верны
    войти в систему
ИНАЧЕ
    вывести сообщение об ошибке
КОНЕЦ

Преимущества:

  • ближе к программированию;
  • легко переводится в код;
  • помогает понять логику программы.

Недостатки:

  • требует базового понимания алгоритмов;
  • не всегда нагляден для новичков.

Блок-схема

Блок-схема — это графическое представление алгоритма с помощью специальных символов.

Каждый символ обозначает определённый тип действия:

  • начало и конец;
  • действие;
  • условие;
  • ввод и вывод данных.

Блок-схемы особенно полезны:

  • на этапе обучения;
  • при анализе логики алгоритма;
  • при поиске ошибок.

Почему блок-схемы важны

Перед написанием кода важно:

  • понимать логику программы;
  • видеть последовательность действий;
  • осознавать ветвления и повторы.

Блок-схема позволяет:

  • «увидеть» алгоритм;
  • избежать логических ошибок;
  • упростить переход к языку программирования.

Сначала алгоритм → потом код.


Связь алгоритма и программы

Связь можно представить так:

Задача
   ↓
Алгоритм
   ↓
Форма записи (текст / схема / псевдокод)
   ↓
Программа

Если алгоритм составлен неправильно:

  • программа будет работать неправильно,
  • даже если код написан без ошибок.

Итоги

  • Алгоритм — основа любой программы
  • Алгоритм должен обладать строгими свойствами
  • Один алгоритм можно записать разными способами
  • Блок-схемы и псевдокод помогают понять логику
  • Язык программирования — последний этап