Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
740
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

992. «Подбери ключи». Перед играющим четыре запертые двери. Открыть все двери, располагая десятью ключами, каждый из которых может открыть несколько дверей. Предоставляется 14 попыток.

993. Требуется ввести курсор в область экрана (небольшой круг), расположение которого неизвестно играющему. Передвижение курсора сопровождается звуковым сигналом: если курсор приближается к области, то звук становится выше; если удаляется - ниже.

994. «Морской бой». На поле 10× 10 позиций стоят невидимые вражеские корабли: 4 корабля по 1 клетке, 3 корабля по 2 клетки, 2 корабля по 3 клетки, 1 корабль в 4 клетки (рис. 117). Необходимо поразить каждую из клеток кораблей. Позиции указываются русскими буквами от А до К (по строкам) и цифрами от 1 до 10 (по столбцам). Конфигурация и положение кораблей на поле выбираются с помощью

датчика случайных чисел. Если клетка корабля угадана играющим верно, она отмечается крестиком; в противном случае точкой.

Рис. 117 995. «Мост». Дан мост с арками разной ширины (рис. 118), в

нижней строке экрана расположен мяч, которым можно управлять: мяч можно перемещать по строке, останавливать в нужной позиции строки и катить к мосту. Очки начисляются, если мяч проходит через арку.

Рис. 118

996.«Сбей самолет». По экрану летят вражеские самолеты. Цель - сбить их. Пусковая установка находится в нижней строке экрана. Пусковую установку можно перемещать по строке вперед и назад.

997.Составить программу для обучения устному счету. На каждом шаге должны предлагаться числа и арифметические действия, которые следует выполнить над этими числами.

998.Составить программу для обучения переводу чисел из десятичной системы счисления в двоичную и обратно. Программа должна предлагать десятичное (двоичное) число, выбранное с помощью датчика случайных чисел, обучающийся -назвать это число в двоичной (десятичной) системе счисления.

999.Составить программу для обучения переводу чисел из двоичной системы счисления в восьмеричную и шестнадцатеричную и обратно (см. предыдущую задачу).

1000. Составить программу обучения работе с клавиатурой. Программа должна выдавать на экран буквы, цифры, слова и фразы, которые следует набрать на клавиатуре.

1001. Составить программу, помогающую в запоминании исторических дат. Программа должна предлагать вопросы, контролирующие знание дат исторических событий, например, «В каком году была Куликовская битва?» Если ответ правильный, должен быть предложен следующий вопрос. Если ответ не верен, программа подскажет правильный ответ, а позднее повторит этот же вопрос еще раз.

1002. Составить программу для заучивания слов иностранного языка. Программа должна предлагать слова из некоторого списка на одном языке, обучающийся - дать перевод этого слова на другой язык.

1003. Составить программу для изучения созвездий. Программа должна строить на экране изображение созвездия, обучающийся - назвать его.

1004. Составить программу для тренировки памяти. Программа должна высветить на экране несколько точек, играющий - указать, в каком порядке эти точки были высвечены. Координаты точек выбираются в программе с помощью датчика случайных чисел.

1005. Составить программу, помогающую в изучении колебаний математического маятника. Маятник должен двигаться на экране, совершая гармонические колебания, период которых выбран с помощью датчика случайных чисел. Играющий должен указать длину нити, на которой подвешен маятник. Ответ считается правильным, если ошибка не превышает 10%.

1006. Составить программу, помогающую в изучении движения тела, брошенного под углом к горизонту с некоторой начальной

скоростью. Играющий, зная расстояние от человека, бросающего камень, до лунки и ширину лунки, должен задать такие значения угла α и начальной скорости v, чтобы камень попал в лунку. На экране должны изображаться поверхность земли, лунка, камень и траектория полета камня. Расстояние от человека, бросающего камень, до лунки и ширину лунки следует выбирать с помощью датчика случайных чисел.

1007. Написать программу, играющую в «крестики - нолики». 1008. Написать шахматную программу, играющую за белых: а) королем и ферзем против короля; б) королем и двумя ладьями против короля.

1009. «100 спичек». Из кучки, первоначально содержащей 100 спичек, двое играющих поочередно берут по несколько спичек: не менее одной и не более десяти. Проигрывает взявший последнюю спичку.

1010. В условие предыдущей задачи вносится изменение: взявший последнюю спичку выигрывает.

1011. «Угадай число». Один из играющих задумывает число от 1 до 1000, другой пытается угадать его за десять вопросов вида: верно ли, что задуманное число больше такого-то числа. Написать программу, играющую за отгадчика.

1012. «Ним». Имеются три кучки спичек. Двое играющих по очереди делают ходы. Каждый ход заключается в том, что из одной какой-то кучки берется произвольное ненулевое число спичек.

Выигрывает взявший последнюю спичку.

1013. «Цзяньшидзы». Имеются две кучки камней. Двое играющих по очереди делают ходы. Каждый ход может состоять в одном из двух:

1) берется произвольное ненулевое число камней из какой-то одной кучки;

2) берется одновременно по одинаковому ненулевому числу камней из обеих кучек.

Выигрывает взявший последний камень. Пара (a, b), где a и b - количество камней в кучках при a < b, является проигрышной, если число a оканчивается в «фибоначчиевой» системе (см. задачу 604) четным числом нулей, а число b получается из a приписыванием еще одного нуля в конце.

§ 34. Предметы и группы предметов с фиксированными свойствами

1014. Магическим квадратом порядка п называется квадратная таблица размера n × n , составленная из чисел 1, 2, ..., n2 так, что суммы по каждому столбцу, каждой строке и каждой из двух диагоналей равны между собой. Дана целочисленная квадратная матрица порядка 5; определить, является ли она магическим квадратом.

1015. Латинским квадратом порядка п называется квадратная таблица размера n × n , каждая строка и каждый столбец которой содержит числа 1, 2, ..., n. Дана целочисленная квадратная матрица порядка 5; определить, является ли она латинским квадратом.

1016. Дана целочисленная матрица [ai j ]i = 1,..., n ; j = 1,..., m , каждый

элемент которой равен 0, 1, 2 или 3. Определить количество четверок ai j , ai+ 1 j , ai j+ 1, ai+ 1j+ 1 , в каждой которых все элементы различны.

1017. Даны целые числа a1 , ..., an . Определить, является ли эта последовательность периодической (т.е. может ли она быть получена повторениями некоторой своей начальной части). Из всех периодов указать наименьший.

1018. Даны действительные числа a1 , ..., an . Найти самый длинный отрезок ap , ap+ 1,...,ap+ m данной последовательности, элементы которого удовлетворяют соотношениям ap < ap+ 1 > ap+ 2 < ... > ap+ m .

1019. Даны целые числа a1,...,an . Является ли после-

довательность a1,...,an перестановкой чисел 1, ..., n?

1020. Элемент матрицы называется седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Дана действительная матрица размера 5× 6. Выяснить, имеются ли седловые точки в этой матрице, и если имеются, то указать индексы одной из них.