Информатика -продвинутый курс

СРЕДСТВА И МЕТОДЫ ОРГАНИЗАЦИИ ДИАЛОГА


 

В Бейсике

сильно развиты команды и функции ввода-вывода данных, позволяющие осуществлять диалог (интерактивный интерфейс) с пользователем.

Для осуществления клавиатурного управления программой, помимо уже известных операторов ввода INPUT и вывода PRINT, используют функцию INPUT$(n), возвращающею значение введенной символьной строки из п символов с ожиданием, функцию INKEYS, принимающею символьное значение нажатой клавиши без ожидания, функции STICK(n), STRIG(O), определяющие коды стрелок или направления джойстика (внешнего управляющего устройства для компьютерных игр и тренажеров).

Часто при разработке компьютерных программ необходимо использовать коды клавиш в ASCI-представлении. Следующая программа печатает код нажатой клавиши и может оказаться полезной при отсутствии под рукой таблицы ASCI кодов.

Программа 77 5 ' ************ коды символов ************

10 cls

20 f$ =

INPUT$(1)

30 PRINT "символ="; f$; "код="; ASC(f$)

40 PRINT 50 GOTO 20

Полную таблицу кодов символов можно получить и другим способом, см. программу 78.

Программа 78 5 ************ до коду печать символа **************



10 FOR i = 1 ТО 256

20 PRINT "код="; i, "символ="; CHR$(i)

30 a$ = INPUT$(1)

40 NEXT I

Функцию INPUTS часто используют для приостановки выполнения программы до нажатия любой клавиши:

п г$ = INPUTS(l): IF r$ = "" THEN n

В отличие от оператора INPLT ф\ нкцпя не ставит знак "?"и не высвечивает вводимые символы. Это свойство удобно использовать для защиты доступа к какой-либо информации. В следующем примере демонстрируется фрагмент проверки «своего» клиента с помощью пароля. Если при вводе четырехсимвольного пароля ("") трижды допущена ошибка, программа приостанавливает работу.

Программа 79 ;

5 ********** пароль *********'**

7 CLS

8 PRINT "нажми любую клавишу"

9 r$=INPUT$(l) : IF r$=""THEN 9

10 code$ = "1996" : k = О

20 INPUT "Имя"; а$


30 PRINT "Пароль"

40 р$ = INPUT$(4)

50 IF p$ = code$ THEN GOTO 80

60 k = k + 1 70 IF k < 3 THEN GOTO 30 ELSE PRINT "До свидания" : END

80 . PRINT 90 PRINT a$, "добро пожаловать"

100 END

С помощью строковой переменной INKEYS аналогично можно осуществлять временную задержку программы до нажатия любой клавиши:

n sS=INKEYS: IF sS=""THEN n

Ниже приведен пример назначения некоторых клавиш, управляющих процессом рисования точек (простейший графический редактор). Здесь код 27 (строка 20) означает клавишу Esc.

Программа 80

•^ i ********** простейший графический редактор ************ 5 SCREEN 2

6 х =

100: у = 100: h = 2

7 PSET (х, у)

10 g$ = INKEY$

20 IF g$ = CHR$(27) THEN 80

30 IF g$ = "A" OR g$ = "a " THEN х = х - h

40 IF g$ = "S" OR g$ = "s " THEN х = х + h

50 IF g$ = "Z" OR g$ = "z" THEN у = у + h

60 IF g$ = "W" OR g$ = "w" THEN у = у - h

70 GOTO 7

80 END

При разработке компьютерных программ полезно бывает использовать функциональные клавиши в качестве «горячих» (НОТ KEY). Назначение команд функциональным клавишам осуществляет оператор KEY. Его работу можно изучить по следующей демонстрационной программе.

Программа 81

5 ' ********** назначение функциональных клавиш ********

10 FOR i = 1 ТО 10

20 KEY i, "+ STR$(i)

30 NEXT i

40 KEY 30, "

50 KEY 31, "+ CHR$(13)

60 KEY LIST

70 KEY ON

80 r$ = INPUT$(1): IF r$ = ""THEN 80


Содержание раздела