Понятие алгоритма, его свойства и виды

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

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

Слово алгоритм происходит от algoritmi, являющегося латинской транслитерацией арабского имени хорезмийского математика IX века
аль-Хорезми. Благодаря латинскому переводу трактата аль-Хорезми европейцы в XII веке познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.

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

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

Исполнителя (компьютер) характеризуют: среда, элементарные действия, система команд, отказы.

Среда (или обстановка) - это «место обитания» исполнителя, определяемое пространственные, временные и другие условия существования объекта и ограничения.

Система команд - исполнитель выполняет команды только из некоторого строго заданного списка (системы команд исполнителя). Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды.

Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды.

Для алгоритма характерны следующие основные свойства:

1. Дискретность (прерывность, раздельность) - алгоритм должен быть представлен как последовательное выполнение простых шагов. Шагом называется каждое действие алгоритма. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, т.е. преобразование исходных данных в результат осуществляется во времени дискретно.

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

3. Результативность (или конечность) - алгоритм должен приводить к решению задачи за определенное число шагов.

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

5. Понятность - исполнитель алгоритма должен знать, как его выполнять.

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

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

Алгоритм разветвленной структуры - алгоритм, содержащий хотя бы одно условие, в результате которого обеспечивается переход на один из нескольких возможных шагов (ветвей). В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно. Частный вид логического условия – это операции типа =, Понятие алгоритма, его свойства и виды - student2.ru , Понятие алгоритма, его свойства и виды - student2.ru , >, Понятие алгоритма, его свойства и виды - student2.ru , <.

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

Способы описания алгоритмов

Для задания алгоритма необходимо описать следующие его элементы:

· набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;

· правило начала;

· правило непосредственной переработки информации (описание последовательности действий);

· правило окончания;

· правило извлечения результатов.

Для записи алгоритмов, а именно для описания последовательности действий, используют самые разнообразные средства. Выбор средства определяется типом исполняемого алгоритма. Выделяют следующие основные способы записи алгоритмов:

· вербальный (словесный), когда алгоритм описывается на естественном (человеческом) языке;

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

· символьный, когда алгоритм описывается с помощью набора символов (например, с помощью математической символики или с помощью алгоритмического языка (структурированной записи, псевдокода).

Пусть, например, необходимо найти значение функции z(x)= Понятие алгоритма, его свойства и виды - student2.ru , при x = 10. Результат вывести на экран монитора.

Входные параметры алгоритма: x=10.

Выходные параметры алгоритма: z(10).

Словесным (вербальным) способом алгоритм решения этой задачи может быть записан в следующем виде:

Алгоритм 1. Вычисление значения функции z(x)

Шаг 1. Ввести значение х=10.

Шаг 2. Возвести х в квадрат, вычесть из него удвоенное значение х и прибавить к полученному значению 4.

Шаг 3. Разделить полученное во 2-ом шаге значение (x2-2x+4) на сумму (x+5)

Шаг 4. Возвести х в куб.

Шаг 5. Сложить х3 со значением, полученным в 3-ем шаге.

Шаг 6. Вывести полученное на 5-ом шаге значение z(10) на экран монитора как результат вычисления значения функции z(x) в точке x=10.

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

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

Написание алгоритмов с помощью схем регламентируется: ГОСТ 19.701-90 - «ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения». Внешний вид основных символов, применяемых при написании схем алгоритмов, приведен в таблице 10.1.

Таблица 10.1

Название Символ (рисунок) Выполняемая функция (пояснение)
1. Процесс Понятие алгоритма, его свойства и виды - student2.ru Символ отображает функцию обработки данных любого вида (выполнение определенной операции или группы операций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться).
2. Решение Понятие алгоритма, его свойства и виды - student2.ru Символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа.
3. Данные Понятие алгоритма, его свойства и виды - student2.ru Символ отображает данные, носитель данных не определен.
4. Документ Понятие алгоритма, его свойства и виды - student2.ru Символ отображает данные, представленные на носителе в удобочитаемой форме (машинограмма, документ для оптического или магнитного считывания, микрофильм, рулон ленты с итоговыми данными, бланки ввода данных).
5. Граница цикла
Условие завершения, Имя цикла
Понятие алгоритма, его свойства и виды - student2.ru Понятие алгоритма, его свойства и виды - student2.ru Понятие алгоритма, его свойства и виды - student2.ru Понятие алгоритма, его свойства и виды - student2.ru
Процесс
Понятие алгоритма, его свойства и виды - student2.ru
Имя цикла

  Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.    
6. Предопределенный процесс Понятие алгоритма, его свойства и виды - student2.ru Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле).
7. Соединитель Понятие алгоритма, его свойства и виды - student2.ru Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения ее в другом месте.  
8. Терминатор Понятие алгоритма, его свойства и виды - student2.ru Символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных).  
9. Ручной ввод Понятие алгоритма, его свойства и виды - student2.ru Символ отображает данные, вводимые вручную во время обработки с устройств любого типа (клавиатура, переключатели, кнопки, световое перо, полоски со штриховым кодом).  
10. Дисплей Понятие алгоритма, его свойства и виды - student2.ru Символ отображает данные, пред-ставленные в человекочитаемой форме на носителе в виде отображающего устройства (экран для визуального наблюдения, индикаторы ввода информации).  
11. Подготовка Понятие алгоритма, его свойства и виды - student2.ru Символ отображает модификацию команды или группы команд с целью воздействия на некоторую последую-щую функцию (установка переключа-теля, модификация индексного регистра или инициализация программы).  
12. Линия Понятие алгоритма, его свойства и виды - student2.ru Символ отображает поток данных или управления. При необходимости или для повышения удобочитаемости могут быть добавлены стрелки-указатели.  
13. Канал связи Понятие алгоритма, его свойства и виды - student2.ru Символ отображает передачу данных по каналу связи.
14. Пунктирная линия Понятие алгоритма, его свойства и виды - student2.ru Символ отображает альтернативную связь между двумя или более сим-волами. Кроме того, символ исполь-зуют для обведения аннотированного участка.
15. Комментарий Понятие алгоритма, его свойства и виды - student2.ru Символ используют для добавления описательных комментариев поясни-тельных записей в целях объяснения или примечаний. Пунктирные линии в символе комментария связаны с соответствующим символом или могут обводить группу символов. Текст комментариев или примечаний должен быть помещен около ограничивающей фигуры.

Наши рекомендации