Смекни!
smekni.com

Свойства информации. Единицы измерения количества информации (стр. 6 из 24)

1. Понятие алгоритма. Свойства алгоритма. Испол­нители алгоритмов (назначение, среда, режим рабо­ты, система команд). Компьютер как формальный исполнитель алгоритмов (программ).

2. Позиционные и непозиционные системы счис­ления. Запись чисел в позиционных системах счисле­ния.

3. Практическое задание. Решение простейшей оп­тимизационной задачи в среде электронных таблиц. |

I________________________________________________I

1. Понятие алгоритма. Свойства алгоритма. Исполнители алгоритмов (назначение, среда, режим работы, система команд). Компьютер как формальный исполнитель алгоритмов (программ)

Базовые понятия

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

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

Исполнитель — человек или автоматическое устрой­ство, которое выполняет алгоритмы.

Система команд, режим работы исполнителя.

Обязательно изложить

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

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

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

Понятность. Каждая команда алгоритма должна быть понятна тому, кто исполняет алгоритм; в против­ном случае она (и, следовательно, весь алгоритм в це­лом) не может быть выполнена. В информатике часто говорят, что все команды алгоритма должны входить в систему команд исполнителя.

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

г. Пермь

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

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

Корректность. Решение должно быть правильным для любых допустимых исходных данных.

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

Исполнитель — фундаментальное понятие информа­тики. Оно входит в определение алгоритма.

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

Каковы наиболее важные черты исполнителей?

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

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

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

Третьей важной особенностью исполнителей является наличие различных режимов его работы; перечень режи­мов у каждого исполнителя, естественно, свой. Для боль­шинства учебных исполнителей особо выделяют режимы непосредственного и программного управления1. В первом случае исполнитель ожидает команд от человека и каждую немедленно выполняет. Во втором исполнителю сначала задается полная последовательность команд (программа), а затем он исполняет ее в автоматическом режиме. Боль­шинство исполнителей могут работать в обоих режимах.

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

Желательно изложить

Термин "алгоритм" имеет интересное историческое происхождение. В IX веке великий узбекский математик аль-Хорезми разработал правила арифметических действий над десятичными числами, которые в Европе стали назы­вать "алгоризмами". Впоследствии слово трансформиро­валось до известного нам сейчас вида и, кроме того, рас­ширило свое значение: алгоритмом стали называть любую последовательность действий (не только арифметических), которая приводит к решению той или иной задачи.

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

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

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

1 Аналогичные режимы издавна существовали в языке Бейсик, где строка без номера немедленно исполнялась интерпретатором, а с номером — заносилась в память для последующего исполне­ния; нечто похожее существует и в более поздних версиях под MS-DOS, реализованных в виде компиляторов.

ных частей, которые принято называть тактами (пом­ните термин "тактовая частота процессора" ? — он про­исходит именно отсюда!). В зависимости от сложности команды, она может быть реализована за разное коли­чество тактов.

При выполнении каждой команды ЭВМ проделывает определенные стандартные действия, описанные ниже.

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

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

3. Считанная операция расшифровывается, извлека­ются необходимые данные, над ними выполняются тре­буемые действия и, если это предусмотрено операцией, производится запись результата в ОЗУ.

4. Все описанные действия циклически повторяются с п. 1.

Рассмотренный основной алгоритм работы ЭВМ по­зволяет шаг за шагом выполнить хранящуюся в ОЗУ про­грамму.

Примечания для учителей

Данный вопрос по сравнению с экзаменом 9-го класса объединяет два билета — об алгоритмах и об исполните­лях. Поэтому в конце данных материалов вы увидите две ссылки на предыдущие публикации.

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

Возможно, не все учителя считают нужным излагать материал об основном алгоритме работы ЭВМ. Тем не менее, обосновывая формальность исполнения програм­мы, о нем желательно сказать.

Примечания для учеников

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

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