Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шевчук - конспект лекций №2.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
12.75 Mб
Скачать

Лекция 9. Разработка алгоритмов ис

  1. Понятие алгоритма

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

  3. Виды и структуры алгоритмов

  4. Элементы алгоритмов

  5. Методы проектирования алгоритмов

  1. Понятие алгоритма

Алгоритм – формальное описание способа решения задачи путем разбиения её на конечную по времени последовательность действий или элементарных операций. При этом преобразуются допустимые исходные данные в желаемый результат.

Формальность подразумевает, что описание должно быть абсолютно полным и учитывать все возможные ситуации, которые могут встретиться по ходу решения задач.

Алгоритм имеет ряд обязательных свойств:

  • Дискретность

  • Определенность

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

  • Массовость

В алгоритме отображаются логика и способ формирования результатов решения задачи с указанием необходимых формул, логических условий и правил контроля достоверности выходных результатов. В нем обязательно должны быть предусмотрены все ситуации, которые могут возникнуть при решении задач.

Алгоритм решения комплекса задач и его программная реализация тесно взаимосвязаны. Специфика применяемых методов проектирования алгоритмов может повлиять на форму представления и содержания обработки данных. Для решения задач могут использоваться алгоритмы, заложенные в готовых программных продуктах – пакетах прикладных программ функционального назначения.

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

Правила:

Первое правило – при построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм.

Второе правило – для работы алгоритма требуется память.

Третье правило – дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд).

Четвертое правило – детерменированность. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.

Пятое правило – сходимость (результативность). Алгоритм должен завершать работу после конечного числа шагов.

Этапы:

  1. постановка задачи;

  2. построение модели;

  3. разработка алгоритма;

  4. проверка правильности алгоритма;

  5. реализация алгоритма;

  6. анализ алгоритма и его сложности;

  7. проверка программы.

  1. Виды и структуры алгоритмов

Алгоритмы в зависимости от цели, начальных условий задачи, путей её решения, определения действий исполнителя подразделяется на следующие виды:

  • Механические, или детерминированные, жесткие (например, алгоритм работы машины).

  • Гибкие, например стохастические, т.е. вероятностные и эвристические.

  • Вероятностный (стохастический) – несколько путей решения для получения результата.

  • Эвристический – достижение результата и последовательность действий не определены.

  • Линейный – набор команд, выполняемых последовательно друг за другом.

  • Разветвляющийся – содержит хотя бы одно условие.

  • Циклический – многократное повторение одного и того же действие над новыми данными.

На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма, в виде схемы.

При записи любого алгоритма используются следующие унифицированные структуры:

  • Развилка полная. Выполнение программы может пойти двумя различными путями.

    • Следование. Указывает, что управление передается от одного процесса к другому.

    • Следование. Указывает, что управление передается от одного процесса к другому.

    • Развилка неполная. По одной ветви никаких изменений входных данных не происходит.

    • Цикл – до. Заранее неизвестно число повторений. Выполняется хотя бы один раз.

    • Цикл – пока. Заранее неизвестно число повторений. Может не выполниться ни разу.

    • Цикл с параметром. Число повторений цикла известно.

    • Выбор. Выбор из многих вариантов. Эту структуру можно заменить несколькими вложенными друг в друга структурами развилка полная.

В зависимости от использованных унифицированных структур алгоритмы программных модулей могут быть линейными, разветвляющимися, циклическими и сложными.