Студопедия
rus | ua | other

Home Random lecture






Генерация случайных чисел.


Date: 2015-10-07; view: 467.


Функции обработки числовых данных.

В ряде случаев приходится применять функции округленияFIX и INT.

FIX – математическая функция, возвращающая целую часть числового выражения

FIX(числовое выражение)

Функция отбрасывает дробную часть аргумента. Для положительных аргументов функции INT и FIX являются тождественными, но для отрицательных значений FIX выдает первое отрицательное целое больше аргумента, тогда как INT выдает первое отрицательное целое меньше аргумента. Еще одна функция - CINTпреобразует числовое выражение в целое число путем округления дробной части.

Пример: сравнение функций INT, CINT и FIX

CLS

?"N","INT(N)","CINT(N)","FIX(N)": ?

FOR I=1 NJ 6

READ N

? N, INT(N), CINT(N),FIX(N)

NEXT I

READ 9.3, 99.5, 99.7, -99.3, -99.5, -99.7

 

Результат на экране:

N INT(N) CINT(N) FIX(N)

99.3 99 99 99

99.5 99 100 99

99.7 99 100 99

-99.3 -100 -99 -99

-99.5 -100 -100 -99

-99.7 -100 -100 -99

 

 

В ряде задач требуется использовать числа выбранные случайным образом. Например: программирование игр, цветной калейдоскоп или звездное небо на экране, исследование сложных вероятностных систем. Для генерации случайных чисел предназначена функция RND, которая выбирает число из диапазона от 0 до 1.

RND(n) , где n – определяет как генерируется следующее число (n можно опустить).

Часто потребуется диапазон чисел не от 0 до 1. Общая формула для выбора диапазона имеет вид:

Х=INT((MAX-MIN)*RND(n))+MIN

Х – случайное число; MAX –правая граница, MIN – левая граница диапазона. Например:

Диапазон от 0 до 250: X=INT(250*RND)

Если не принять мер, то при каждом запуске программы RND генерирует одну и ту же последовательность случайных чисел. Чтобы избежать этого, вы можете предварительно "инициализировать" генератор случайных чисел, - с помощью оператораRANDOMIZE TIMER

Пример: узор

СLS

RANDOMIZE TIMER

SCREEN 9

FOR I=1 TO 1000

FOR J=0 TO 15

LINE(I,INT(RND*750)-(INT(RND*750)))-(RND*200,RND*I),J

NEXT J

NEXT I

 

Пример: игра "бросание костей"

CLS

RANDOMIZE TIMER

10 D1=INT(RND-6)+1

D2=INT(RND-6)+1

?"Выпало";D1;"и";D2;" сумма";D1+D2

INPUT"Еще Y/N";F$

IF F$="N" OR F$="n" THEN 10

END

 

Задания для самостоятельной работы

1. Составьте программу заполнения экрана точками расположенными случайным образом (звездное небо).

2. Составьте программу выбирающую случайным образом 6 целых чисел из интервала от 1 до 49. (Спортлото)


<== previous lecture | next lecture ==>
Работа с функциями. | Понятие массива.
lektsiopedia.org - 2013 год. | Page generation: 0.154 s.