Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
32
Добавлен:
12.03.2016
Размер:
3.29 Mб
Скачать
      1. Символьный тип Char. Работа с символами

С символьным типом Charмы познакомились в 1.6. Значением символьной переменной являются символы из таблицы ASCII.

Для работы с символами вам достаточно кроме вышеизложенных знать еще одну функцию - Chr. Выполнив операторc1:=Chr(69), Паскаль присваиваетc1значение символа, соответствующего номеру 69 по таблице ASCII, т.е. латинского 'Е'.

Задание 112:Угадайте, что напечатает компьютер, выполнив операторWrite(Chr(Ord(Succ(Pred('+')))))

Задание 113:Распечатайте часть таблицыASCII, конкретнее - символы, соответствующие кодам 32-255. Обратите внимание:

  1. на символы так называемой псевдографики, применяемые для вычерчивания таблиц в текстовом режиме;

  2. на разрыв в расположении строчных букв русского алфавита.

Использование клавиш передвижения курсора для управления компьютером с клавиатуры.

В 6.7 мы с вами научились вмешиваться в работу программы нажатием алфавитных и цифровых клавиш. Например, мы можем записать

if ReadKey=’R’ then…,

подразумевая какие-либо действия в случае, если нажата клавиша R. Если вы знаете коды клавиш по таблице ASCII, то вы можете то же самое записать по другому:

if ReadKey=#82 then…,

так как код клавиши Rравен 82. Этот способ более универсальный, так как коды в буфер клавиатуры посылают и те клавиши клавиатуры, которым не приписано никакого символа. Например, клавишаTabпосылает код 9.

Итак, нам хотелось бы для управления компьютером использовать и другие клавиши, например, . Сложность в том, что в отличие от алфавитных и цифровых клавиш, эти и некоторые другие клавиши и комбинации клавиш посылают в буфер клавиатуры не один код, а два, причем первый из них – ноль. Например, клавишапосылает в буфер пару(0,72), клавишаInsert посылает в буфер пару(0,82). Эта парочка называетсярасширенным кодом. Вот что будет в буфере, если мы нажмем подряд шесть клавиш:R R RInsert Insert:

82

82

82

0

72

0

82

0

82

Если вы помните механику работы буфера клавиатуры, то можете умелым использованием функции ReadKey выудить факт нажатия нужной вам клавиши. Так, если вы хотите определить, была ли нажата Insert, то можете записать такой фрагмент:

kl:= ReadKey; if kl =#0 then if ReadKey=#82 then…

При этом компьютер не спутает невинную клавишу Rс клавишейInsert.

Вот коды, которые посылают некоторые клавиши в буфер клавиатуры:

0 72

0 80

0 75

0 77

Page Up

0 73

Page Down

0 81

Home

0 71

End

0 79

Insert

0 82

Delete

0 83

BackSpace

8

Esc

27

Tab

9

Enter

13

пробел

32

серый +

43

F1

0 59

F2

0 60

F3

0 61

F4

0 62

F5

0 63

F6

0 64

F7

0 65

F8

0 66

F9

0 67

F10

0 68

F11

0 133

F12

0 134

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]