Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тurbo Pascal 7+.doc
Скачиваний:
12
Добавлен:
24.12.2018
Размер:
10.09 Mб
Скачать

12.11. Символьный тип Char. Работа с символами

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

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

Паскаль присваивает с1 значение символа, соответствующего номеру 69 по таблице ASCII, то есть латинского 'Е'.

Задание 112

Угадайте, что напечатает компьютер, выполнив оператор

Write(Chr(Ord(Succ(Pred(‘+'))))).

Задание 113

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

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

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

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

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

if ReadKey = 'R' then...,

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

if ReadKey =#82 then ...,

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

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

82

82

82

0

72

0

82

0

82

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

kl:= ReadKey; if kl =#0 then if ReadKey=#82 then WriteLn ('Нажата Insert')

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

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

0 72

0.80

0 75

0 77

<Page Up>

0 73

<Page Down>

0 8l

<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