Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория алгоритмов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
360.84 Кб
Скачать

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

  1. Понятность;

  2. Однозначность

  3. Массовость.

  4. Дискретность

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

  6. Конечность

  7. Правильность

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

1.Понятность. Алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд, которые исполнитель в состоянии выполнить. Алгоритм не должен быть рассчитан на принятие каких-либо самостоятельных решений исполнителем, не предусмотренных составлением алгоритма. . Чтобы исполнитель сумел решить поставленную перед ним задачу, ис­пользуя алгоритм, он должен уметь выполнить каждое его указание. То есть, он должен понимать суть управления. Ины­ми словами при составлении алгоритма нужно обязательно учиты­вать "правила игры", т.е. систему предписаний (или систему команд), которые понимает ЭВМ. Например, при решении какой-то задачи студент использовал обращение к функциям sin x (это тригонометрическая функция) и к функции Бесселя (это цилиндрическая функция), но компьютер (как и читатель, наверное) не понимает последней. Она создателями данного класса машин не предусмотрена. Следовательно, алгоритма (в целом) машина не поймет. Мы будем говорить в данном случае о "понятности" алго­ритма.

Под "ПОНЯТНОСТЬЮ" алгоритмов понимают указания, которые понятны исполнителю.

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

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

Ввспомним известную всем притчу о царской воле. Царь прика­зал подчиненным выполнить такой указ: "Казнить нельзя помиловать". Он забыл в указе поставить запятую, а подчиненные не знали, что им де­лать. Указание "казнить нельзя, по­миловать" и "казнить, нельзя по­миловать" задают совсем разные действия, от которых зависит жизнь человека.

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

Под ОДНОЗНАЧНОСТЬЮ алгоритмов понимается единственность толкования правил выполнения дей­ствий и порядка их выполнения.

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

Например. Необходимо решить конкретное уравнение 2х+2у=Р.

Таким образом, этот алгоритм можно использовать для любого

уравнения..

Очень важно, чтобы составленный алгоритм обеспечивал решение не одной частной задачи, а мог выполнять решение широкого класса задач данного типа. Такой алгоритм будет МАССОВЫЙ

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

Именно программирование — это процесс разложения сложной задачи на ряд простых действий.

Под ДИСКРЕТНОСТЬЮ понимают возможность разбиения алгоритма на отдельные элементарные действия, выполнение которых человеком или машиной не вызывает сомнения.

5.Результативность. Результативность, предполагает, что выполнение алгоритмов должно завершаться получением определенных результатов.

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

Но можно действовать по-другому. А именно: указать причину неопределенного результата. В таком случае, по­яснения типа "на ноль делить нельзя", "компьютер выполнить такое не в состоянии" и т.п. можно считать результатом выполнения алгоритма.

Свойство РЕЗУЛЬТАТИВНОСТИ состоит в том, что во всех случаях можно указать, что мы понимаем под результатом выполнения алгоритма.

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

Под КОНЕЧНОСТЬЮ алгоритмов понимают завершение работы алгоритма в целом за конечное число шагов