- •Введение.
- •1. Алгоритм
- •1.1 Определение понятий
- •2. Исполнители алгоритмов.
- •3. Свойства алгоритмов.
- •7. Правильность
- •Определения
- •4. Понятие данных
- •5. Типы данных
- •6.Операция присваивания
- •7. Формы представления алгоритмов
- •9. Разработка алгоритмов методом пошаговой детализации. Вспомогательный алгоритм
- •10. Способы описания алгоритмов на языке блок-схем
- •Условные обозначения, наиболее часто используемые для представления алгоритмов в графической форме
3. Свойства алгоритмов.
Понятность;
Однозначность
Массовость.
Дискретность
Результативность.
Конечность
Правильность
Использование вычислительных машин в качестве исполнителей алгоритмов предъявляет ряд требований к алгоритмам. В отличие от людей, компьютер может выполнять только точно определенные операции. Поэтому машинные алгоритмы должны обладать следующими свойствами:
1.Понятность. Алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд, которые исполнитель в состоянии выполнить. Алгоритм не должен быть рассчитан на принятие каких-либо самостоятельных решений исполнителем, не предусмотренных составлением алгоритма. . Чтобы исполнитель сумел решить поставленную перед ним задачу, используя алгоритм, он должен уметь выполнить каждое его указание. То есть, он должен понимать суть управления. Иными словами при составлении алгоритма нужно обязательно учитывать "правила игры", т.е. систему предписаний (или систему команд), которые понимает ЭВМ. Например, при решении какой-то задачи студент использовал обращение к функциям sin x (это тригонометрическая функция) и к функции Бесселя (это цилиндрическая функция), но компьютер (как и читатель, наверное) не понимает последней. Она создателями данного класса машин не предусмотрена. Следовательно, алгоритма (в целом) машина не поймет. Мы будем говорить в данном случае о "понятности" алгоритма.
Под "ПОНЯТНОСТЬЮ" алгоритмов понимают указания, которые понятны исполнителю.
2.Однозначность (определенность, детерминированность). Каждая команда алгоритма должна определять однозначное действие исполнителя. Недопустимы ситуации, когда после выполнения очередной команды исполнителю не ясно, какую команду выполнять на следующем шаге. Нарушение составителем алгоритма этих требований приводит к тому, что одна и та же команда после выполнения разными исполнителями дает неодинаковый результат.
Будучи понятным, алгоритм не должен все же содержать предписаний, смысл которых может восприниматься неоднозначно. Этими свойствами часто не обладают предписания и инструкции, которые составляются для людей.
Ввспомним известную всем притчу о царской воле. Царь приказал подчиненным выполнить такой указ: "Казнить нельзя помиловать". Он забыл в указе поставить запятую, а подчиненные не знали, что им делать. Указание "казнить нельзя, помиловать" и "казнить, нельзя помиловать" задают совсем разные действия, от которых зависит жизнь человека.
Кроме того, в алгоритмах недопустимы такие ситуации, когда после выполнения очередного предписания алгоритма исполнителю неясно, какое из них должно выполняться на следующем шаге.
Под ОДНОЗНАЧНОСТЬЮ алгоритмов понимается единственность толкования правил выполнения действий и порядка их выполнения.
3.Массовость. Разработка алгоритмов – процесс интересный, творческий, но непростой, требующий многих умственных усилий и затрат времени. Поэтому предпочтительно разрабатывать алгоритмы, обеспечивающие решения всего класса задач данного типа. Алгоритм должен быть вариативен, т.е. обеспечивать возможность решения задачи для любых допустимых исходных значений. Это требование определяет качество алгоритма. Для правильного исполнения алгоритма нужно иметь полный набор данных. Для алгоритма строго не определяется форма его представления. Алгоритм можно изображать графически (блок-схемы), словесно, специальными значками, понятными только автору.
Например. Необходимо решить конкретное уравнение 2х+2у=Р.
Таким образом, этот алгоритм можно использовать для любого
уравнения..
Очень важно, чтобы составленный алгоритм обеспечивал решение не одной частной задачи, а мог выполнять решение широкого класса задач данного типа. Такой алгоритм будет МАССОВЫЙ
4. Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Таким образом, формируется упорядоченная совокупность отдельных друг от друга команд (предписаний) Образованная структура алгоритма оказывается прерывной (дискретной): только выполнив одну команду, исполнитель сможет приступить к выполнению следующей Как мы уже знаем, алгоритм задает полную последовательность действий, которые необходимо выполнять для решения задачи. При этом, как правило, для выполнения этих действий их расчленяют (разбивают) в определенной последовательности на простые шаги. Возникает упорядоченная запись совокупности четко разделенных предписаний (директив, команд), образующих прерывную (или, как говорят, дискретную) структуру алгоритма. Выполнить действия следующего предписания можно лишь выполнив действия предыдущего.
Именно программирование — это процесс разложения сложной задачи на ряд простых действий.
Под ДИСКРЕТНОСТЬЮ понимают возможность разбиения алгоритма на отдельные элементарные действия, выполнение которых человеком или машиной не вызывает сомнения.
5.Результативность. Результативность, предполагает, что выполнение алгоритмов должно завершаться получением определенных результатов.
Подобные ситуации в информатике возникают, когда какие-либо действия невозможно выполнить. В математике такие ситуации называют неопределенностью. Например, деление числа на ноль, извлечение квадратного корня из отрицательного числа, да и само понятие бесконечности неопределенно. Поэтому, если алгоритм задает бесконечную последовательность действий, то в этом случае он также считается результатом неопределенным.
Но можно действовать по-другому. А именно: указать причину неопределенного результата. В таком случае, пояснения типа "на ноль делить нельзя", "компьютер выполнить такое не в состоянии" и т.п. можно считать результатом выполнения алгоритма.
Свойство РЕЗУЛЬТАТИВНОСТИ состоит в том, что во всех случаях можно указать, что мы понимаем под результатом выполнения алгоритма.
6. Конечность. Исполнение алгоритма должно завершиться за конечное число шагов и при этом должен быть получен определенный постановкой задачи ответ.
Под КОНЕЧНОСТЬЮ алгоритмов понимают завершение работы алгоритма в целом за конечное число шагов
