Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по QBasic.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
535.04 Кб
Скачать

Вспомогательные функции

DATE$

Функция даты. Аргументов нет. Выдаёт сегодняшнее число в виде символьной строки.

Пример:

PRINT DATE$

.

TIME$

Функция времени. Аргументов нет. Выдаёт значение времени в виде символьной строки.

Пример:

PRINT TIME$

Замечание: С помощью этой функции можно менять время на компьютере.

TIMER

Функция указывает количество секунд, которые прошли с 12 часов ночи. Используется при генерации случайных чисел.

Пример: (эту программу надо самим прерывать с помощью CTRL+BREAK

DO

LOCATE 1, 1 'курсор на позицию 1,1

PRINT TIMER

LOOP

INKEY$

Функция читает нажатые клавиши. Нет аргументов. Если клавиша не нажимается. Значением является пустая символьная строка.

Пример: (типичный случай "press any key to continue..." )

PRINT "Нажми клавишу для продолжения....."

'цикл продолжается. Пока значением 'inekey$ не будет пустая строка

DO

LOOP UNTIL INKEY$ <> ""

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

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

Рассмотрим программу, которая вырабатывает случайные числа. Начиная с 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