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

Глава VIII. Алгоритмы § 1. Что такое алгоритм!

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

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

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

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

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

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

  1. Подойди к краю тротуара у знака перехода.

  2. Стой.

  3. Смотри налево.

  1. Если идет транспорт слева, го перейди к указанию 2,иначе — к указанию 5.

  2. Пройди до середины улицы.

  3. Стой.

  4. Смотри направо.

  5. Если идет транспорт справа, то перейди к указанию 6,иначе — к указанию 9.

9. Пройди вторую половину улицы до противоположного тро­туара.

10. Переход улицы закончен.

В виде аналогичного предписания можно сформулировать и алгоритм приближенного измерения длины отрезка с точностью

до 1:

  1. Выбери мерку.

  2. Наложи мерку с одного (левого) конца измеренного отрезка.

Отметь на отрезке второй конец мерки.

  1. Теперь оставшаяся часть отрезка — измеряемый отреаок.

  2. Если измеряемый отрезок больше мерки, то перейди к ука­занию 2, иначе — к указанию 5.

  3. Сосчитай метки на отрезке.

  4. Полученное число — значение длины отрезка.

7. Измерение закончено.

Приведенные примеры позволяют нам несколько разъяснить, что имеется в виду под «общим способом» решения однотипных

задач.

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

задач.

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

Какие же свойства характеризуют всякий алгоритм?

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

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

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

в) результативность, т. е. решая любую задачу из данного вида

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

Слово «алгоритм» происходит от имени известного математика IX в. аль-Хорез-ми, что означает «из Хорезма», впервые сформулировавшего правила выполнения арифметических действий над многозначными числами. Через труды аль-Хорезми в Европу проникли способы действий с числами в десятичной системе счисления, которые стали называть алгоритмами согласно латинской транскрипции имени

ученого.

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

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

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

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

Здесь уместно уточнить, что означает выдвинутое требование «общепонятности» предписания, которым задается алгоритм. Это означает, что предписание должно быть сформулировано так, чтобы оно было одинаково понятно всем исполнителям той категории, на которую оно ориентировано. Это имеет чрезвычайно важное зна­чение, в частности, при обучении маленьких детей. Например,

по середины улицы! \ .1.


нет


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

задачи.

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

1 . Каждый алгоритм может быть представлен в виде после­довательности шагов. Разумеется, понятие «шаг» является относительным. Один и тот же алгоритм можно по-разному пред­ставить в виде последовательно­сти шагов, и не всегда отдельные шаги соответствуют «элементар­ным» действиям. Само понятие «элементарное действие» относи­тельно: одно и то же действие может быть для одного ребенка, и не только ребенка, элементар­ным, для другого — неэлемен­тарным, и возникает необходи­мость в его расчленении на дру­гие, элементарные, действия. Дискретность структуры ал­горитма состоит в том, что для каждого шага можно указать однозначно непосредственно следующий за ним шаг.

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

ODOO oono

OOOD

ООППО

ООПОП

ОООПП

ODD

ОП

Правило 2 Правило 3

Измерение длины

В ыбирай мерку!

. Наложи мерку с левого 1 конца измеряемого отрезка

О тметь на отрезке второй конец мерки

О ставшаяся часть отрезка -измеряемый отрезок

I Сосчитай метки на отрезке! I

с


да ^г- Измеряемый отрезок больше мерки


нет


а )

Полученное число-значение длины отрезка

Р ис. 26.

Рис. 27.


оо

ч

к указанию 2, иначе — к указа­нию 5»), называемые условны­ми.

Условная команда имеет вид «если Р, то А, иначе В». Она предписывает следующий поря­док действий: если условие Р выполняется (истинно), то вы­полняется А (в нашем приме­ре—возврат к указанию 2). Если же условие Р не выпол­няется (ложно), что обознача­ется словом иначе, то А пропус­кается и выполняется В (в нашем примере осуществляется переход к следующему ука­занию 5).

Условные команды можно записать сокращенно: «если Р, то А», при этом подразумева­ется, что если условие Р не вы­полняется, то осуществляется переход к следующей по поряд­ку команде.

В приведенных выше приме­рах условные команды, если условие Р выполняется, опреде­ляют повторение некоторых действий («стой», «смотри вле­во», «смотри вправо», «наложи мерку» и т. д.) определенное число раз (пока условие Р вы­полняется). Такие процессы и соответствующие им алгорит­мы, в которых некоторые дей­ствия повторяются, называются циклическими.

Если же алгоритм состоит из одних простых команд, то он называется линейным.

Таким образом, различают л и н е й н ы е, р а з в е т в л е н-ные и циклические ал­горитмы.

Алгоритм можно наглядно представить в виде блок-схемы, состоящей из блоков и стрелок. Каждый шаг представляется с

ПООП

ОООП

OODD

DD

попо>пр„„0,

O DDO-ODO OODI Dl

Рис. 28.

помощью блока. Блок, предусматривающий выполнение некоторого действия, изображается в виде прямоугольника, внутри которого записано соответствующее действие. Блок, представляющий логи­ческое условие, изображается в виде ромба, внутри которого записан© проверяемое условие, Если от шага А непосредственно следует шаг В, то от блока А к блоку В проводится стрелка. От каждого прямоугольника исходит только одна стрелка, от каждого ромба — две стрелки: одна с пометкой «да», идущая к блоку, сле­дующему за логическим условием, если оно выполняется, другая — с пометкой «нет», идущая к блоку, следующему за логическим условием, если оно не выполняется. Начало и конец изображают­ся овальными фигурами.

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

На рисунке 25 изображена блок-схема алгоритма перехода ули­цы, нерегулируемого светофором.

На рисунке 26 изображена блок-схема алгоритма приближен­ного измерения отрезка с точностью до 1 произвольной (условной)

меркой.

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

Приведем в качестве приме­ра игру «Преобразование слов», моделирующую понятие «алго­ритм преобразования слов в данном алфавите».

В этой игре, а по существу серии игр, буквы и слова необычные. Используется двух- буквенный алфавит, состоящий из двух различных геометри­ческих фигур, например квад­ратика и кружочка, или из 0 и 1.Словами мы называем конечные цепочки из квадратиков и кружочков (во втором варианте конечные последовательности из нулей и единиц). Любое сколь угодно длинное слово нашем алфавите преобразовы­вается по приведенным на ри­сунке 27 правилам следующим образом: если в заданном слове имеется квадратик, располо­женный левее кружочка, то согласно правилу 1 их нужно поменять местами; если вовновь полученном слове опять имеется квадратик, располо­женный левее кружочка, нужно опять их поменять местамии т. д.; правило 1 применяется столько раз, сколько возможно, т. е. пока не получится слово, в котором уже нет квадратика, расположенного левее кружоч­ка, или в котором все кружочки лежат левее всех квадратиков ;затем переходим к применению правила 2, а именно, если имеется два рядом стоящих кружочка, их удаляют, и правило 2 применяется столько

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

Как показывает опыт обучения, повторив эту игру несколько раз для различных «слов», дети 5—б лет в состоянии заранее правильно определить, какие вообще могут оказаться результаты сокращения «слов» по заданным правилам: кружочек и квадра­тик, или один кружочек, или один квадратик, или «ничего» (это «ничего» стали потом называть «пустым словом»).

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

Умение применять разного рода алгоритмы, тем более умение предвидеть и обосновывать возможные результаты их применения — признак формирования свойственного для математики стиля мыш­ления. Моделирование различных алгоритмов в виде детских игр открывает широкие возможности для формирования зачатков этого стиля мышления уже у дошкольников.