Алгоритм — одно из основных понятий информатики и математики

Теория алгоритмов 1 семестр

Название "алгоритм" произошло от латинской формы имени среднеазиатского математика аль-Хорезми — Algorithmi.

Алгоритм — одно из основных понятий информатики и математики

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

Введение.

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

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

АЛГОРИТМ

Определение понятий

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

По мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что какие-то действия алгоритма должны быть выполнены только друг за другом, но какие-то могут быть и независимыми. Понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек. Единого «истинного» определения понятия «алгоритм» нет.

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

Алгоритм всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи.

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

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

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

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

Любой алгоритм существует не сам по себе, а предназначен для определённого исполнителя. Алгоритм описывается в командах исполнителя, который этот алгоритм будет выполнять. Объекты, над которыми исполнитель может совершать действия, образуют среду исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм. Значение слова «алгоритм» очень схоже со значением слов «рецепт», «метод», способ.

2. ИСПОЛНИТЕЛИ АЛГОРИТМОВ.

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

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

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

Указание выполнить конкретное действие называется командой.

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

Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя хаpактеpизуют:
  • сpеда;
  • элементаpные действия;
  • cистема команд;
  • отказы.
Сpеда (или обстановка) — это "место обитания" исполнителя. Система команд. Каждый исполнитель может выполнять команды только из некотоpого, стpого заданного списка, — системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды может быть выполнена команда) и описаны pезультаты выполнения команды. После вызова команды исполнитель совеpшает соответствующее элементаpное действие. Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды. Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем". В информатике универсальным исполнителем алгоритмов является компьютер. Главная особенность любого алгоритма - формальное исполнение, позволяющее выполнять заданные действия (команды) не только человеку, но и техническим устройствам (исполнителям). Таким образом, исполнителями алгоритмов могут быть, например, человек, компьютер, принтер, робот-манипулятор, станок с числовым программным управлением, живая клетка, дрессированное животное, компьютерная программа, компьютерный вирус, "черепашка" в Логомирах (геометрический исполнитель) и т.д. Исполнитель алгоритма — это устройство управления, соединенное с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. А инструменты производят действия, выполняя команды управляющего устройства. Прежде чем составлять алгоритм решения задачи, надо узнать, какие действия предполагаемый исполнитель может выполнить. Эти действия называются допустимыми действиями исполнителя. Только их и можно использовать. Исполнитель вычислительных алгоритмов называется вычислителем. Вычислитель может иметь дело с числами и переменными, обозначающими числа. Таким образом, алгоритм — это организованная последовательность действий, допустимых для некоторого исполнителя. Один и тот же исполнитель может быть сымитирован на ЭВМ многими способами. Алгоритм может быть записан словами и изображён схематически. Обычно сначала (на уровне идеи) алгоритм описывается словами, но по мере приближения к реализации он обретает всё более формальные очертания и формулировку на языке, понятном исполнителю (например, машинный код). Например, для описания алгоритма применяются блок-схемы. Другим вариантом описания, не зависимым от языка программирования, является псевдокод. Понятие исполнителя невозможно определить с помощью какой-либо формализации. Исполнителем может быть человек, группа людей, робот, станок, компьютер, язык программирования и т.д. Важнейшим свойством, характеризующим любого из этих исполнителей, является то, что исполнитель умеет выполнять некоторые команды. Так исполнитель-человек умеет выполнять такие команды, как «встать», «сесть», «включить компьютер» и т.д., а исполнитель - язык программирования Бейсик - команды математические и другие аналогичные. Вся совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя (СКИ). Одно из принципиальных обстоятельств состоит в том, что исполнитель не вникает в смысл того, что он делает, но получает необходимый результат. В таком случае говорят, что исполнитель действует формально, т.е. отвлекается от содержания поставленной задачи и только строго выполняет некоторые правила, инструкции. Это - важная особенность алгоритмов. Наличие алгоритма формализует процесс решения задачи, исключает рассуждение исполнителя. Использование алгоритма и дает возможность решать задачу формально, механически исполняя команды алгоритма в указанной последовательности. Целесообразность предусматриваемых алгоритмом действий обеспечивается точным анализом со стороны того, кто составляет этот алгоритм. Введение в рассмотрение понятия «исполнитель» позволяет определить алгоритм как понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели. Наиболее же распространенными и привычными являются алгоритмы работы с величинами - числовыми, символьными, логическими и т.д

СВОЙСТВА АЛГОРИТМОВ.

  1. Понятность;
  2. Однозначность
  3. Массовость.
  4. Дискретность
  5. Результативность.
  6. Конечность
  7. Правильность

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

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

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

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

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

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

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

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

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

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

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

уравнения..

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

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

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

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

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

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

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

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

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

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

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

Алгоритм СОДЕРЖИТ ОШИБКИ, если можно указать такие допустимые исходные данные или условия, при которых выполнение алгоритма либо не завершится вообще, либо не будет получено никаких результатов, либо полученные результаты окажутся неправильными.

Алгоритм считается ПРАВИЛЬНЫМ, если его выполнение дает правильные результаты решения поставленных задач.

Выводы

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

Детерминированность - определённость. В каждый момент времени следующий шаг работы однозначно определяется состоянием системы: алгоритм выдаёт один и тот же результат для одних и тех же исходных данных. Результаты не зависят ни от каких случайных факторов. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа. Однако при включении метода генерации случайных чисел в список «исходных данных», вероятностный алгоритм становится подвидом обычного. Понятность - алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.

Завершаемость - при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. С другой стороны, вероятностный алгоритм может и не выдать результат, но возможность этого равна 0. Финитность (конечность) алгоритма означает, что для получения результата нужно выполнить конечное число шагов, т. е. исполнитель в некоторый момент времени останавливается. Требуемое число шагов зависит от входных данных алгоритма и не регистрируется константой.

Массовость - алгоритм должен быть применим к разным наборам исходных данных. Результативность - завершение алгоритма определенными результатами. Если же входные данные уникальны, то алгоритм в силу свойства определенности (детерминированности) будет давать всегда один и тот же результат и при этом само построение алгоритма теряет смысл. Алгоритм содержит ошибки, если приводит к получению неправильных результатов либо не дает результатов вовсе. Алгоритм не содержит ошибок, если он дает правильные результаты для любых допустимых исходных данных. Алгоритм всегда рассчитан на выполнение «неразмышляющим» исполнителем.

Определения

  1. Понятность для исполнителя — это значит, что исполнитель алгоритма должен знать, как его выполнять.
  2. Дискpетность (прерывность, раздельность) — это значит, что алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
  3. Опpеделенность — это значит, что каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или информации о pешаемой задаче.
  4. Pезультативность (или конечность). Это означает что алгоpитм должен пpиводить к pешению задачи за конечное число шагов.
  5. Массовость. Это означает, что алгоpитм pешения задачи pазpабатывается в общем виде.

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

Понятие данных

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

ТИПЫ ДАННЫХ

Константы (постоянные) величины, значения которых не изменяются в процессе выполнения алгоритма. Например PI=3.14, G=9.7

Переменные - величины, значение которых изменяется в процессе исполнения алгоритма..

Константы и переменные делятся на две группы:

  1. Числовые: целые и дробные (вещественные)
  2. Текстовые (литерные или символьные)

В алгоритмизации и программировании понятие переменной имеет триединый смысл:

  1. это имя (идентификатор);
  2. текущее значение;
  3. ячейка памяти, в которой хранится это значение.

Идентификатор числовой переменной состоит из букв латинского алфавита и цифр.

Для обозначения символьной переменной после идентификатора ставится символ $. например B$, STROKA$.

ОПЕРАЦИЯ ПРИСВАИВАНИЯ

При записи вычислительных алгоритмов принято использовать специальный знак присваивания: =. Не путать со знаком "=" (равно) в математике. Этот знак используется для изображения особой операции — операции присваивания. Пусть имеется предписание вида

Y:=X (читается: "Y присвоить X")
Y:=2.5 ("Y присвоить значение 2.5" или “В ячейку памяти, где хрангятся значения переменной Y засылается число 2.5”).

Предписание означает следующее: выполнить все действия, предусмотренные формулой X, и полученный результат (число) считать значением (присвоить) пере­менной Y.

В левой части команды присваивания всегда должна стоять переменная, а в правой — обычно стоит формула (переменная), но в частном случае может быть и число.

ТИПЫ АЛГОРИТМОВ

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

возможны для любого из алгоритмов.

Форма представления алгоритма зависит от его типа.
Линейный тип алгоритма. Алгоритм, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий, является алгоритмом линейного типа. Таким будет, например, алгоритм вычислений по самым простейшим, безальтернативным формулам, не имеющим ограничений на значения входящих в них переменных. Запишем условие одной из задач, решение которой потребует составления алгоритма линейного типа, и сделаем постановку задачи. При постановке задачи такого алгоритма необходимо указать переменные, значения которых потребуются в качестве исходных, и переменные, значения которых необходимо найти, а также формализованную связь между ними.

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

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

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



Теория алгоритмов 1 семестр

Название "алгоритм" произошло от латинской формы имени среднеазиатского математика аль-Хорезми — Algorithmi.

Алгоритм — одно из основных понятий информатики и математики

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

Введение.

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

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

АЛГОРИТМ

Определение понятий

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

По мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что какие-то действия алгоритма должны быть выполнены только друг за другом, но какие-то могут быть и независимыми. Понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек. Единого «истинного» определения понятия «алгоритм» нет.

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

Алгоритм всякая система вычислений, выполняемых по строго определённым правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи.

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

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

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

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

Любой алгоритм существует не сам по себе, а предназначен для определённого исполнителя. Алгоритм описывается в командах исполнителя, который этот алгоритм будет выполнять. Объекты, над которыми исполнитель может совершать действия, образуют среду исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм. Значение слова «алгоритм» очень схоже со значением слов «рецепт», «метод», способ.

2. ИСПОЛНИТЕЛИ АЛГОРИТМОВ.

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

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

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

Указание выполнить конкретное действие называется командой.

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

Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом. Исполнителя хаpактеpизуют:
  • сpеда;
  • элементаpные действия;
  • cистема команд;
  • отказы.
Сpеда (или обстановка) — это "место обитания" исполнителя. Система команд. Каждый исполнитель может выполнять команды только из некотоpого, стpого заданного списка, — системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды может быть выполнена команда) и описаны pезультаты выполнения команды. После вызова команды исполнитель совеpшает соответствующее элементаpное действие. Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды. Обычно исполнитель ничего не знает о цели алгоpитма. Он выполняет все полученные команды, не задавая вопросов "почему" и "зачем". В информатике универсальным исполнителем алгоритмов является компьютер. Главная особенность любого алгоритма - формальное исполнение, позволяющее выполнять заданные действия (команды) не только человеку, но и техническим устройствам (исполнителям). Таким образом, исполнителями алгоритмов могут быть, например, человек, компьютер, принтер, робот-манипулятор, станок с числовым программным управлением, живая клетка, дрессированное животное, компьютерная программа, компьютерный вирус, "черепашка" в Логомирах (геометрический исполнитель) и т.д. Исполнитель алгоритма — это устройство управления, соединенное с набором инструментов. Устройство управления понимает алгоритмы и организует их выполнение, командуя соответствующими инструментами. А инструменты производят действия, выполняя команды управляющего устройства. Прежде чем составлять алгоритм решения задачи, надо узнать, какие действия предполагаемый исполнитель может выполнить. Эти действия называются допустимыми действиями исполнителя. Только их и можно использовать. Исполнитель вычислительных алгоритмов называется вычислителем. Вычислитель может иметь дело с числами и переменными, обозначающими числа. Таким образом, алгоритм — это организованная последовательность действий, допустимых для некоторого исполнителя. Один и тот же исполнитель может быть сымитирован на ЭВМ многими способами. Алгоритм может быть записан словами и изображён схематически. Обычно сначала (на уровне идеи) алгоритм описывается словами, но по мере приближения к реализации он обретает всё более формальные очертания и формулировку на языке, понятном исполнителю (например, машинный код). Например, для описания алгоритма применяются блок-схемы. Другим вариантом описания, не зависимым от языка программирования, является псевдокод. Понятие исполнителя невозможно определить с помощью какой-либо формализации. Исполнителем может быть человек, группа людей, робот, станок, компьютер, язык программирования и т.д. Важнейшим свойством, характеризующим любого из этих исполнителей, является то, что исполнитель умеет выполнять некоторые команды. Так исполнитель-человек умеет выполнять такие команды, как «встать», «сесть», «включить компьютер» и т.д., а исполнитель - язык программирования Бейсик - команды математические и другие аналогичные. Вся совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя (СКИ). Одно из принципиальных обстоятельств состоит в том, что исполнитель не вникает в смысл того, что он делает, но получает необходимый результат. В таком случае говорят, что исполнитель действует формально, т.е. отвлекается от содержания поставленной задачи и только строго выполняет некоторые правила, инструкции. Это - важная особенность алгоритмов. Наличие алгоритма формализует процесс решения задачи, исключает рассуждение исполнителя. Использование алгоритма и дает возможность решать задачу формально, механически исполняя команды алгоритма в указанной последовательности. Целесообразность предусматриваемых алгоритмом действий обеспечивается точным анализом со стороны того, кто составляет этот алгоритм. Введение в рассмотрение понятия «исполнитель» позволяет определить алгоритм как понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели. Наиболее же распространенными и привычными являются алгоритмы работы с величинами - числовыми, символьными, логическими и т.д

СВОЙСТВА АЛГОРИТМОВ.

  1. Понятность;
  2. Однозначность
  3. Массовость.
  4. Дискретность
  5. Результативность.
  6. Конечность
  7. Правильность

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

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

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