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


Выработка случайных величин



бет7/13
Дата28.06.2016
өлшемі479.5 Kb.
#163119
1   2   3   4   5   6   7   8   9   10   ...   13

Выработка случайных величин.

Для выработки случайных чисел используется специальный алгоритм, который вырабатывает случайные числа, начиная с заданного числа. Чтобы числа были разные, надо изменять заданное число.

Рассмотрим программу, которая вырабатывает случайные числа. Начиная с 1.

RANDOMIZE 1 '1 – есть задаваемое начальное число.

A=RND 'переменной А присваивается случайное значение из промежутка 0,1.



PRINT A 'печатаем на экран значение А

Оператор RANDOMIZE включает генератор случайных чисел. Начальным заданным числом является 1. Если запускать программу несколько раз, каждый раз будет получатся одно и то же случайное число. Если вместо 1 поставить другое число, случайное значение изменится. Такой метод не годится для выработки последовательности случайных чисел. Однако можно для последующего случайного числа в качестве задаваемого брать предыдущее случайное число.

Пример:


RANDOMIZE 1

A = RND



PRINT A

RANDOMIZE A 'меняем задаваемое исходное число

B = RND



PRINT B

При использовании цикла можем генерировать много чисел.

Пример:


FOR i = 1 TO 10

RANDOMIZE A

A = RND



PRINT A

NEXT i

Эта программа даёт 10 случайных чисел, но при её последующем запуске получим те же числа, что не всегда удобно.

Следующая программа представляет собой лототрон, т.е. колесо, смешивающее числа, останавливается при нажатии любой клавиши и выдаёт число.



DO

RANDOMIZE A

A = RND



LOOP UNTIL INKEY$ <> ""

PRINT "Выпало случайное число:"; A
В этом случае числа будут разные, т.к. клавиша будет нажиматся в разное время.

В данной версии Бейсика удобно в качестве начального задаваемого числа использовать число, которое даёт функция TIMER.

Пример:


RANDOMIZE TIMER

A = RND



PRINT A

В этом случак случайные числа зависят от момента запуска прграммы.

Функция RANDOM вырабатывает числа из промежутка 0,1. Если нужно большее число, надо использовать математические выражения:





Надо получить:

Пишем:

A является случайным числом между 0 и 10

A=RND*10

A является случайным числом между 0 и 9

A=INT(RND*10)

A является случайным числом между 1 и 10

A=INT(RND*10+1)

Ниже приведена программа, которая вырабатывает целые случайные числа из промежутка от А до В.

RANDOMIZE TIMER

PRINT "Эта программа находит целые случайные числа из промежутка от А до В"
INPUT "Введи A";A

INPUT "Введи B";B
J=INT(RND*(B-A+1)+A)
PRINT J




12. Задания





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




  1. Программа решения уравнения Ах+В=Dx+C. Программа запрашивает значения А,В,С и D и выясняет сколько решений имеет уравнение или не имеет вообще.




  1. Составить программу, которая находит сумму цифр числа.




  1. Выяснить, является ли слово полиндромом или нет, т.е. читается ли оно



  1. Составить программу, которая вычисляет арксинус и арккосинус задаваемого угла.




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




  1. В единичный квадрат вписан круг. В квадрат бросаются случайно N точек. Составить программу, моделирующую эту ситуацию и вычисляющую значение 4*Р/ N, Р –количество точек, попавших в круг. N –задаётся пользователем. Что представляет собой число 4*Р/ N? Точки задаём случайными координатами (x,y).




  1. Составить программу, которая подсчитывает количество букв в задаваемой фамилии.




  1. Дан текст «файл первый». Переставить слова, чтобы получилось «первый файл».




  1. Дан текст «Миру –мир». Получить текст «!!!!!Миру –мир!!!!!»




  1. Дан текст «хорошо окончить школу – наша задача». Получить текст «наша задача –это хорошо окончить школу»




  1. Выписать задуманное слово от конца к началу.




  1. Закодировать задуманное слово его кодами. Раскодировать полученное.




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   13




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет