* Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
* Система команд 1. наполни A 2. вылей A 3. перелей из A в B A A Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Метод перебора * (0,0) (5,0) (0,3) (2,3) (3,0) (3,3) (5,1) (2,0) (0,3) (5,3) +A +B B→A B→A +B +B A→B -B -A -A +A +A граф -A -A -A -B +A A B Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Метод бильярда * наполни B перелей из B в A перелей из A в B вылей A вылей B наполни A Есть 5-литровый сосуд (A) и 3-литровый (B). Отмерьте 1 литр воды. наполни B перелей из B в A наполни B перелей из B в A Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Общий алгоритм (бильярд) * пока (X A) и (X B) если B пуст, то наполни B если A полон, то вылей A перелей из B в A конец цикл Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Табличная запись решения * Есть 5-литровый сосуд (A) и 3-литровый (B). Отмерьте 1 литр воды. наполни B перелей из B в A наполни B перелей из B в A +B B A +B B A 1 2 3 4 A (5 л) B (3 л) Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Ещё один пример * Есть 6-литровый сосуд (A) и 3-литровый (B). Отмерьте 2 литра воды. Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Программа для Водолея в Кумире * использовать Водолей алг А1 нач наполни B перелей из B в A наполни B перелей из B в A кон начало алгоритма конец алгоритма подключить исполнителя название алгоритма Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Задача * Есть 11-литровый сосуд (A) и 2-литровый (B). Отмерьте 1 литр воды. наполни A перелей из A в B вылей B перелей из A в B вылей B перелей из A в B вылей B перелей из A в B вылей B перелей из A в B A B 11 0 9 2 9 0 7 2 7 0 5 2 5 0 3 2 3 0 1 2 вылей B Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Цикл * Цикл – это многократное выполнение одинаковых действий. начало конец A=1? наполни A перелей из A в B вылей B цикл с условием нет да A:=11 A:=A-2 записать значение в ячейку А уменьшить значение ячейки А на 2 Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Программа в Кумире * использовать Водолей алг А2 нач цел А наполни A A := 11 нц пока A > 1 перелей из A в B вылей B A := A - 2 кц кон начало цикла конец цикла объем А объявление переменной А Переменная – это величина, имеющая имя, которая может изменяться. изменение количества жидкости в А Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Ввод значений с клавиатуры * использовать Водолей алг А3 нач цел А, B ввод А, B наполни A нц пока A > 1 перелей из A в B вылей B A := A – B кц кон ввод переменных объявление переменных А и B Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Вычисление количества шагов * Есть сосуд A (его объем – нечетное число) и 2-литровый сосуд (B). Отмерьте 1 литр воды. A N 1 0 3 1 5 2 7 3 9 4 11 5 N:=div(A,2) разделить A на 2 нацело Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Цикл «N раз» * начало конец N=0? наполни A перелей из A в B вылей B N:=N-1 цикл «N раз» нет да вычислить число шагов уменьшить счетчик N на 1 N:=div(A,2) Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
Цикл «N раз» * использовать Водолей алг А4 нач цел А, N А := 11 наполни A N := div(A,2); нц N раз перелей из A в B вылей B A := A – 2 кц кон число шагов Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru
* Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики высшей категории, ГОУ СОШ № 163, г. Санкт-Петербург [email protected] Исполнитель Водолей К. Поляков, 2010 http://kpolyakov.narod.ru