Лекция: СРЕДСТВА И МЕТОДЫ ОРГАНИЗАЦИИ ДИАЛОГА

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

Для осуществления клавиатурного управления программой, помимо уже известных операторов ввода 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

 

еще рефераты
Еще работы по информатике