Предварительное проектирование программного обеспечения
Задачи для курсовой работы
По курсу «Технология программирования»
В соответствии с вариантом студенту выдается задача, которую ему предстоит решать в течение семестра.
Таблица 1
Номер варианта | Название задачи | Фамилия И.О. студента |
Ханойская башня | ||
Пятнадцать | ||
Вращающийся квадрат | ||
Кости | ||
Игра в слова | ||
Ипподром | ||
Коровы и быки | ||
Подбери ключи | ||
Расположение курсора | ||
Обучение работе с клавиатурой | ||
Запоминание исторических дат | ||
Сбей самолет | ||
Морской бой | ||
Заучивание слов иностранного языка | ||
Тренировка памяти | ||
Угадай число | ||
Изучение созвездий | ||
Изучение движения тела, брошенного под углом к горизонту | ||
Изучение колебаний математического маятника | ||
Шахматная программа (с условиями) | ||
Крестики-нолики | ||
100 спичек | ||
Ним | ||
Сумма чисел | ||
Задача со спичками 1 | ||
Задача со спичками 2 | ||
Задача со спичками 3 | ||
Калькулятор | ||
Простейший текстовый редактор | ||
Простейший музыкальный редактор | ||
Можно самостоятельно найти другую подобную задачу. |
Задачи. Описание.
1. «Ханойская башня». Доска имеет три колышка. На первом нанизано m дисков убывающего вверх диаметра. Расположить диски в том же порядке на другом колышке. Диски можно перекладывать с колышка на колышек по одному. Класть большой диск на меньший не разрешается.
2. «Пятнадцать». На квадратном поле размером 4x4 с помощью датчика случайных чисел расставлены 15 фишек с номерами от 1 до 15. Имеется одна свободная позиция. Расставить фишки по возрастанию их номеров. Передвигать фишки можно только на соседнюю свободную позицию.
3. «Вращающийся квадрат». Дан квадрат размером 4x4 клетки,
в которых с помощью датчика случайных чисел расставлены буквы от А до Р. Упорядочить буквы в квадрате по алфавиту. Квадрат имеет подквадраты, которые можно вращать по часовой стрелке на одну клетку. Подквадраты имеют размер 2x2, и указывается номером левой верхней клетки. Предусмотрена операция, которая может быть выполнена один раз: обмен местами двух букв.
4. «Кости». Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 («бросает кубик», на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он также выигрывает сделанную ставку. Если сумма выпавших цифр больше 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков.
5. «Игра в слова». Программа выбирает слово и рисует на экране
столько прочерков, сколько букв в этом слове. Нужно отгадать, какое слово загадано программой. В каждый ход играющий указывает одну букву. Если названа буква, входящая в состав слова, она подставляется вместо соответствующего прочерка. В противном случае играющий теряет 1 очко. В начальный момент у играющего 15 очков.
6. «Ипподром». Играющий выбирает одну из трех лошадей,
состязающихся на бегах, и выигрывает, если его лошадь приходит
первой. Скорость передвижения лошадей на разных этапах выбирается программой с помощью датчика случайных чисел.
7. «Коровы и быки». Программа выбирает с помощью датчика
случайных чисел четырехзначное число с разными цифрами.
Угадать это число. На каждом шаге играющий называет четырехзначное число, а программа сообщает, сколько цифр числа угадано («быки») и сколько цифр угадано и стоит на нужном месте («коровы»). Например, если программой задано число 1294, а играющий назвал 1423, он получит ответ «1 'корова, 3 быка».
8. «Подбери ключи». Перед играющим четыре запертые двери.
Открыть все двери, имея десять ключей, каждый из которых может открыть несколько дверей. Предоставляется 14 попыток.
9. Требуется ввести курсор в область экрана (небольшой круг), расположение которого неизвестно играющему. Передвижение курсора сопровождается звуковым сигналом: если приближается к области, то звук становится выше; если удаляется — ниже.
10. Составить программу обучения работе с клавиатурой.
Программа должна выдавать на экран буквы, цифры, слова и фразы, которые следует набрать на клавиатуре.
11. Составить программу, помогающую в запоминании исторических дат. Программа должна предлагать вопросы, контролирующие знание дат исторических событий, например, «В каком году была Куликовская битва?». Если ответ правильный, должен быть предложен следующий вопрос. Если ответ не верен, программа подскажет правильный ответ, а позднее повторит этот вопрос еще раз.
12. «Сбей самолет». По экрану летят вражеские самолеты. Цель сбить их. Пусковая установка находится в нижней части экрана. Пусковую установку можно перемещать по строке налево и направо.
13. «Морской бой». На поле 10x10 позиций стоят невидимые вражеские корабли: 4 корабля по 1 клетке, 3 корабля по 2 клетки, 2 корабля по 3 клетки, 1 корабль в 4 клетки. Необходимо поразить каждую из клеток кораблей. Позиции указываются буквами от А до К (по строкам) и от 1 до 10 (по столбцам). Конфигурация и положение кораблей на поле выбираются с помощью датчика случайных чисел. Если клетка корабля угадана играющим верно, она отмечается крестиком; в противном случае - точкой.
14. Составить программу для заучивания слов иностранного языка. Программа должна предлагать слова из некоторого списка на одном языке, обучающийся - дать перевод этого слова на другой язык. Если ответ правильный, предлагается следующий вопрос. Если ответ не верен, программа подскажет правильный ответ, а позднее повторит этот вопрос еще раз.
15. Составить программу для тренировки памяти. Программа
должна высветить на экране несколько точек, играющий - указать, в каком порядке эти точки были высвечены. Координаты точек выбираются в программе с помощью датчика случайных чисел.
16. «Угадай число». Один из играющих задумывает число от 1 до 1000, другой пытается угадать его за 10 вопросов типа: верно ли, что задуманное число больше такого-то числа. Написать программу, играющую за отгадчика.
17. Составить программу для изучения созвездий. Программа должна построить на экране изображение созвездия, обучающийся - назвать его. Если ответ правильный, должен быть предложен следующий вопрос. Иначе - программа подскажет правильный ответ, а позднее повторит этот вопрос еще раз.
18. Составить программу, помогающую в изучении движения тела, брошенного под углом к горизонту с некоторой начальной скоростью. Играющий, зная расстояние от человека, бросающего камень, до лунки и ширину лунки, должен задать такие значения угла «альфа» и начальной скорости V, чтобы камень попал в лунку. На экране должны изображаться поверхность земли, лунка, камень и траектория полета камня. Расстояние от человека, бросающего камень, до лунки и ширины лунки выбирать с помощью датчика случайных чисел.
19. Составить программу, помогающую в изучении колебаний математического маятника. Маятник должен двигаться на экране, совершая гармонические колебания, период которых выбран с помощью датчика случайных чисел. Играющий должен указать длину нити, на которой подвешен маятник. Ответ считается правильным, если ошибка не превышает 10%.
20. Написать шахматную программу, играющую за белых:
а) королем и ферзем против короля;
б) королем и двумя ладьями против короля
в) королем, ферзем и ладьей против короля.
21. Написать программу, играющую в «крестики-нолики».
22. «100 спичек». Из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут по несколько спичек: не менее одной и не более десяти. Проигрывает взявший последнюю спичку.
23. «Ним». Имеются три кучки спичек. Двое играющих по очереди делают ходы. Каждый ход заключается в том, что из одной какой-то кучки берется произвольное ненулевое число спичек. Выигрывает взявший последнюю спичку.
24. Компьютер и пользователь поочередно «называют» число,
не превышающее 10. Эти числа складываются одно за другим. Выигрывает тот, кто первым достигнет 100. (Обобщить задачу на ввод произвольных чисел вместо 10 и 100).
25. В ряд расположены 15 спичек. Требуется собрать их в 5 кучек
по 3 спички в кучке, перекладывая спички по одной. Каждую спичку можно переносить только через три других. (Обобщить задачу на ввод произвольных чисел вместо 15 и 3).
26. Разложить спички в три кучки, например, по 12, 10 и 7 спичек в кучке. Компьютер и пользователь поочередно берут из кучек некоторое количество спичек, но только из одной кучки. Можно взять сразу всю кучу. Выигрывает тот, кто последним возьмет спички.
27. Десять спичек положены в один ряд. Распределить их попарно, всего 5 пар, перекладывая по одной спичке через две. (Обобщить задачу на ввод произвольных чисел вместо 10 и 2).
28. Написать программу «калькулятор».
29. Написать программу простейшего текстового редактора.
30. Написать программу простейшего музыкального редактора.
Раздел 1
Предварительное проектирование программного обеспечения
Цель работы:Проведение предварительного проектирования конкретной программы.
Составить перечень требований и функциональных характеристик разрабатываемой программы.
Разработка документа «Постановки задачи».