- •Урок 1. Понятие алгоритма и его свойства
- •Урок 2. Исполнители
- •Урок 3. Что такое программа для исполнителя?
- •Урок 4: Самостоятельная работа
- •Урок 5. Среда и система команд Робота – исполнителя с 4 реда Робота
- •Урок 6. Программа для Робота. Линейные алгоритмы
- •Урок 7. «Ручное» исполнение алгоритма
- •Урок 8. Самостоятельная работа
- •Урок 9. Циклические алгоритмы. Цикл «n раз»
- •Урок 10. Решение задач
- •Урок 11. Контрольная работа
- •Урок 12. Вспомогательный алгоритм
- •Урок 13. Решение задач
- •Урок 14. Решение задач
- •Урок 15. Самостоятельная работа
- •Урок 16. Зачет
Урок 3. Что такое программа для исполнителя?
Человек способен понимать алгоритм, записанный в разных формах, может понимать смысл команды и часто может “додумать”, что от него хотели даже тогда, когда команда задана неточно. Для того чтобы алгоритм был понятен роботу, компьютеру или другой машине, его необходимо записать в формальном виде.
В формальной записи алгоритма присутствуют только команды, входящие в СКИ, при этом должны соблюдаться специальные правила оформления, которые позволят исполнителю распознать команды и определить последовательность их выполнения.
Попытаемся наглядно увидеть разницу между алгоритмом и программой, для этого рассмотрим алгоритм стирки белья, а затем попытаемся составить программы для разных исполнителей, ведь в данном случае этот алгоритм может выполнять и человек, и стиральная машина, и хоть работать они будут по одному алгоритму, программы для этого должны быть разные.
Итак, алгоритм стирки белья:
в
зять
грязное белье и замочить его в воде
со стиральным порошком;тереть белье в воде, пока оно не станет чистым;
слить грязную воду и залить чистую;
прополоскать белье;
отжать.
Программы для исполнителей:
а) человек б) стиральная машина
начало налить в таз воды нужной температуры добавить в воду стиральный порошок положить в таз с водой грязное белье стирать белье пока оно не станет чистым слить грязную воду налить в таз чистой воды полоскать белье пока пена не исчезнет слить воду налить в таз чистой воды добавить в воду ополаскиватель полоскать белье 1 мин. достать белье отжимать белье пока, с него не перестанет капать вода конец |
начало залить воду добавить в воду стиральный порошок нагреть воду до заданной температуры вращать барабан с бельем заданное время слить воду залить воду вращать барабан с бельем заданное время слить воду залить воду добавить в воду ополаскиватель вращать барабан с бельем заданное время слить воду вращать барабан с бельем с заданной скоростью конец |
В результате у нас получилось, что алгоритм один и тот же, а программы совершенно разные, причем стиральная машина программу, написанную для человека, выполнить не сможет, она просто-напросто не поймет команды, записанные в ней. Следовательно, алгоритм можно записать разными способами, но далеко не каждый будет понятен исполнителю.
Программа – это алгоритм, записанный в форме, понятной исполнителю.
Рассмотрим следующую задачу:
Есть двое песочных часов: на 3 минуты и на 8 минут. Для приготовления эликсира здоровья его надо варить 2 минуты. Как это сделать?
Для начала придумаем систему команд исполнителя Колдун, умеющего обращаться с песочными часами.
Теперь необходимо записать последовательность команд этого исполнителя при изготовлении эликсира. Придумайте, как описывать состояние системы для контроля над ситуацией и оформите решение в виде таблицы:
№ команды |
Команда |
Состояние системы |
Начало |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
|
Для приготовления эликсира бессмертия его надо варить непрерывно ровно 7 минут. Оформите решение в виде таблицы:
№ команды |
Команда |
Состояние системы |
Начало |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
|
Задания:
Автоматическое устройство имеет 2 кнопки и экран. При включении на экране загорается число 0. При нажатии на одну кнопку число на экране удваивается (команда х2). При нажатии на другую кнопку число увеличивается на 1 (команда +1). Было произведено несколько нажатий на эти кнопки, определите состояние экрана в каждом из случаев:
№ команды |
Команда |
Состояние экрана |
Начало |
|
0 |
1 |
+1 |
|
2 |
х2 |
|
3 |
+1 |
|
4 |
х2 |
|
5 |
х2 |
|
6 |
+1 |
|
7 |
х2 |
|
8 |
+1 |
|
9 |
х2 |
|
10 |
х2 |
|
11 |
+1 |
|
12 |
х2 |
|
13 |
+1 |
|
14 |
х2 |
|
15 |
х2 |
|
Конец |
|
|
№ команды |
Команда |
Состояние экрана |
Начало |
|
0 |
1 |
+1 |
|
2 |
х2 |
|
3 |
х2 |
|
4 |
х2 |
|
5 |
х2 |
|
6 |
х2 |
|
7 |
+1 |
|
8 |
х2 |
|
9 |
+1 |
|
10 |
х2 |
|
11 |
+1 |
|
Конец |
|
|
Автоматическое устройство имеет 2 кнопки и экран. При включении на экране загорается число 0. При нажатии на одну кнопку число на экране удваивается (команда х2). При нажатии на другую кнопку число увеличивается на 1 (команда +1). Но устройство не позволяет нажимать на кнопку +1 более одного раза подряд. Как надо нажимать на кнопки, чтобы на экране появилось:
а) число 5; б) число 99;
№ команды |
Команда |
Состояние экрана |
Начало |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
5 |
№ команды |
Команда |
Состояние экрана |
Начало |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
99 |
Имеются три емкости для жидкости — А, Б и В, вместимостью соответственно 8, 5 и 3 литров, и автомат, который может переливать жидкость из одной емкости в другую. Автомат управляется нажатием кнопок: А-Б, А-В, Б-В, Б-А, В-Б и В-А.
Емкость 8 литров полностью заполнена жидкостью, остальные две пусты. При этом емкости не имеют делений и поэтому можно либо полностью вылить из них всю жидкость, либо заполнить полностью другую емкость. Напишите программу для этого исполнителя, с помощью которой через конечное число шагов: а) в емкости А остается ровно 7 литров жидкости; б) в емкости А и Б по 4 литра.
Проливать жидкость или добавлять ее из внешнего источника не разрешается.
№ команды |
Команда |
Состояние системы |
||
А |
Б |
В |
||
Начало |
|
8 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
7 |
|
|
№ команды |
Команда |
Состояние системы |
||
А |
Б |
В |
||
Начало |
|
8 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец |
|
4 |
4 |
|
Имеются три емкости для жидкости — А, Б и В. Вместимостью соответственно 14, 8 и 5 литров, и автомат, который может переливать жидкость из одной емкости в другую. Емкость 14 литров полностью заполнена жидкостью, остальные две пусты. Определите состояние системы на каждом шаге исполнителя.
№ команды |
Команда |
Состояние системы |
||
А |
Б |
В |
||
Начало |
|
14 |
0 |
0 |
1 |
А-В |
|
|
|
2 |
В-Б |
|
|
|
3 |
А-В |
|
|
|
4 |
В-Б |
|
|
|
5 |
Б-А |
|
|
|
6 |
В-Б |
|
|
|
7 |
А-В |
|
|
|
8 |
В-Б |
|
|
|
Конец |
|
|
|
|
