Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания по программированию 1 часть.doc
Скачиваний:
1
Добавлен:
13.08.2019
Размер:
410.11 Кб
Скачать

Лабораторная работа № 4.

Тема: "Указатели". (6 часов)

    1. Составить программу, моделирующую тасование карт в колоде. Принять количество карт равным 52. После тасования раздается 5 карт. Требуется определить, находится ли на руках две запрошенные карты.

    2. Написать программу, моделирующую лабиринт. В качестве символа стен выберите символ «#». В лабиринте должно быть не более N входов и выходов. Попробуйте составить рекурсивную функцию, которая будет искать выход из лабиринта, начиная с некоторой начальной позиции.

    3. Составить модель гонки черепахи и зайца. Соперники начинают гонку в первой клетке из 70. Трасса идет в гору, так что соперники могут соскальзывать назад. С каждым тактом программы устанавливать позицию животных согласно правилам:

Животное

Тип движения

Процент времени

Перемещение

Черепаха

Быстрое ползанье

50 %

3 клетки вправо

Скольжение

20%

6 клеток влево

Медленное ползанье

30%

1 клетка вправо

Заяц

Сон

20%

Движения нет

Большой прыжок

20%

9 клеток вправо

Сильное скольжение

10%

12 клеток влево

Маленький прыжок

30%

1 клетка вправо

Маленькое скольжение

20%

2 клетки вправо

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

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

6. Имеются N-точек, соединенных отрезками. Составить программу, находящую наименьший путь от одной точки до другой. Для реализации желательно воспользоваться рекурсией.

7. Имеются две точки – например, A и B. В некоторый момент времени точка В начинает движение (в направлении, определяемом по нажатию кнопок клавиатуры). Скорость точки В больше скорости точки А. Составить программу, которая стремится наиболее коротким способом передвинуть точку А к точке В.

8. Имеется группа белых и серых мышей количеством N, расположенных хаотически. Между ними имеются M свободных мест. Составить программу, моделирующую процесс разделения мышей на серых и белых (например, серые выше, белые – ниже) по правилу: каждая мышь может занимать только свободную рядом с ней позицию; за один такт программы мышь может переместиться не более чем в одну позицию.

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

Событие

Вероятность наступления события

Рождение клетки

35% ( N – четное); 20% (N – нечетное)

Рождение 2-х клеток

25% через каждые 5 тактов

Смерть клетки

30%

Массовое вымирание (сокращение численности в 2 раза)

10%

Численность не изменяется

0%, 15%, 25%, 40% - в зависимости от перечисленных выше значений.

10. Составить программу, моделирующую тасование двух колод карт одновременно друг с другом и затем разделяющую эти колоды по правилам:

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

  2. Если такая карта уже имеется в колоде, то она пропускается и другая карта вытаскивается для второй колоды.

  3. Вытаскивание карт продолжается до тех пор, пока все карты не будут розданы.

  4. Карты раздаются в порядке возрастания, вне зависимости от масти.

Для реализации программы можно использовать рекурсию.