
- •Министерство образования и науки рф
- •Владимирский государственный университет
- •Оглавление
- •Глава 1. Алгоритмизация 17
- •Глава 2. Программирование 77
- •Глава 3. Отдельные вопросы методики преподавания
- •2. Проектная технология – средство реализации
- •3. Пример использования элементов технологии
- •Введение
- •Краткая структурная схема изучения темы «Алгоритмизация и программирование»
- •Требования к знаниям и умениям учащихся при изучении содержательной линии «Алгоритмизация и программирование»
- •Рекомендации по изучению языков программирования Процедурное программирование
- •Краткая история языков программирования Ершол, Turbo Pascal, qBasic Язык программирования Ершол
- •Язык программирования Turbo Pascal
- •Язык программирования qBasic
- •Визуальное объектно-ориентированное программирование
- •Языки логического и функционального программирования
- •Глава 1. Алгоритмизация
- •1. Алгоритм и его свойства
- •1.1. Понятие алгоритма
- •1.2 Исполнитель. Схема знакомства с исполнителем
- •1.3. Свойства алгоритмов
- •2. Способы записи алгоритмов
- •2.1. Словесный способ записи алгоритмов
- •2.2. Блок-схемы4 алгоритмов
- •2.2.1. Основные элементы построения блок-схем
- •Основные управляющие команды организации действий в алгоритмах
- •2.2.3. Дополнительные управляющие команды организации действий в алгоритмах
- •3. Примеры блок-схем алгоритмов
- •3.1. Блок-схемы алгоритмов, содержащих команды ветвления
- •3.2. Блок-схемы алгоритмов, содержащих команды повторения
- •3.3 Блок-схемы алгоритмов работы с массивами
- •3.4. Блок-схемы алгоритмов, содержащих команды обращения к вспомогательным алгоритмам
- •4. Алгостихи
- •5. Алгоритмы для исполнителя мнр (машины с неограниченными регистрами)
- •Глава 2. Программирование
- •1. Кодирование управляющих команд организации действий на процедурных языках Ершол, qBasic, Turbo Pascal13
- •2. Коды программ решения задач 10-36 на языках Ершол, qBasic, Turbo Pascal14
- •3. Занимательные игры-алгоритмы
- •Структурная схема возможных блоков построения игровых алгоритмов
- •3.1. Задача Баше
- •Программа на языке qBasic игры Баше
- •3.2. Ханойская башня
- •Программа на языке Turbo Pascal игры Ханойская башня (с использованием рекурсии)
- •3.3 Игра «Жизнь»
- •Программа на языке qBasic игры «Жизнь»
- •Глава 3. Отдельные вопросы методики преподавания учебного материала содержательной линии «Алгоритмизация и программирование»
- •1. Предметные технологии формирования информационной культуры учащихся
- •1.1. Проектирование алгоритмов «сверху вниз» и «снизу вверх»
- •Примеры проектирования алгоритмов с использованием технологий «сверху вниз» и «снизу вверх»
- •Задания к данному параграфу
- •1.2. Имитационное моделирование исполнения программ компьютером
- •1.2.1. Моделирование памяти компьютера
- •Задания к данному параграфу
- •1.2.2. Моделирование с использованием наглядных протоколов
- •Примеры ручного исполнения программ с использованием метода наглядных протоколов
- •Решение
- •Задания к данному параграфу
- •1.3. Имитационное моделирование при нахождении алгоритма поиска минимального элемента в массиве чисел
- •Задания к данному параграфу
- •1.4. Имитационное моделирование при нахождении алгоритма сортировки элементов массива методом выбора
- •Задания к данному параграфу
- •1.5. Имитационное моделирование при изучении механизма пирамидальной сортировки элементов массива
- •2. Проектная технология – средство реализации личностно-ориентированного обучения
- •3. Пример использования элементов технологии проблемного обучения при введении команды повторения «пока», управляющей команды организации действий в алгоритмах
- •4. Вопросы и задания к семинарским занятиям
- •5. Лабораторно-практические работы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Лабораторная работа 6
- •6. Самостоятельная работа
- •Приложения Приложение 1. Программа на языке vba для Microsoft Excel, имитирующая механизм сортировки элементов массива простыми включениями
- •Приложение 2. Процедура на языке Turbo Delphi, имитирующая механизм сортировки элементов массива простым выбором
- •Библиографический список
- •Отпечатано в отделе оперативной полиграфии вггу
- •600024, Г. Владимир, ул. Университетская, 2, т. 33-87-40
- •15 Легенда о происхождении игры «Ханойская башня»
3.1. Задача Баше
Приведем пример алгоритма принятия решения (игровой стратегии) в игре «Залача Баше».
Задача 1. Игра Баше для 11 предметов. На столе 11 предметов, например, карандашей. Первый играющий может взять 1, 2 или 3 карандаша. Затем второй играющий может взять 1, 2 или 3 карандаша из оставшихся, затем берет первый и т.д. Итак, поочередно, оба играющих берут не более, чем по 3 карандаша. Проигрывает тот, которому приходится взять последний карандаш. Напишите алгоритм выигрышной стратегии начинающего в этой игре игрока.
Решение. Пусть первый игрок A, второй – B. Здесь мы опишем выигрышную стратегию игрока A. Проведем анализ игры. Чтобы выиграл игрок A, он должен оставить игроку B в последнем ходе 1 предмет. Очевидно, что в предыдущем ходе A должен оставить на столе 5 предметов, иначе он проиграет. В третьем ходе от конца A должен оставить 9 предметов, а всего 11 предметов, следовательно, в третьем ходе от конца или в первом ходе A должен взять 2 предмета.
Алгоритм достижения игроком A победы формулируется так:
Первый ход. A берет 2 предмета.
Очередной ход. Если B в своем ходе берет K карандашей (1≤K≤3), причем не все карандаши взяты, то A берет 4-K карандаша.
Задача 2. Игра Баше для N предметов. Сформулируем задачу в общем виде: имеется n предметов, двое играющих берут по очереди 1, 2 или 3 предмета, проигрывает тот, кто забирает последний предмет, написать алгоритм выигрышной стратегии в этой игре начинающего игрока.
Решение. Разобьем все возможные первоначальные количества предметов n на 4 класса в зависимости от остатка, полученного от деления на 4. К первому классу отнесем количество предметов n, которые можно представить как 4m, ко второму классу отнесем количество предметов n, которые можно представить как 4m+1, к третьему классу отнесем количество предметов n, которые можно представить как 4m+2, к четвертому классу отнесем количество предметов n, которые можно представить как 4m+3. Если первоначальное количество предметов представлено как 4m, то, взяв один предмет, начинающий игрок оставит количество предметов, принадлежащих классу 4m+3, взяв 2 предмета – 4m+2, взяв 3 предмета – 4m+1. Составим соответствующую таблицу перехода из одного класса в другой, в зависимости от взятых в очередной ход предметов.
Количество взятых предметов |
Классы предметов, в зависимости от остатка при делении n на 4 |
|||
4m |
4m+1 |
4m+2 |
4m+3 |
|
1 |
4m+3 |
4m |
4m+1 |
4m+2 |
2 |
4m+2 |
4m+3 |
4m |
4m+1 |
3 |
4m+1 |
4m+2 |
4m+3 |
4m |
Если первоначальное количество предметов 4m+1, то это проигрышное количество предметов для начинающего игрока, потому что сколько бы начинающий не взял предметов, противник вернет его в этот же класс. Единица принадлежит этому классу, тогда возникает необходимость в последней раз начинающему взять один последний предмет. Если первоначальное количество предметов 4m, 4m+2, 4m+3, то выигрышная стратегия начинающего игрока, взять в очередной ход столько предметов, чтобы оставить партнеру количество предметов, принадлежащих классу 4m+1.
Обозначим данные, используемые для составления алгоритмов и программ и выразим зависимость между данными в виде формул. Число предметов – N. Число предметов, взятых первый раз первым игроком (человеком или компьютером) – P, где P = (N-1) mod 4 (остаток от деления N-1 на 4). Число предметов, взятых вторым игроком (человеком) – Y. Число предметов, взятых первым игроком (человеком или компьютером) – С. Между значениями переменных имеется зависимость Y+C = 4. Число оставшихся предметов после очередных ходов N-C-Y. Первый и второй игрок берут в сумме 4 предмета, пока остается больше одного предмета.
Таким образом, исходным данным является первоначальное количество предметов N. Для создания более интересной игровой ситуации целесообразно задавать число N случайным образом в некотором разумном, наперед заданном интервале, например, от 10 до 30.
Составим алгоритм и программу выигрышной стратегии для начинающего игрока, если начальное количество предметов N. Рассмотрим один из подходов к составлению алгоритма решения поставленной задачи: начинает игру первый игрок (человек или компьютер), игра прерывается, если при заданном количестве предметов N, первый игрок при правильной игре выиграть не может.
Словесное описание алгоритма игры Баше, если первый ход Ваш и Вы знаете выигрышную стратегию в этой игре:
1 шаг. Попросите Вашего партнера назвать начальное количество предметов N (если партнер назвал неверное количество предметов, попросите выбрать количество предметов еще раз) и идите на шаг 2.
2 шаг. Найдите остаток от деления N-1 на 4 и присвойте значение остатка переменной P (P:=(N-1) mod 4). Идите на шаг 3.
3 шаг. Сравните P с 0. Если P=0, то сообщите партнеру, что при правильной игре Вы выиграть не можете и идите на шаг 12. Если P<>0, то идите на шаг 4.
4 шаг. Сообщите «Я делаю первый ход» и идите на шаг 5.
5 шаг. Переменной C (количество предметов, взятых Вами за один ход) присвойте значение P (C:=P). Сообщите «Я беру C предметов» и идите на шаг 6.
6 шаг. Переменной N присвойте значение N-C (N:=N-C). Сообщите «Осталось N предметов» и идите на шаг 7.
7 шаг. Сравните N с 1. Если N = 1, то идите на шаг 11. Если N>1, то сообщите «Ваш ход» и идите на шаг 8.
8 шаг. Спросите партнера «Сколько предметов Вы берете?». Переменной Y присвойте значение количества предметов, взятых партнером (Y может равняться 1 или 2, или 3, если партнер взял неверное количество предметов, попросите повторить ход) и идите на шаг 9.
9 шаг. Вычислите 4-Y. Сообщите «Я беру 4-Y предметов» и идите на шаг 10.
10 шаг. Переменной N присвойте значение N-4 (N:=N-4). Сообщите «Осталось N предметов» и идите на шаг 7.
11 шаг. Сообщите «Ваш ход. Вы проиграли» и идите на шаг 12.
12 шаг. Спросите партнера «Хотите сыграть еще?». Если партнер ответил «Да», то идите на шаг 1, иначе – на шаг 13.
13 шаг. Закончите игру.