Функция TIMER возвращает текущее время
60 FOR i = 1 TO 10
70 CLS : PRINT : PRINT TAB(IO); a$(i);
100 PRINT : PRINT : PRINT
110 PRINT "введите слово и нажмите <ВК>";
120 LOCATE 8, 5 : х » TIMER : INPUT b$ : CLS
130 у = TIMER : PRINT : n =LEN(a$(i))
140 IF a$(i) <> b$ THEN 190
150 PRINT USING "###.#<"; (y - x) / П;
160 PRINT "сек. на один символ": GOTO 200
170 PRINT : PRINT "слово набрано неверно"
180 FOR m = 1 ТО 5000 : NEXT m
190 NEXT i
Функция TIMER возвращает текущее время системной среды в секундах. В строке 180 предусмотрен пустой цикл для осуществления временной задержки в исполнении программы.
Использование функций LEFTS(aS,n) и MID$(a$,n,k) еще раз продемонстрировано в следующем примере. Здесь же использованы математические функции INT(x) -целая часть числа х, RND(x) - случайное число в интервале от 0 до 1. В программе задается массив (оператор DIM aS(k)) из пяти слов, представленных в списке DATA (30 и 40 строки). Случайным образом выбирается одно из них и предлагается его угадать вводом подходящих символов.
Программа 71
5 ' *************** угадай слово *********************
10 k = 5
15 DIM a$(k)
30 DATA
"вечер","информатика","университет"
40 DATA
"эхо","тра-ля-ля"
50 FOR i = 1 ТО k
60 READ a$ (i)
70 NEXT i
80 CLS
90 r = INT(k * RND(-TIMER)) + 1
100 n = LEN(a$(r))
110 PRINT "Я задумал слово из "; n; "букв"
120 LOCATE 5, 20: PRINT LEFT$(s$, n) Ш
130 t = о
т
140 DO • 150 LOCATE 8, 12: PRINT "введи
букву" Щ
160 INPUT h$
170 у = О
180 FOR i = 1 ТО n ] 190 IF h$ = MID$(a$(r), i, 1) THEN | 200 LOCATE 5, 19 + i: PRINT h$: | 210 t=t+l:y=l | 220 END IF |
230 NEXT i
240 LOCATE 8, 12: PRINT " "
250 IF у О 1 THEN LOCATE,10, 15: PRINT "нет такой буквы"
260 FOR m = 1 ТО 5000 : NEXT m 270 LOCATE 10, 15: PRINT " " |
280 LOOP WHILE t 0 n I 290 LOCATE 13, 13: PRINT "угадал, поздравляю!" f
Обратим внимание на использованный в данной программе цикл DO-LOOP-WHILE, который допустим в некоторых версиях Бейсика (QBASIC, Turbo-BASIC).
Содержание Назад Вперед