![]() |
Генерация случайных чисел.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. (Спортлото)
|