Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Лекции.doc
Скачиваний:
1199
Добавлен:
16.03.2016
Размер:
1.01 Mб
Скачать

3. Типы алгоритмических процессов

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

  1. Механические или жесткие алгоритмы, например, алгоритм работы двигателя внутреннего сгорания.

  2. Гибкие алгоритмы, например, вероятностные или эвристические:

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

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

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

  2. Разветвляющиеся алгоритмы содержат условие, в результате проверки которого исполнитель переходит на один из двух возможных вариантов продолжения алгоритма.

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

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

4. Способы записи алгоритмов

Существуют различные формы представления алгоритмов.

  1. Словесно-формульное описание основано на представлении алгоритма в форме последовательности слов, предложений и формул с использованием естественного языка.

Пример словесно-формульного описания алгоритма в задаче о заработной плате

Составить алгоритм начисления з/п по правилу:

если стаж работы менее 5 лет, то з/п составляет 10 тыс. руб.;

при стаже от 5 до 15 лет – 20 тыс. руб.;

более 15 лет – повышение каждый год на 2 тысячи.

Математическая формулировка задачи

ZP =

10000

ST < 5

20000

5<=ST<=15

20000+(ST-15)*2000

ST>15

Словесно-формульное описание

  1. Ввести ST, перейти к п.2

  2. Если ST<5, тоZP=10000, перейти к п.4, иначе перейти к п.3

  3. Если ST<15, тоZP=20000, иначеZP=20000+(ST-15)*2, перейти к п.4

  4. Вывести (на печать) значение ZP

  5. Вычисления прекратить.

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

  1. Графическое описание алгоритма использует представление на основе структурной блок-схемы, в которой каждая фигура (блок) относится к отдельному действию алгоритма, а система связанных блоков образует графическую схему алгоритма. Примеры графического изображения блоков, из которых складывается графическое описание алгоритма, представлены в табл. 6.1. При формировании алгоритма блоки располагаются сверху вниз и связываются между собой стрелками.

Таблица 6.1

Блоки графического описания алгоритма

Наименование

Обозначение

Функции

Пуск-останов

Начало или конец алгоритма

Ввод-вывод

Ввод исходных данных или вывод результатов

Процесс

Вычислительное действие или последовательность вычислений

Разветвление

Проверка условия и выбор направления

Предопределенный процесс

Вычисление по подпрограмме

Модификация

Начало цикла

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

Пример графического описания алгоритма в задаче о заработной плате

Начало

Ввод

ST

Да

ST<5

ZP=10000

Нет

Да

ST<15

ZP=20000

Нет

ZP=20000+(ST-15)*2000

Вывод

ZP

Останов

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

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

Пример описания алгоритма на основе псевдокода в решении задачи о заработной плате

алг Зарплата (цел ST, вещZP)

арг ST

рез ZP

нач

если ST<5

то ZP= 10000

иначе

если ST<=15

то ZP=20000

иначе ZP= 20000+(ST-15)*2000

все

все

кон.

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

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