Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Лабораторная работа 9. Звездное небо и прочие странности

1. Получение случайного числа

При создании некоторых программ (например, игр) требуется получение случайного числа при каждом запуске программы, а также различные случайные числа во время ее работы (например, если Вы моделируете на компьютере игру в кости, в карты и т.п.). Для этих целей создана специальная функция10

Random(num : word) : word; .

Эта функция выдает случайные числа в промежутке от 0 до num-1, где num - целое положительное число.

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

Randomize; ,

которая помещается в программе до использования функции Random.

Посмотрим, как это работает.

Задание 1

Скопируйте в Ваш каталог файлы rnd_1.pas, rnd_2.pas и rnd_3.pas. Запустите среду Turbo Pascal.

Задание 2

Считайте программу из файла rnd_1.pas и разберитесь, как она работает и что выдает на экран дисплея. Для этого запустите эту программу 2-3 раза и определите, какую последовательность чисел она выдает: одну и ту же при каждом запуске или различные.

Задание 3

Считайте программу из файла rnd_2.pas и разберитесь, как она работает и что выдает на экран дисплея. Для этого запустите эту программу 2-3 раза и определите, какую последовательность чисел она выдает: одну и ту же при каждом запуске или различные. Определите, в чем отличие этих программ.

Задание 4

Считайте программу из файла rnd_3.pas и разберитесь, как она работает. Выясните роль функции keypressed.

2. Рисование точек в графическом режиме

Точки в языке Pascal рисуются достаточно просто: достаточно воспользоваться процедурой

PutPixel(X, Y : integer; Color: word); .

Эта процедура позволяет рисовать на экране точку с координатами X и Y цветом Color (word - это описание переменных целого типа, значения которых меняются от 0 до 65535).

Например, если Вам хочется нарисовать точку голубого цвета с координатами (100,200), то потребуется лишь в программе обратиться к процедуре вывода точки следующего вида:

PutPixel(100,200,blue);

Если же Вам требуется узнать цвет точки, непременно воспользуйтесь функцией GetPixel(X, Y : integer) : word; - возвращает цвет точки с координатами X и Y.

Функцией пользуются немного иначе, чем процедурой. Например, если Вы хотите узнать, какого цвета точка на экране дисплея с координатами (100,200), Вам необходимо завести переменную типа Word и записать следующие строки в тексте программы:

...

var Col:Word; {объявили такую переменную}

...

Col:=GetPixel(100,200);

...

Если цвет данной точки голубой, то значением переменной Col станет число 1.

  • Обратите внимание на различия между исполь­зованием процедуры и функции. Процедура использу­ет­ся как отдельная команда, а функция применяется в выражениях - ее значение присваивается какой-либо переменной (см., например, PutPixel и GetPixel).

Задание 5

Составьте программу “Звездное небо” для режима графики. Имейте в виду, что точек требуется существенно больше и координаты х и у имеют значительно большие значения (для дисплеев типа VGA x изменяется от 0 до 639, а y - от 0 до 479).

Задание 6

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

Задание 7**

Игра «Черный Джек» (еще ее часто называют “Очко”) заключается в том, что:

а) каждой карте соответствует определенное число:

шестерка - 6

девятка - 9

дама - 3

семерка - 7

десятка - 10

король - 4

восьмерка - 8

валет - 2

туз - 11;

б) участники игры получают из колоды карты по одной и считают полученные баллы. В зависимости от суммы игрок может сказать, что ему хватит или попросить еще одну карту. выигрывает тот из игроков, сумма баллов которого ближе к 21. Тот, кто набрал больше двадцати одного (“перебор”) проиграл.

Составьте программу, которая позволяет человеку играть в эту игру вдвоем с компьютером (ведь для этого карты вовсе не обязательны, так как можно получать с помощью функции Random случайные числа от 2 до 11).

  • Продемонстрируйте преподавателю все разработанные Вами программы.

Задание 8

Закройте все окна ([Alt]+[F3]) и выйдите из среды Turbo Pascal. Удалите файлы rnd_1.pas, rnd_2.pas и rnd_3.pas.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]