К. Поляков, Исполнитель Водолей Урок 0. Знакомство с исполнителем Водолей
Исполнитель Водолей К. Поляков, Система команд 1. наполни A 2. вылей A 3. перелей из A в B AB ABABAB AA AAAA
Исполнитель Водолей К. Поляков, Задачи из папки «Водолей» 3 «3»: 1.vod (за 4 шага) «4»: 1.vod (за 4 шага) 2.vod (за 4 шага) «5»: 1.vod (за 4 шага) 2.vod (за 4 шага) 3.vod (за 8 шагов) «6»: 1.vod (за 4 шага) 2.vod (за 4 шага) 3.vod (за 8 шагов) 4.vod (за 10 шагов)
К. Поляков, Исполнитель Водолей Урок 1. Как решать задачи для Водолея?
Исполнитель Водолей К. Поляков, Метод перебора 5 (0,0) (5,0)(0,3) (2,3)(3,0) (3,3) (5,1) (2,0)(0,3) (5,3) +A+A+B+B B A +B+B +B+B A B -B-A +A+A +A+A граф -A-A -A-A -A-A -B-B +A+A A A B B Граф – это набор узлов и соединяющих их рёбер (дуг)! ! Есть 5-литровый сосуд (A) и 3-литровый (B). Отмерьте 1 литр воды.
Исполнитель Водолей К. Поляков, Метод бильярда B A наполни B перелей из B в A перелей из A в B вылей A вылей B наполни A Есть 5-литровый сосуд (A) и 3-литровый (B). Отмерьте 1 литр воды. 1.наполни B 2.перелей из B в A 3.наполни B 4.перелей из B в A
Исполнитель Водолей К. Поляков, Общий алгоритм (бильярд) 7 пока (в сосуде A X) и (в сосуде B X) если B пуст, то наполни B если A полон, то вылей A перелей из B в A конец B A цикл Второй путь? ?
Исполнитель Водолей К. Поляков, Табличная запись решения 8 Есть 5-литровый сосуд (A) и 3-литровый (B). Отмерьте 1 литр воды. 1.наполни B 2.перелей из B в A 3.наполни B 4.перелей из B в A 1234 A (5 л) B (3 л) B B A +B B A
Исполнитель Водолей К. Поляков, Ещё один пример 9 Есть 6-литровый сосуд (A) и 3-литровый (B). Отмерьте 2 литра воды. Если объемы A и B имеют наибольший общий множитель X, то можно отмерить только объем, кратный X! ! Если объемы A и B – взаимно-простые числа (имеют НОД=1), то можно отмерить любой объем max(A,B)! ! B A 6
Исполнитель Водолей К. Поляков, Программа для Водолея в Кумире 10 использовать Водолей алг Отмерить 1 литр нач наполни B перелей из B в A наполни B перелей из B в A кон использовать Водолей алг Отмерить 1 литр нач наполни B перелей из B в A наполни B перелей из B в A кон начало алгоритма конец алгоритма подключить исполнителя название алгоритма название алгоритма
Исполнитель Водолей К. Поляков, Задачи из практикума «Водолей» 11 Урок 1. Линейные алгоритмы «3»: 1-1, 1-2 «4»: 1-1, , 1-4 «5»: 1-1, , , 1-6
К. Поляков, Исполнитель Водолей Урок 2. Циклы
Исполнитель Водолей К. Поляков, Задача 13 3 л3 л2 л AB Есть 3-литровый сосуд (A) и 2-литровый (B). Отмерьте 1 литр воды. наполни A перелей из A в B наполни A перелей из A в B A B
Исполнитель Водолей К. Поляков, Задача 14 7 л2 л AB Есть 7-литровый сосуд (A) и 2-литровый (B). Отмерьте 1 литр воды. наполни A перелей из A в B вылей B перелей из A в B вылей B перелей из A в B наполни A перелей из A в B вылей B перелей из A в B вылей B перелей из A в B A B вылей B команды повторяются 3 раза
Исполнитель Водолей К. Поляков, Цикл 15 Цикл – это многократное выполнение одинаковых действий. начало конец наполни A перелей из A в B вылей B цикл нет да Когда остановиться? ? В каких случаях работает? В каких – нет? ? сделали 3 раза? loop петля
Исполнитель Водолей К. Поляков, Цикл «N раз» 16 7 л7 л2 л AB Есть сосуд A (его объем – 7 литров) и 2-литровый сосуд (B). Отмерьте 1 литр воды. Сколько шагов цикла нужно сделать? ? использовать Водолей алг Отмерить 1 литр нач наполни A нц 3 раз перелей из A в B вылей B кц кон использовать Водолей алг Отмерить 1 литр нач наполни A нц 3 раз перелей из A в B вылей B кц кон Подходит ли для других задач? ? Esc, Р
Исполнитель Водолей К. Поляков, Вычисление количества шагов 17 A л2 л AB Есть сосуд A (его объем – нечетное число) и 2-литровый сосуд (B). Отмерьте 1 литр воды. размер A N div(размер A, 2) разделить размер A на 2 нацело Сколько шагов цикла нужно сделать? ? размер B
Исполнитель Водолей К. Поляков, Задачи из практикума «Водолей» 18 Урок 2. Циклы «N раз» «3»: 2-1, 2-2, 2-3 «4»: 2-1, 2-2, , 2-5 «5»: 2-1, 2-2, , , 2-7
К. Поляков, Исполнитель Водолей Урок 3. Циклы с условием
Исполнитель Водолей К. Поляков, Задача 20 7 л2 л AB Есть 7-литровый сосуд (A) и 2-литровый (B). Отмерьте 1 литр воды. наполни A перелей из A в B вылей B перелей из A в B вылей B перелей из A в B наполни A перелей из A в B вылей B перелей из A в B вылей B перелей из A в B A B вылей B при каком условии остановить цикл? Повторять пока в сосуде А 1 ! !
Исполнитель Водолей К. Поляков, Цикл 21 начало конец наполни A перелей из A в B вылей B цикл да нет В каких случаях работает? В каких – нет? ? в сосуде А 1? loop петля
Исполнитель Водолей К. Поляков, Программа в Кумире 22 использовать Водолей алг Отмерить 1 литр нач наполни A нц пока в сосуде A 1 перелей из A в B вылей B кц кон использовать Водолей алг Отмерить 1 литр нач наполни A нц пока в сосуде A 1 перелей из A в B вылей B кц кон начало цикла конец цикла если размер A = 12 размер B = 2 ? ? зацикливание Esc, П Как избежать зацикливания? ?
Исполнитель Водолей К. Поляков, Задачи из практикума «Водолей» 23 Урок 3. Циклы «пока» «3»: 3-1, 3-2 «4»: 3-1, , 3-4 «5»: 3-1, , , 3-6
К. Поляков, Исполнитель Водолей Урок 4. Переменные
Исполнитель Водолей К. Поляков, Задача 25 7 л2 л AB Есть 7-литровый сосуд (A) и 2-литровый (B). Отмерьте 1 литр воды. 1) использовать цикл пока 2) не использовать команду в сосуде А Нужно запоминать, как меняется объем воды в сосуде А! ! в сосуде А размер А уменьшить на 2
Исполнитель Водолей К. Поляков, Как хранить данные? 26 Оперативная память ячейка памяти нач цел N N:= 25 N:= размер А N:= N - 2 кон нач цел N N:= 25 N:= размер А N:= N - 2 кон ?25 75 переменная целого типа новое значение переменной уменьшить на 2 Переменная – это величина, имеющая имя, тип и значение. Значение переменной может изменяться во время работы программы.
Исполнитель Водолей К. Поляков, Переменные 27 использовать Водолей алг Отмерить 1 литр нач цел N наполни A N := размер A кон использовать Водолей алг Отмерить 1 литр нач цел N наполни A N := размер A кон нц пока N > 1 перелей из A в B вылей B N:= N - 2 кц нц пока N > 1 перелей из A в B вылей B N:= N - 2 кц объявление целой переменной запись нового значения в переменную Для каких задач работает? ?
Исполнитель Водолей К. Поляков, Трассировка 28 Трассировка – это отслеживание изменения значений переменных во время работы программы. F8 – выполнить один шаг. эта команда еще не выполнялась получено на предыдущем шаге цикла
Исполнитель Водолей К. Поляков, Задачи из практикума «Водолей» 29 Урок 4. Переменные «3»: 4 -1, 4-2 «4»: 4 -1, , 4-4 «5»: 4 -1, , , 4-6
К. Поляков, Исполнитель Водолей Урок 5. Ветвления
Исполнитель Водолей К. Поляков, Задача 31 3 л3 л2 л AB Есть два сосуда, один из них (неизвестно какой) имеет объем 3 литра, а другой – 2 литра. Отмерьте 1 литр воды. 2 л3 л AB или наполни A перелей из A в B наполни A перелей из A в B наполни B перелей из B в A наполни B перелей из B в A или Как выбрать из двух вариантов? ?
Исполнитель Водолей К. Поляков, Ветвление на блок-схеме 32 начало конец наполни A перелей из A в B ветвление да размер B = 2? нет наполни B перелей из B в A Ветвление – это выбор одного из двух вариантов в зависимости от выполнения некоторого условия.
Исполнитель Водолей К. Поляков, Ветвление в программе 33 использовать Водолей алг Отмерить 1 литр нач если размер B = 2 то наполни A перелей из A в B иначе наполни B перелей из B в A все кон использовать Водолей алг Отмерить 1 литр нач если размер B = 2 то наполни A перелей из A в B иначе наполни B перелей из B в A все кон наполни A перелей из A в B наполни B перелей из B в A размер B = 2 условие если условие выполнено (истинно) если условие НЕ выполнено (ложно) Esc, Е
Исполнитель Водолей К. Поляков, Задачи из практикума «Водолей» 34 Урок 5. Ветвления «3»: 5 -1, 5-2 «4»: 5 -1, , 5-4 «5»: 5 -1, , , 5-6 «6»: 5 -1, , , , 5-8
Исполнитель Водолей К. Поляков, Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики высшей категории, ГОУ СОШ 163, г. Санкт-Петербург В практикуме использованы разработки Д.П. Кириенко (