Кто или что исполняет алгоритмы
Информатика
Именная карта банка для детей
с крутым дизайном, +200 бонусов
Закажи свою собственную карту банка и получи бонусы
План урока:
Алгоритм – исполнитель
Детальные инструкции значительно упрощают решение сложных задач для исполнителя. А пошаговые рекомендации позволяют автоматизировать процесс. Каждый такой алгоритм создается для определенного исполнителя. Если им будет маленький ребенок, команды будут одними, если взрослый человек – другими, компьютер или робот – третьими.
Примеры задач из жизни и люди, которые их обычно решают:
Если вопрос касается профессиональной сферы, то работники опираются на должностные и рабочие инструкции, в них описан круг обязанностей и порядок их выполнения. Если же это социальные задачи, люди ориентируются на то, как это делалось в семье их родителей, как это делают другие люди или как описано в литературе.
Виды исполнителей, их особенности
Одной из основных классификаций является деление исполнителей по отношению к тому, как они выполняют. Одушевленных называют неформальными, потому что они понимают, что делают, могут анализировать и даже видоизменять команды при изменении условий. Неодушевленных – формальными исполнителями, так как они строго выполняют команды, механически, не понимая, что делают, не задумываясь над задачей или промежуточными итогами.
Хорошим примером формального исполнителя является любая программируемая система, иногда даже человек, который подходит к выполнению определенных задач бездумно, как робот, не только не волнуясь о результате, и не анализируя происходящее.
Алгоритм пишут, учитывая особенности того, для кого он предназначен. Для некоторых людей сухого набора команд мало, им нужны дополнительные инструменты (изображения, примеры). Инструкция будет разной, если написана она для конкретного Игоря Козакова или для учеников 6-класса. Точно также команды для бездомной собаки Жуля будут одни, а для дрессированных полицейских овчарок – другие.
Характеристики исполнителей
Перед написанием алгоритма следует определиться не только с конечной задачей, но и с особенностями исполнителей. Это позволит использовать правильные слова, а также учесть все факторы, которые могут повлиять на конечный результат.
СКИ – набор простейших команд, понятных данному исполнителю.
Перспективными исполнителями являются роботы, автоматы и компьютеры. Несмотря на формальность работы, их можно запрограммировать и «научить» очень и очень многому. Даже если это светофор, стиральная машинка, не говоря уже о роботах, космических кораблях, персональных или научных компьютерах.
Особенно удивительно выглядит компьютер, ведь он:
Пользователи ПК могут использовать готовые приложения, чтобы задать ту или иную команду своему смартфону, компьютеру или другой умной технике. Или же самостоятельно написать «внутренности», программный код, задавая приложению те характеристики и функции, которые нужны.
Учебная среда Исполнителя
Для того, что сделать мир программирования и алгоритмизации ярким и веселым, были разработаны различные приложения. Существует учебная среда Исполнитель Кумир для учащихся, в которую входят Чертежник, Робот, Редактор и другие.
Различные приложения отличаются интерфейсом и набором команд, но общий принцип у них одинаковый – пользователь учится писать инструкции для компьютерного исполнителя (робот, черепашка, чертежник и другие). Он дает ему команды, изучая программирование от единичных заданий, постепенно переходя от элементарных линейных алгоритмов до циклических с условиями. Обучение проходит в игровой форме, при помощи кнопок. Далее этап написания команд на русском языке. На финальном этапе ученик осваивает СКИ на языке программирования (на английском).
Если ученик/пользователь дает задание исполнителю, которое невозможно выполнить физически (непреодолимое препятствие), математически (деление на ноль) – запускается система отказов.
Сравнительная характеристика основных приложений:
Исполнитель «Черепашка»
При помощи простых команд и красочного интерфейса пользователь легко освоит построение алгоритмов. На первом этапе в игровой форме, используя готовые кнопки и цвета. На следующем уровне уже можно программировать, записывая команды на русском по всем правилам программирования.
Исполнитель «Робот»
На клеточном поле произвольно выставляется робот, который обозначается любым удобным символом (*, Р, ●, ♦, другими). Задания пишутся при помощи системы команд исполнителя Робот.
В этой учебной системе можно самому рисовать стены, выращивать клумбы, задавать маршрут прохождения. Можно закрашивать клетки, даже если они до этого были цветные. Делать это можно при помощи линейных алгоритмов, с разветвлением или с повторением цикличных команд.
Для программирования используются простейшие алгоритмы и элементы программирования (правила написания команд, условия, обязательные символы), которые применяются в большинстве компьютерных языков.
В случае ошибок система выдает отказ. Отказы могут быть в случае неправильного написания элемента программы, противоречивых команд или логических ошибок. Отказ в виде ответа Робота: «Не могу» (пройти через стену), «Не понимаю» (ошибочно написана команда) или результат не тот, что нужен (перепутаны горизонталь и вертикаль).
Составляем алгоритм для Робота
Как видно из этого примера, в некоторых случаях команды многократно повторяются. Тогда используют подзадачи и циклы.
Основная программа с именем подзадачи:
Алгоритм Рисунок
Начало
Алгоритм Узор (5 раз);
Конец.
Указав только имя подзадачи в теле программы, пользователь вызывает ее столько раз, сколько указано в скобках. Полный текст вспомогательного алгоритма описывается под основным.
Алгоритм Узор
Начало
конец.
Если не использовать подзадачи, которые повторяются много раз, то размер программы увеличится в десятки раз.
Чтобы выполнить движение, робот может выполнять команды проверки наличия стены на пути: Сверху/снизу/слева/справа свободно?
Используя условие «если», робот проверяет дорогу и только тогда идет:
(Снизу_свободно), то вниз (3)
Или условие «пока» есть куда идти (нет стены сверху), робот будет идти прямо вверх и сажать цветы.
Исполнитель «Чертежник»
Учебная система «Исполнитель Чертежник» используется для рисования графиков, чертежей в системе координат (x;y). Поле поделено на пиксели, в параметрах можно указать размер поля и количество точек по осям.
Перо – инструмент чертежника, его, как настоящее, можно поднимать и опускать на рисовальное поле, перемещать в нужное место, менять цвет и добавлять надпись. Если перо приподнято, то не остается следа, если опущено – за ним тянется линия.
Во время рисования видно труженика Чертежника, который выполняет команды. Но его иконку можно скрыть, тогда будет виден только карандаш.
Начинать работу следует с команды «использовать Чертежник». Писать можно одиночные команды, а можно целые серии. Правила написания программы соответствуют основам большинства компьютерных языков. Это облегчит в будущем изучение программированию, улучшит понимание процесса построения алгоритмов, начиная от линейных и заканчивая циклическими.
На следующем этапе можно перейти к написанию алгоритма на языке Pascal. Процесс построения аналогичен, только команды пишутся на языке программирования (на английском):
uses Drawman;
begin
PenUp;
ToPoint (1, 1);
PenDown;
ToPoint (1, 5);
ToPoint (3, 5);
ToPoint (2, 4);
ToPoint (3, 3);
ToPoint (1, 3);
end.
Освоив построение алгоритмов на родном языке, запомнив правила написания команд, пользователь с легкостью перейдет на задания, написанные на языке программирования.
Вспомогательные алгоритмы или процедуры
Во время работы с учебными исполнителями приходится часто выполнять однотипные команды или серии команд. Намного удобнее создать вспомогательные подзадачи или процедуры. Таким блокам команд присваивается имя и потом не нужно каждый раз повторять ту или иную последовательность операций, достаточно указать имя вспомогательной процедуры.
Процедуры, их характеристики:
Исполнитель алгоритма
Урок 21. Информатика 4 класс ФГОС
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.
Получите невероятные возможности
Конспект урока «Исполнитель алгоритма»
Привет, мальчики и девочки!
На прошлых уроках мы с вами узнали, что алгоритм – это описание подробного плана последовательности действий, который необходимо выполнить, чтобы решить задачу. Но не каждый план действий можно назвать алгоритмом.
Давайте, вспомним почему.
Чтобы план действий можно было назвать алгоритмом он должен обладать следующими свойствами:
· количество шагов известно и конечно;
· понятен смысл шагов;
· выполнение приводит к решению задачи и подходит для решения целого класса задач.
А помните ли вы, какие формы записи алгоритмов существуют?
Это текстовая и графическая формы.
Графическая форма, которая описывается в виде блок-схемы.
И мы помним, что бывает линейный алгоритм, в котором все шаги выполняются последовательно.
Также есть алгоритм и с ветвлением – это алгоритм, в котором есть блок с условием, один вход и два выхода: «Да» и «Нет».
Ну что же, мы вспомнили, что изучили на предыдущих уроках.
Сейчас я хочу, чтобы вы вспомнили алгоритм «собраться в школу».
Ребята, скажите, кто выполняет этот алгоритм в данном случае?
Та-а-а-к, а теперь вспомним алгоритм нахождения периметра треугольника.
А исполнять его может и ученик, и учитель и даже родители.
Вот мы и подошли к тебе нашего сегодняшнего урока – «Исполнитель алгоритма».
В алгоритмах, которые мы рассмотрели ранее, исполнителем был человек.
Но выполнить команды могут и другие живые существа. Например, собака выполняет команды хозяина.
Но не только живые существа выполняют команды.
Наверное, вы видели машинку, которой можно управлять при помощи пульта?
В данном случае машинка выполняет команды, которые вы ей задаёте – вперёд, назад, повернуть налево, направо.
Дома мама кладёт грязную одежду в стиральную машину, выбирает режим, то есть программу стирки, и машина выполняет определённый алгоритм действий.
Получается, что человек, машина, животное, управляемая игрушка могут выполнять команды. Значит они являются исполнителями алгоритма.
Исполнитель алгоритма – это объект, выполняющий команды (шаги, инструкции) по определённым правилам и в нужном порядке.
Рассмотрим стиральную машину. После того как мама или любой другой человек выбирает режим стирки, машина начинает выполнять действия, которые заложены в её память для выполнения этого режима стирки. И выполняет машина команды от начала до конца строго по порядку без участия человека. Такой исполнитель алгоритма, как стиральная машина, называется автоматическим исполнителем.
Автоматический исполнитель выполняет только назначенный ему набор команд. Другие команды, которые не входят в этот набор, исполнитель выполнить не может, так как он не понимает неизвестные команды.
Ребята, вы знаете, что исполнитель может принимать команды в виде сигнала. Это могут быть слова, звуковой сигнал, световой сигнал, радиосигнал и другие.
Для исполнителя каждый сигнал имеет определённое значение. Например, управляемая машинка «понимает» и исполняет такие команды, как «вперёд», «назад», «влево», «вправо».
Наверное, у большинства из вас дома есть компьютер.
А его можно назвать исполнителем?
Компьютер – это такой исполнитель, который обрабатывает закодированную информацию, то есть данные, исполняя программу, которая написана человеком.
Вы же помните, что закодированная информация – это информация, которая представлена в форме, удобной для её хранения и передачи.
Кодировать информацию можно звуками, буквами, цифрами, рисунками, нотами, знаками и другим.
Компьютер обрабатывает любую информацию – звуковую, текстовую, графическую, числовую.
Использовать компьютер, то есть работать на нём, может человек любой профессии: учёный, строитель, учитель. Но не обязательно нужно работать, чтобы пользоваться компьютером. Его могут использовать мальчики и девочки, бабушки и дедушки. На компьютере можно играть, переписываться в социальных сетях, рисовать и многое-многое другое.
Поэтому компьютер – это универсальный исполнитель алгоритмов.
А кто ещё является универсальным исполнителем алгоритмов?
Только человек понимает и обрабатывает информацию, составляет и исполняет алгоритмы. А компьютер не создаёт алгоритмы, не понимает смысла программ. Он только выполняет шаги программы, которые для него написал человек на каком-либо языке программирования.
Язык программирования – это искусственный язык, созданный человеком, чтобы обрабатывать информацию с помощью компьютера.
У компьютера, как и у человека может быть большо-о-ой набор команд.
Кстати, список, или набор, всех команд (шагов или инструкций), которые исполнитель способен выполнить, называется системой команд исполнителя.
Например, в систему команд исполнителя-человека могут входить команды – «реши пример», «скажи ответ», «найди ошибку», «подними руку». В данном случае исполнителем-человеком может быть ученик. Он понимает и может выполнить эти команды.
Другой пример, собака понимает определённые команды: «фу», «рядом», «сидеть», «лежать» и другие.
А сейчас давайте поиграем, чтобы закрепить ваши знания.
Найдите на кухне автоматических исполнителей.
Давайте проверим, всех ли автоматических исполнителей вы нашли.
Стиральная машина, которой мы задаём программу для стирки.
Микроволновая печь. В неё мы ставим разогреться еду на определённое время, или готовим еду, включая выбранный режим.
Посудомоечная машина, которой также, как и стиральной машине, задаётся режим работы.
Кофемашина. Мы выбираем тип кофе, и машина делает его по алгоритму.
Ребята, вы молодцы, но давайте выполним вот такое задание: выберите инструкции, которые компьютер не может выполнить.
Вывести ответ на экран.
Понять смысл программы.
Создать план действий.
Рассказать решение задачи.
Правильный ответ на это задание:
Понять смысл программы.
Создать план действий.
Рассказать решение задачи.
Ну что же, а теперь повторим самое главное, что мы сегодня узнали.
Исполнитель алгоритма – это объект, который выполняет команды (шаги, инструкции) по определённым правилам и в нужном порядке. Например, человек, компьютер.
Человек создаёт алгоритм и исполняет его.
Компьютер только выполняет алгоритм, написанный человеком на языке программирования.
Система команд исполнителя – это список команд или набор шагов, которые способен выполнить конкретный исполнитель.
Автоматический исполнитель – это исполнитель, выполняющий действия, которые заложены в его память, без участия человека.
Сегодня мы с вами изучили очень важный материал, и уже подошло время прощаться. До свидания, ребята. До новых встреч.
Что такое алгоритм?! Часть первая
Терзаем вместе основной кирпичик программиста — Алгоритм.
Проблема
Текущее состояние в области программирования — это обучение ремеслу по большей части личной практикой или разборами примеров стороннего кода, с которым по каким-то причинам приходится сталкиваться.
В результате программированию учишься по наитию. Лишь немного в этом труде помогают сборники алгоритмов, прикладных техник и шаблонов проектирования. Общая совокупность предлагаемых ими рецептов выстраивается длинным списком, и его длина грозит каждому из прочитанных приемов быть позабытым (как была забыта 53-яя личная группа в «телеге» до введения разбиения по каталогам). Но даже тот прием, который остался в памяти, чаще всего просто является описанием прикладной задачи, в которой было успешно его использование.
Почему конкретный прием был успешен в задаче-образце? Будет ли он успешен в твоём проекте? Какие признаки проекта дают понять, что использование приёма уместно?
В личном опыте существования в профессии не раз отмечено, что каждый Junior борется с одинаковыми ветряными мельницами и постигает методы создания программ основываясь только на своих ошибках. Но ведь такие ошибки совершили уже очень многие. Почему до сих пор не создана система правил программирования, которая поможет обойти новоиспеченному кораблю-программисту подводные прибрежные камни? Ну, например, объяснение вреда использования метода «Copy-Paste» для развития кода. Если такие правила получится объяснить малым набором причин, их сформировавшим, то это объяснение обеспечит их запоминание и последующее использование в практике, тем самым поможет уклониться от бесчисленных грабель, разложенных тут и там.
Для компактного и полезного набора объяснений нужно:
Если обобщить, то нужны алгоритмы для написания и развития алгоритмов.
Задуманная серия статей не претендует на полное решение указанной проблемы. Предпринимается небесспорная попытка сделать первый шаг на пути к этому решению. Этот шаг состоит в выделении структуры и свойств главного кирпичика программиста — Алгоритма.
Задача
Сформулируем основную задачу, которую хочется решить. Для этого сначала запишем операции над алгоритмами, которые программист выполняет в ходе написания своего проекта:
Рассмотрим существующие на текущий момент варианты значения слова «алгоритм» в поисках подсказок, о том как можно работать с алгоритмами.
Так, например, формулировка «конечная совокупность точно заданных правил решения произвольного класса задач» говорит что есть возможность как-то «точно задать правила» из них собрать «совокупность» и этой совокупностью «решить» некоторый «класс задач».
Сразу возникает масса вопросов к этому определению:
Другая формулировка «набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи» говорит что есть «исполнитель», который может выполнять некоторые «действия», и при некотором «порядке» выполнения этих «действий» «решается задача». Вопросов не стало меньше:
Перечислено много вопросов, но они мало помогают в поиске методов работы с алгоритмом. Поэтому поставим себе меньшую задачу, но тоже очень нам важную. Давайте попробуем сформулировать, что делает алгоритм способом решения наших задач, и какие процессы являются для него «действиями». Даже решение этой «маленькой» задачи оказывается очень объемным для одной статьи, поэтому будем его разбивать на части. И поэтому первую статью серии целиком посвятим только «Действию» и его признакам, которые опущены в указанных выше определениях алгоритма, но являются очень важными для ответов на все заданные вопросы.
Определение алгоритма
Рассмотрим определение алгоритма, говорящее, что он — приводящая к решению задачи последовательность действий. Как программисту мне приходится писать много кода. Этот код состоит из частей. Такими частями являются и функции, и классы, и модули. Когда я пишу текст функции — я занимаюсь написанием алгоритма.
Раньше алгоритм создавали в виде блок схем и полуавтоматически компилировали в машинные коды. Сейчас я избавлен от необходимости быть художником и компилятором для написания программы. Текст моей функции — это запись алгоритма в текстовом виде — его текстовая блок-схема. Здесь можно вспомнить Scratch, где используется визуальное создание блок-схемы алгоритма без написания текста. Способ записи алгоритма сейчас не так важен.
Важно, что в написании алгоритма функции я могу использовать вызовы других функции, которые я или другой программист уже написал до этого момента. Вспоминая фразу «последовательность действий, приводящая к решению задачи», можно отметить, что функции, написанные ранее, являются моими «действиями». То есть «действия» могут быть функциями. Если обобщать, то «действия» могут быть алгоритмами.
Если «действие = алгоритм», то определение можно попробовать переписать рекурсивно «алгоритм — это приводящая к решению задачи последовательность использования существующих алгоритмов». Рекурсивные определение не самое простое, что можно записать в словаре обычного человека. Но для программиста и математика эта форма знакома. Мы умеем с ней работать, и это даёт нам преимущество в рассмотрении разных задач, разбиваемых на подобные себе подзадачи. Так давайте воспользуемся этим преимуществом.
Чтобы разрешить рекурсию нам необходимо найти:
Действие
Для начала рассмотрим «действие» и попробуем найти причину, обеспечивающую возможность использования существующего «действия» для создания нового алгоритма.
Этой причиной является возможность повторного использования «действия» с получением тождественного результата. Только тогда разработанный с использованием этого «действия» алгоритм решения некоторой задачи будет одинаково решать эту задачу снова и снова. Мы нащупали важные законы нашего мира, в котором:
Какие признаки «действия» кроме повторимости делают возможным его использование в создании алгоритма? Что является терминальным неделимым «действием»? Чтобы ответить на этот вопрос стоит рассмотреть разные примеры «действий» из нашего опыта. Программисты встречали их много раз. Это и сложение, и умножение, и установка цвета пикселя на экране. Но мы знакомы с ними и вне программирования. Вся наука основывается на повторяемых явлениях.
Закон гравитации, описывающий повторяющееся явление падения яблока, тоже может стать действием. Ведь любое яблоко будет падать на землю? Значит этот процесс можно использовать в качестве «действия»! Например решая задачу прогнать Ньютона от яблони, на которую Вы случайно забрались ранее.
Рассмотрим, что происходит при выполнении «действия». Например, во время падения яблока с ветки яблони на землю. В этом процессе происходит несколько изменений. Если вспомнить школьную физику и рассмотреть ситуацию в системе отсчета, привязанной к Земле, то сила гравитации вызывает изменение скорости яблока, разгоняя его. При этом в процессе отмечается еще одно важное изменение — уменьшается расстояние между яблоком и Землей.
В рамках примера процесса «Земля-Яблоко» можно отметить у «действия» следующие признаки:
Рассмотрим с этими признаками разные области и процессы, выделяя в них примеры «действий» и контролируя особенности указанных признаков в описании структуры «действия».
Физические процессы
Для физических систем, процессы которых мы наблюдаем в нашем мире, характерные объекты и изменения опираются на фундаментальные взаимодействия и потому их достаточно просто выделить по аналогии с гравитационным взаимодействием Земли и яблока. Например, для системы из протона и электрона или системы двух протонов.
Отдельно от этих простых взаимодействий двух объектов стоят многокомпонентные процессы, например, ядерные реакции (по структуре «действия» близки к химическим процессам, рассматриваемым далее). Сложны и процессы описываемые суммарным взаимодействием большого числа элементов, например, «идеальный газ». Пока отложим их рассмотрение и сосредоточимся на самых простых примерах.
Химические процессы
Перейдем к следующей большой области — химическим процессам. Химические реакции (например, ) по признаку своей повторимости так же являются «действиями». Объектами в них являются атомы и молекулы. Для описания происходящих изменений необходимо немного преобразовать «физические» изменения. Так изменения параметров движения в совокупности дают нам изменение температуры в ходе химической реакции. А среди изменений расстояний между молекулами мы, игнорируя броуновское движение, можем выделить фиксацию расстояния в виде повторимого формирования и разрушения связей между частями взаимодействующих молекул. Локальность для химической реакции тоже существует — это отсутствие реакции при нахождении гидроксида натрия и соляной кислоты в разных пробирках и наличие реакции при соприкосновении веществ. Конечно, в «химической» области «действий» есть особенности не сводящиеся к молекулам, например, фотохимические реакции, где к объектам необходимо добавить фотоны. Самые простые процессы выбраны для рассмотрения намеренно.
Математические процессы
Следующей областью выберем «действия» из известных нам абстрактных алгоритмов. Самые яркие их представители — математические процессы. В этой области есть действительно «сложные случаи», но для этой статьи достаточно хорошо знакомых примеров. Рассмотрим в качестве «действия» достаточно элементарную операцию — сложение. А примером этого «действия» выберем сложение математиком двух целых чисел.
В ситуации с математиком можно выделить много объектов, но с точки зрения «действия» («сложение математиком двух целых чисел»), объекта всего три: это объект «математик», объект «первое число» и объект «второе число». В отличие от всех рассмотренных ранее объектов числа являются обозначениями, то есть виртуальными объектами. И их преобразование в алгоритме более сложно устроено нежели изменение расстояния и параметров движения объектов, как это было для «химических» действий. Подробности такого преобразования — это тема отдельной увлекательной статьи. А в рамках текущей рассмотрим древнего математика, который складывает числа, используя кучки камешков (рим. ‘calculi’), и более «современного» математика, использующего абак. Абстракции таких способов вычисления суммы не так далеко отошли от физических и химических процессов, поэтому структура процессов их «действий» полностью описывается изменениями расстояний и связей.
Интересно, что на примере древнего математика становится понятен смысл слова «сложить», которое отсылает нас к действию «класть» и к фразе «положить вместе».
Сложение и древний математик
Для математика, оперирующего камешками, сумма это «действие» со следующими характеристиками.
Сложение и математик-абакист
У математика с абаком ситуация сложнее. Кучки разделены по значению на разрядные борозды.
Можно рассмотреть самый простой абак с двумя разрядами-бороздами. Пусть он будет десятичный. Тогда один камешек на борозде десятков соответствует десяти камешкам на борозде единиц. И 10 — это максимальное количество камешков на борозде единиц. По сравнению с действием первого математика меняется представление слагаемых. И в арсенале математика уже необходимы нескольких готовых «действий».
Локальность в этих математических «действиях» описывается отсутствием взаимодействия двух слагаемых, находящихся далеко от математика, и запуском процессов сложения когда все три объекта сложения «близко». Повторяемое изменение в математическом «действии» выражается в изменении связей между камнями и удерживающими их локациями (кучками, бороздами).
Сложение и машина Тьюринга
Можно пойти чуть дальше и заменить математика в таких «действиях» на «управляющее устройство» машины Тьюринга. Тогда «ячейки ленты» машины Тьюринга будут содержать слагаемые.
При этом остаётся и признак локальности как возможность взаимодействия управляющего устройства только с текущей ячейкой ленты, и признак изменения параметров объектов, который можно описать как изменение состояния ячеек.
Подробное описание исходных и результирующих состояний объектов, а так же «действий» производящих эти изменения для сложения, исполняемого машиной Тьюринга, оставим за рамками этой статьи. Но упомянем, что перейдя к машине мы снижаем требования к исполнителю «действия», что является главным способом для создания формальных методов работы с алгоритмом. Можно поставить себе целью упрощение каждой составляющей алгоритма до состояния, когда её выполнение можно будет поручить компьютеру. Тогда в определении алгоритма не останется тёмных мест, и многочисленные вопросы, перечисленные в начале, найдут свои ответы. Пока формализован только исполнитель. Скажем спасибо за это Тьюрингу и вспомним про «действие», формализация которого уже на пороге.
Выводы
Соберём всё, что мы отметили рассматривая разные примеры «действия»:
Признак Повторимости помогает нам в создании наших алгоритмов. С его использованием мы из всех процессов выделяем те, что являются «действием» и на их основе создаём новые алгоритмы. Более того этот признак достаточно прост и на основе его формализации можно снизить требования к системе обнаруживающей и создающей «действия» и поручить это нашему компьютеру.
Следующая статья серии (Часть 2) будет посвящена рассмотрению способов, с использованием которых «действия» могут быть сгруппированы в алгоритм. Этих способов достаточно много и есть предпосылки, что их описание не получится уместить в одну статью. Напишем — увидим.
Спасибо Вам за внимание.
Отзывы
Буду очень благодарен за отзывы и предложения, так как они помогают мне скорректировать направление развития работы в области.
Отдельное волнение у меня есть по стилю и форматированию, используемым в статье (кавычки, абзацы, курсив). Напишите, пожалуйста, если у Вас есть замечания к ним. Можно личным сообщением.