Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pascal.pdf
Скачиваний:
114
Добавлен:
20.04.2015
Размер:
980.04 Кб
Скачать

 

36

Программирование на языке Pascal

End.

Результат работы такой программы приведен на рисунке ниже

Рисунок 15

Вещественные числа

В случае вещественных чисел мы можем не только указывать количество символов, которое необходимо выделить на отображение числа, но и точность, или, иными словами

– количество знаков после запятой. Реализуется аналогичным с целочисленными переменными способом.

WriteLn(RealNumber:Длина:Точность);

Например, в результате выполнения следующего кода

Uses crt;

Var f: Real;

Begin

ClrScr;

f:=3.14159;

WriteLn(f:6:2);

End.

будет выведено на экран « 3.14», т.к. на все число (включая десятичную точку) было выделено 6 символов, а на часть после запятой – 2.

Генерация псевдослучайных значений

Во многих приложениях, начиная от игр и заканчивая серьезными криптографическими системами, существует потребность в генерации последовательности случайных чисел. Самый просто пример – это программа «Сапер», поставляемая со всеми операционными системами семейства Windows. В этой программе мины каждый раз располагаются в совершенно случайных местах (на приведенном ниже примере мы специально проиграли, чтобы продемонстрировать случайное расположение мин).

Рисунок 16

36

 

37

Программирование на языке Pascal

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

Чтобы генерировать псевдослучайное число в Pascal необходимо выполнить два шага:

1.инициализировать генератор псевдослучайных чисел при помощи процедуры randomize;

2.получить сгенерированное число, используя функцию random(). Инициализация (или, грубо говоря – «включение и подготовка к работе») необходима для того, чтобы генератор случайных чисел не генерировал повторяющиеся значения. Инициализацию достаточно выполнить один раз за время работы программы, например –

всамом ее начале.

Функция random()генерирует либо вещественные числа от 0 до 1, либо целые числа в диапазоне от 0 до числа, указанного в качестве ее параметра (в скобках).

Приведем пример использования генератора псевдослучайных чисел в Pascal:

Uses crt;

Var intRnd: Integer;

floatRnd: Real;

Begin

ClrScr;

Randomize; {Инициализация генератора} intRnd:=random(10); {в переменную intRnd будет записано

целое случайное число от 0 до 10} floatRnd:=random; {в переменную floatRnd будет записано вещественное случайное число от 0 до 1}

WriteLn('Случайное целое число: ', intRnd); WriteLn('Случайное вещественное число: ', floatRnd:6:2);

End.

10 Правда, существуют специальные Web-сервисы, которые возвращают действительно случайные числа. Но это уже программно-аппаратная платформа, представляющая собой радиоприемник, настроенный на специфическую, неиспользуемую людьми волну, оцифровывающей сигнал и транслируя его. Кроме того, существуют действительно генераторы случайных чисел, например устройство /dev/random в операционных системах LINUX\UNIX, считающее такты процессора, но и они обладают некоторыми недостатками.

37

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