Понятие алгоритма. Примеры алгоритмов
Алгоритм — последовательность арифметических и логических действий, приводящая к получению результата и решению задачи (любая конечная система правил преобразования информации).
Пример:
1. Выйти из дома.
2. Повернуть направо.
3. Пройти два квартала до остановки.
4. Сесть в автобус № 5, идущий к центру города.
5. Проехать три остановки.
6. Выйти из автобуса.
7. Найти по указанному адресу дом и квартиру.
1) Дискретность (в данном случае, разделенность на части) и упорядоченность. Алгоритм должен состоять из отдельных действий, которые выполняются последовательно друг за другом. В приведенных выше алгоритмах общим является необходимость строгого соблюдения последовательности выполнения действий. Если поменять местами, предположим, пятое и второе действия во втором примере, алгоритм станет невыполнимым.
2) Детерминированность (однозначная определенность). Многократное применение одного алгоритма к одному и тому же набору исходных данных всегда дает один и тот же результат. Например, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута — 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, — скажем, три.
3) Формальность. Алгоритм не должен допускать неоднозначности толкования действий для исполнителя.
4) Результативность и конечность. Работа алгоритма должна завершаться за определенное число шагов, при этом задача должна быть решена. В приведенном примере каждое описанное действие реально и может быть выполнено. Поэтому и алгоритм имеет предел, то есть — конечен.
5) Массовость. Определенный алгоритм должен быть применим ко всем однотипным задачам.
основные элементы блок-схемы:
— Начало, конец
— ввод, вывод данных
— операция, действие
— ветвление по условию
21. Линейные, разветвлённые и циклические алгоритмы.
Алгоритм — последовательность арифметических и логических действий, приводящая к получению результата и решению задачи (любая конечная система правил преобразования информации). Структура алгоритмов может быть:
1) линейной: описание действий, которые выполняются однократно в заданном порядке. вычислительные действия выполняются последовательно друг за другом, алгоритм не содержит условий; часто в виде блок схем
2) разветвляющейся: в зависимости от выполнения некоторого условия вычислительный процесс осуществляется по одной или по другой ветви;
В общем случае схема разветвляющего алгоритма будет выглядеть так: «если условие, то…, иначе…». Такое представление алгоритма получило название полной формы. Неполная форма, в которой действия пропускаются: «если условие, то…».
Если выражение-условие возвращает true (правда), то выполнение алгоритма идет по ветке «Да», если условие не выполняется (false), то выполнение идет по ветке «Нет». При любом результате выражения-условия нельзя вернуться в основную ветку программы, минуя дополнительные действия.
3) циклической: — описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла. Циклы — многократно повторяющиеся участки вычислительного процесса. Может возникнуть бесконечный цикл.