Урок 1. Как познакомиться с исполнителем?

Вверх Перевозчик, волк, коза и капуста

Возвращался старик с базара домой, вёл с собою волка, козу и нёс кочан капусты. Повстречалась на пути речка. Глубока речка, а моста нет.

Вдруг видит старик: стоит у берега лодка. Обрадовался. Только уж очень мала лодка: старик может в неё сесть один или взять с собой только одного «пассажира» — либо волка, либо козу, либо капусту. Втроём в лодке не поместиться.

Переехать на другой берег было бы нетрудно, да вот беда: уж очень недружны «пассажиры». Нельзя старику оставлять волка и козу вместе: волк съест козу. Козу с капустой тоже нельзя оставлять наедине: коза съест капусту. Это только со стариком они все такие «смирные».

Как решать такую задачу? Как перевезти всю компанию через речку, не потеряв ни козы, ни капусты?

Можно пойти на реку, найти старика, козу и лодку. Раздобыть кочан капусты. Вот с волком, правда, проблемы: где ж мы возьмём настоящего волка? И вдруг он набросится на старика? Да и козу, конечно, тоже жалко.

Нет, так не пойдёт. Нужно, чтобы никто не пострадал. Даже капуста. И нам известен такой путь решения: нужно построить модель! Вспомним, что модель — это ....

В модели мы упрощаем задачу, выделяем самое главное. Роботландская модель перевоза включает в себя среду для решения задачи и робота-исполнителя, который назван Перевозчиком. Будем командовать исполнителем, а он, выполняя команды, будет перемещать персонажи. Лодка в нашей компьютерной модели — автоматическая, с моторчиком, грести не надо.

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

Попробуй решить задачу для дедушки на этой модели.

Условие задачи

Задача: перевезти животных на правый берег. Козу нельзя оставлять с капустой! Волка нельзя оставлять с козой!

Как работать с Перевозчиком

Команду можно выбирать из списка и нажимать кнопку Пуск для её выполнения.

А можно задавать команду проще — щелчком мыши по персонажу задачи.

Нажмите кнопку Сброс, чтобы выполнить перевоз ещё раз.

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

Вверх Исполнитель, система команд

В сказках часто встречаются волшебные устройства, которые послушно исполняют волю сказочных персонажей.

Помните, как выбравшись из чащи леса на полянку, Иван-царевич увидел избушку на курьих ножках?

Иван даёт избушке команду:

Избушка, избушка! Встань ко мне передом, к лесу задом!

И волшебная избушка исполняет команду.

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

Вспомним сказку про Али-Бабу и сорок разбойников. События этой сказки связаны с волшебной дверью, которая могла открываться по команде ..., впуская человека в пещеру с сокровищами (или выпуская его).

Помните, какой печальный конец нашёл в пещере жадный Касим, забывший эту команду?

— Горох, открой дверь!

Но дверь не открылась. Касим немного испугался. Он подумал и крикнул опять:

— Пшеница, открой дверь!

Дверь и не шевельнулась. Касим от страха уже ничего не мог вспомнить и кричал названия всех растений, какие знал:

— Овёс, открой дверь!

— Конопля, открой дверь!

— Ячмень, открой дверь!

И волшебная дверь, и избушка на курьих ножках ведут себя одинaково: они понимают и точно исполняют некоторые команды. Поэтому их можно назвать исполнителями.

Исполнитель — это тот, кто ...

Сегодня вы работали с роботландским исполнителем Перевозчик. Вернитесь к нему и попробуйте выполнить приказ «?» из списка, нажав кнопку Пуск. Возврат к Перевозчику.

Волшебная дверь ничего не сказала Касиму. А роботландский вежливый Перевозчик написал: ... Это означает, что команде «?» Перевозчик не обучен.

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

Дрессированная собачка — исполнитель: она понимает и исполняет те команды, которым научил её хозяин.

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

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

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

Исполнитель — это тот, кто ...

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

Набор понятных исполнителю команд называется системой команд исполнителя, или сокращённо СКИ.

Система команд исполнителя Перевозчик состоит из 8 команд:

СКИ Перевозчика
  • капуста >
  • капуста <
  • коза >
  • коза <
  • волк >
  • волк <
  • лодка >
  • лодка <

СКИ избушки на курьих ножках составлена всего из одной-единственной команды:

СКИ Избушки на курьих ножках
  • Избушка, избушка! Встань ко мне передом, к лесу задом!

СКИ волшебной двери тоже содержит только одну команду:

СКИ Волшебной двери
  • Симсим, открой дверь!

Вверх Что надо знать об исполнителе?

Урок в роботландской школе открыл Кукарача. Присутствовали — Лисёнок, Трям и Прям.

— Как познакомиться с исполнителем? — задал неожиданный вопрос Кукарача.

— Сказать «привет» и пожать руку! — не задумываясь ответил Лисёнок.

— Хм… — усомнился Трям. — А если у него рук нет, как у избушки на курьих ножках?

— У исполнителя и уши могут отсутствовать, — заметил Прям. — Моя стиральная машина, например, не понимает команд с голоса, но прекрасно работает, когда я нажимаю кнопки.

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

Речь Кукарачи

Мои юные друзья! Познакомиться с исполнителем, — значит, научиться им пользоваться. А для этого нужно:

Вверх Среда исполнителя

— Почему нас должна волновать среда, а не четверг исполнителя? — удивился Трям.

— А когда косой косит травку косой, будет ли плакать девчонка с косой? Видите, как много значений может иметь одно и тоже слово! Среда исполнителя — это не день недели…

Среда исполнителя — это обстановка, в которой работает исполнитель и средства, позволяющие управлять работой исполнителя, то есть интерфейс исполнителя.

В какой среде работает исполнитель знать очень важно! Это знание поможет лучше понять работу исполнителя.

Исполнитель Среда исполнителя Изображение
Избушка на курьих ножках

Избушка с датчиком звука. Умеет поворачиваться к лесу задом по команде из СКИ. Через некоторое время, вероятно, автоматически поворачивается к лесу передом.

Лесная полянка. Избушка.
Интерфейс: датчик звука (микрофон) в избушке.
Волшебная дверь Дверь в пещеру с датчиком звука. Открывается по команде из СКИ, закрывается, вероятно, автоматически. Горы. Пещера. Дверь.
Интерфейс: датчик звука (микрофон) в двери.
Перевозчик

Этот исполнитель — компьютерная программа. Результаты работы этой программы (выполнение наших команд) мы наблюдаем на экране: перемещаются персонажи, лодка.

Среда исполнителя содержит рабочее поле с экранными объектами: река, лодка, волк, коза, капуста.

Интерфейс:

  • Кнопка Сброс.
  • Выпадающий список для выбора команд (озаглавленный «Команда:»).
  • Кнопка Пуск рядом со списком.

Трям попросил Кукарачу показать программу, в которой реализован исполнитель Перевозчик. Кукарача покрутил ус, почесал затылок, потом улыбнулся и ответил так.

— Я покажу небольшой фрагмент. Ты увидишь текст, который будет тебе непонятен. Но позже, по мере изучения информатики, будут открыты все тайны!

Фрагмент программы исполнителя «Перевозчик»

Ниже показан фрагмент программы Перевозчик.

  // Щелчок по лодке
  if (m==3 && river.game[n][m]) // лодка на месте?
  {
    river.game[n][m]   = false;
    river.game[1-n][m] = true;
    river.step++;
    // проверить на окончание
    river.gameover();
    // отрисовать экран
    river.draw();
    // показать вопрос в выпадающем списке
    $('DIV#river SELECT')[0].selectedIndex = 0;
  }

Вверх Система команд исполнителя

Кроме среды исполнителя нужно знать его систему команд (СКИ) и уметь с ней работать. А для этого нужно знать:

Вверх Какие команды входят в СКИ

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

Сегодня мы записывали системы команд исполнителей:

СКИ Избушки на курьих ножках
  • Избушка, избушка! Встань ко мне передом, к лесу задом!
СКИ Волшебной двери
  • Симсим, открой дверь!
СКИ Перевозчика
  • капуста >
  • капуста <
  • коза >
  • коза <
  • волк >
  • волк <
  • лодка >
  • лодка <
Вверх Исполнитель Курсор

Давайте запишем СКИ ещё одного исполнителя. Назовём его Курсор — курсор однострочного редактора.

Среда этого исполнителя — поле однострочного редактора с написанным в нём текстом, а сам исполнитель — вертикальная чёрточка, которая может перемещаться по тексту между символами, от положения перед первым символом (левая граница) до положения за последним символом (правая граница).

Какими командами можно перемещать этот исполнитель в поле редактора? Давайте вспомним. Щёлкните по полю редактора и поробуйте «погонять» появившийся курсор:

Курсор

— Курсор в однострочном редакторе перемещается на одну позицию командами ... на начало строки командой ... на конец текста командой ... Получается в СКИ — ... команды.

Таким образом, СКИ имеет вид:

...
Вверх Как команды передаются исполнителю

— Знать названия команд мало, — продолжил Кукарача. — Важно знать ещё, как команды передаются исполнителю.

— Cогласен, — поддержал разговор Лисёнок. — В самом деле, разные исполнители получают свои команды по-разному.

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

Вверх Как исполнитель выполняет команды

— И, конечно, важно знать, как выполняются команды. Что, например, делает курсор по команде Home: записывает перевод этого слова в своём поле или ...

Курсор
Вверх Сообщения исполнителя

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

Разные исполнители реагируют по-разному, но всё многообразие сообщений об ошибках можно свести к двум условным фразам:

Сообщение «Не понимаю»

Кукарача рассказал, что однажды, когда в Роботландии шла весёлая игра «Поиск клада», Вася Кук обнаружил записку со словом «ВПИРЁТ». Вася, конечно, улыбнулся, глядя на ошибку, но всё-таки понял, что надо делать.

А вот если в СКИ исполнителя-робота имеется команда ВПЕРЁД, а вы наберёте это слово с ошибкой, робот сообщит в ответ:

Так всегда отвечают роботы, когда им дают команду, не входящую в их СКИ. Ведь в СКИ написано ВПЕРЁД, а команды ВПИРЁТ там нет. Робот принимает команды к исполнению только тогда, когда они отданы буквально так, как записано в СКИ.

Сообщение «Не могу»

Можно задать исполнителю команду, имеющуюся в СКИ и, тем не менее, поставить его в затруднительное положение. Представьте себе, что коза находится на левом берегу, лодка на правом, а вы отдаёте Перевозчику команду коза >. Исполнитель сообщит:

Так всегда отвечают роботы, когда не могут по каким-либо причинам выполнить команду из своей СКИ.

Сообщение исполнителя Когда возникает
Не понимаю все исполнители говорят в одном и том же случае: когда им задают команду, не входящую в СКИ.
Не могу у каждого исполнителя своё: Перевозчик не может везти козу, если рядом нет лодки; курсор не может выполнить команду Влево, находясь перед первым символом в строке.

Значит, знакомясь с исполнителем, надо знать, когда исполнитель говорит Не могу для каждой команды из СКИ.

Как исполнители показывают свои сообщения?

По-разному. Исполнитель Перевозчик пишет свои сообщения словами:

А вот избушка на курьих ножках, волшебная дверь и курсор ничего не говорят, ничего не пишут. Но отсутствие каких либо действий в ответ на команду «говорит» само за себя — что-то не так! Либо команда неправильная (не входит в СКИ), либо исполнитель не может её выполнить.

Исполнитель Не понимаю Не могу
Не реагирует на команды, которые не понимает. Например, не реагирует на команду: Избушка, избушка! Встань ко мне задом, к лесу передом! Если команда правильная, всегда её выполняет. Ситуаций «Не могу» не возникает.
Не реагирует на команды, которые не понимает. Например, не реагирует на команду: Овёс, открой дверь. Если команда правильная, всегда её выполняет. Ситуаций «Не могу» не возникает.
Пишет в своей среде «Не понимаю», если команда не входит в СКИ (команда ?). Пишет в своей среде «Не могу». Например, на команду волк >, когда волк на левом берегу, а лодка на правом.
Не реагирует на команды, которые не входят в СКИ. Например, не реагирует на команды Del и BS. Не реагирует на команды в ситуациях «Не могу». Например, курсор не перемещается по команде Влево, если он находится перед первым символом в строке.

Вверх Сообщения среды

— Исполнитель может говорить только Не могу и Не понимаю?

— Да, это так!

— Но Перевозчик умеет говорить ещё кое-что. Если задача решена, он говорит «Задание выполнено», а если перевоз был неудачным — «Съели»!

— Эти сообщения выдает не исполнитель, а его среда.

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

В среде может быть предусмотрено сообщение об успешном завершении работы («Задание выполнено») иди другие сообщения, полезные для пользователя (например, «Длинно», когда задание выполнено не лучшим образом).

Вверх Исполнитель Компьютер

Среди всех технических устройств, которые являются исполнителями (автомобиль, подъёмный кран, газовая плита, система отопления дома, автоматические двери…), есть одно особое устройство — это компьютер!

Сам компьютер, конечно, является исполнителем. У него есть система команд, которые умеет выполнять процессор, а непосредственной средой его деятельности является память, в которой, при выполнении команд, меняется информация.

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

Еще компьютер интересен тем, что на нём можно создавать новых программных исполнителей, таких как текстовый или графический редакторы, игры и различные модели для решения задач, такие как Перевозчик или программы для проектирования зданий.

Компьютер — универсальный исполнитель.

Что мы узнали

Сейчас можно выполнить практикумы, сдать зачёт и посмотреть задание на дом.