1. Волчий остров (Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1981.)
Волчий остров размером 20 × 20 заселен дикими кроликами, волками и волчицами. Имеется по несколько представителей каждого вида. Кролики довольно глупы: в каждый момент времени они с одинаковой вероятностью 1/9 передвигаются в один из восьми соседних квадратов (за исключением участков, ограниченных береговой линией) или просто сидят неподвижно. Каждый кролик с вероятностью 0.2 превращается в двух кроликов. Каждая волчица передвигается случайным образом, пока в одном из соседних восьми квадратов не окажется кролик, за которым она охотится. Если волчица и кролик оказываются в одном квадрате, волчица съедает кролика и получает одно "очко". В противном случае она теряет 0.1 "очка". Волки и волчицы с нулевым количеством очков умирают.
В начальный момент времени все волки и волчицы имеют 1 очко. Волк ведет себя подобно волчице до тех пор, пока в соседних квадратах не исчезнут все кролики; тогда если волчица находится в одном из восьми близлежащих квадратов, волк гонится за ней. Если волк и волчица окажутся в одном квадрате и там нет кролика, которого нужно съесть, они производят потомство случайного пола.
Запрограммируйте предполагаемую экологическую модель, понаблюдайте за изменением популяции в течение некоторого периода времени.
2. Задача об инфекции стригущего лишая (Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1981.)
Промоделируйте процесс распространения инфекции стригущего лишая по участку кожи размером n × n (n нечетное) клеток. Предполагается, что исходной зараженной клеткой кожи является центральная. В каждый интервал времени пораженная инфекцией клетка может с вероятностью 0,5 заразить любую из соседних здоровых клеток. По прошествии шести единиц времени зараженная клетка становится невосприимчивой к инфекции, возникший иммунитет действует в течение последующих четырех единиц времени, а затем клетка оказывается здоровой. В ходе моделирования описанного процесса выдавать текущее состояние моделируемого участка кожи в каждом интервале времени, отмечая зараженные, невосприимчивые к инфекции и здоровые клетки.
3. Построение с помощью циркуля и линейки
Составить программу, автоматизирующую процесс построения фигур
на плоскости с помощью циркуля и линейки.
Программа должна уметь выполнять команды:
Программа должна содержать 10-15 стандартных задач на построение школьного курса геометрии, предлагать их для решения и контролировать процесс построения и полученное решение.
4. Морской бой
Составить программу, позволяющую играть в морской бой игроку с компьютером. Программа должна позволять расставлять корабли на поле 10 × 10, контролировать правильность их расстановки, делать противникам поочередно ходы и выдавать соответствующие информационные сообщения. Когда в качестве одного из игроков выступает компьютер, программа должна анализировать предыдущие ходы и следующий делать на основе проведенного анализа.
5. Обучающе-контролирующая программа "Сложение и вычитание отрицательных чисел"
Составить программу, обучающую учащихся 6 класса сложению и вычитанию отрицательных чисел (см. учебник "Математика 6" Нурка или Виленкина), а также предлагающую серию заданий различной сложности для закрепления навыков действий над такими числами.
6. "Математико" (итальянская игра) (Б.А. Кордемский. Математическая смекалка. СПб.: "Манускрипт", 1994. 496 с.)
Имеется набор из 52 карточек, на которых записаны числа от 1 до 13, причем карточки с каждым из этих чисел встречаются четырежды. Разработать программу, которая позволяет имитировать игру человека с компьютером. Имеется квадратное поле с 25 клетками. Программа случайным образом извлекает какую-либо из имеющихся карточек и выдает записанное на ней число. Каждый игрок заносит это число в одну из клеток квадрата. Так продолжается до тех пор, пока не будут заполнены все клетки квадрата.
По окончанию игры заполнение соответствующего квадрата оценивается определенным количеством очков. Цель игры разместить числа в клетках так, чтобы набрать наибольшее количество очков в соответствии с данной таблицей:
Комбинации чисел | В ряду или столбце | По диагонали |
За 2 одинаковых числа | 10 очков | 20 очков |
За 2 пары одинаковых чисел | 20 очков | 30 очков |
За 3 одинаковых числа | 40 очков | 50 очков |
За 3 одинаковых числа и два других одинаковых числа | 80 очков | 90 очков |
За 4 одинаковых числа | 160 очков | 170 очков |
За 5 последовательных чисел, но не обязательно по порядку расположенных | 50 очков | 60 очков |
За три раза по 1 и два раза по 13 | 100 очков | 110 очков |
За числа 1, 13, 12, 11 и 10, но не обязательно по порядку расположенных | 150 очков | 160 очков |
За 4 единицы | 200 очков | 210 очков |
Разработать для компьютера наиболее оптимальную стратегию заполнения квадрата.
7. Заполнение готовых форм с помощью информации из базы данных
Имеется база данных, содержащая сведения о некоторой группе людей (каждая запись содержит до 10 полей). Составить программу, которая, используя сведения из базы данных, позволяет заполнять некоторые документы (стандартные письма, приглашения, визитки, отчеты и т.д.), вписывая эти сведения в нужные места в указанных документах в соответствующих падежах, лицах, временах и т.д.
8. Карточные игры
Составить программу, которая раздает игральные карты заданному количеству игроков (одним из игроков является человек, за остальных играет компьютер) и моделирует игру "в дурака". Компьютерная программа играет случайным образом, без анализа уже вышедших карт. Количество игроков не превышает шести.
9. "Крестики-нулики"
Составить программу, позволяющую играть на бесконечном поле в "крестики-нулики":
а)* игроку с компьютером;
б) двум игрокам.
Если в качестве игрока выступает компьютер, программа делает первый ход.
Делая очередной ход, программа анализирует ситуацию, рассчитывая
возможные ходы противника вперед на 1-2 хода, и в результате
проведенного анализа поступает наиболее оптимально.
10. "Быки и коровы"
Составить программу, позволяющую играть в "Быки и коровы":
а) игроку с компьютером;
б) двум игрокам.
Каждый из противников задумывает четырехзначное число, все цифры которого различны (первая цифра числа отлична от нуля). Необходимо разгадать задуманное число. Выигрывает тот, кто отгадает первый. Противники по очереди называют друг другу числа и сообщают о количестве "быков" и "коров" в названном числе ("бык" цифра есть в записи задуманного числа и стоит в той же позиции, что и в задуманном числе; "корова" цифра есть в записи задуманного числа, но не стоит в той же позиции, что и в задуманном числе).
Например, если задумано число 3275 и названо число 1234, получаем в названном числе одного "быка" и одну "корову". Очевидно, что число отгадано в том случае, если имеем 4 "быка".
11. "Числовые головоломки"
Составить программу, которая:
1) предлагает игроку числовые головоломки
типа ОДИН + ОДИН = МНОГО из некоторого набора таких
головоломок (до 30);
2) позволяет решить головоломку;
3) контролирует правильность решения.
12. "Графики"
Составить программу, которая предлагает пользователю некоторый список функций для построения графиков (например, y = ax2 + bx + c, y = asin x + b и т.д. до 25 наименований). После выбора соответствующей функции, задания коэффициентов и отрезка, на котором выполняется построение, программа строит указанный график. Затем значение коэффициентов и положение графика можно менять (например, с помощью клавиш управления курсором), после чего график перестраивается и записывается обновленное уравнение соответствующей кривой.
13. Игра "Две лисы и 20 кур"
На поле указанной формы (см. рисунок ниже) находятся две лисы и 20 кур. Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы также могут перемещаться только на один шаг, но также и вверх как вниз, влево и вправо. Лиса может съесть курицу как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу и берет ее. Лисы всегда обязаны есть и, когда у них есть выбор, они обязаны осуществлять наиболее длинное поедание. Если два приема пищи имеют одинаковую длину, осуществляется один из них по выбору лисы.
Составить программу, которая играет за лис. Игрок перемещает кур. Партнеры играют по очереди, причем куры начинают. Они выигрывают партию, если девяти из них удается занять 9 полей, образующих верхний квадрат игры.
Начальное положение кур и лис изображено на рисунке.
Лисы выигрывают, если им удается съесть 12 кур, так как тогда оставшихся кур недостаточно, чтобы занять 9 верхних полей.
14. Программа "Игры со спичками"
Составить программу, которая
1) предлагает игроку головоломки со спичками из некоторого набора таких
головоломок (до 30 штук);
2) позволяет решить головоломку, передвигая спички;
3) контролирует правильность решения.
15. Графика в Turbo Pascal
Составить программу, демонстрирующую все графические возможности Turbo Pascal и обучающую работе с основными графическими процедурами и функциями. Программа должна проконтролировать усвоение изученного материала (в виде теста или какой-либо другой форме).
16. Игра в слова
Составить программу, позволяющую компьютеру и человеку играть в слова. Предварительно программа объясняет правила игры и позволяет уточнить их в любой момент.
Тематикой игры могут быть по выбору города, животные, растения и т.д. Тематику из предложенных компьютером (не менее 5) выбирает человек. Для игры компьютер использует собственную базу данных (для каждой тематики свою), хранящуюся в виде текстового файла. Если названное человеком слово отсутствует в базе, уточняется, правильно ли оно названо, и в случае правильности заносится в базу, иначе уточняется. Правила игры: называется слово, и другой игрок должен предложить другое, начинающееся с той буквы, на которую оканчивается названное.
17. Ребусы
Выбрав какой-либо школьный предмет (информатика, математика и т.д.), подобрать ребусы по нему и предложить их для решения. Программа должна позволять выбрать тот или иной ребус, проконтролировать его решение и подвести итоги при завершении работы.
От составителя: если у посетителей страницы есть аналогичные учебные проекты, с удовольствием размещу их у себя и буду использовать в работе, сделав соответствующую ссылку.