Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_Конспект лекций.doc
Скачиваний:
41
Добавлен:
27.05.2015
Размер:
1.39 Mб
Скачать

3.2.2 Логический тип

Значениями логического типа являются встроенные идентификаторы False и True. Этот тип переменных задаётся ключевым словом Boolean. Поскольку логический тип является перечислимым, между этими значениями имеют место следующие отношения:

False < True .

Приведём пример описания переменных логического типа:

var

I, J : Boolean;

3.2.3 Символьный тип

Множеством значений этого типа являются символы, упорядоченные в соответствии с расширенным набором символов кода ASCII. Тип этих переменных задаётся ключевым словом Char.

Переменная типа Char хранит значение одного символа. В операторе присваивания задать значение символьной переменной можно тремя способами. Первый состоит в использовании символьной константы – символ между двумя одинарными кавычками. Например:

………………

Var Сh: Char;

Begin

Ch := 'F';

………………

Второй и третий способы используются, когда вы знаете числовой код символа. В этом случае с помощью функции Chr можно преобразовать числовой код в символ. Противоположной по отношению к функции Chr является функция Ord, которая возвращает код символа, являющегося её аргументом.

Согласно третьему способу, знак # и последующая за ним целая беззнаковая константа обозначают символ. Например:

……………….

Var Сh: Char;

Begin

Ch := chr(7);

Ch := #7;

………………

В этом фрагменте оба оператора присваивают символьной переменной Сh одно и то же символьное значение – звуковой сигнал (это управляющий символ).

В работе могут понадобиться значения кодов некоторых символов, которые приведены в таблице 3.1.

Таблица 3.1. Кодировка символов ASCII c кодами от 0 до 127

Код

Вид

Код

Вид

Код

Вид

Код

Вид

0

NUL

32

SP

64

@

96

`

1

SOH

33

!

65

A

97

a

2

STX

34

66

В

98

b

3

ЕТX

35

#

67

С

99

с

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

АСK

38

&

70

F

102

f

7

BEL

39

71

G

103

g

8

BS

40

(

72

H

104

h

9

НТ

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

К

107

k

12

FF

44

,

76

L

108

1

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DC1

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

г

19

DC3

51

3

83

S

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

ETB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

X

25

EM

57

9

89

Y

121

У

26

SUВ

58

:

90

Z

122

z

27

ESС

59

;

91

[

123

{

28

FS

60

<

92

\

124

|

29

GS

61

=

93

]

125

}

30

RS

23

>

94

^

126

~

31

US

63

?

95

подчёркивание_

127

DEL

Таблица кодов символов содержит некоторое число управляющих символов, которые не имеют изображения. В этой таблице они обозначены совокупностью двух или трёх символов.

В таблице 3.2 приведены коды некоторых управляющих символов и описание действий, которые будут выполняться при выводе этих символов на любое устройство.

Таблица 3.2. Коды управляющих символов

Код

Мнемоническое обозначение

Действие

7

BEL

Звуковой сигнал динамика

10

LF

Перевод строки (переход на следующую строку в этой же позиции)

12

FF

Прогон страницы

13

CR

Возврат каретки (переход в начало строки)

26

SUB

Конец файла

27

ESC

Символ Escape

Заметим, что для перехода к началу следующей строки в программе можно использовать две конструкции. Первая:

………

Writeln;

……….

Вторая конструкция:

………………

Write(#10,#13);

………………

Ниже приведён текст программы, которая по нажатой клавиши выдаёт её код согласно кодировке ASCII.

program p3_1;

uses CRT; { Подключение основной библиотеки }

Var ch : char;

begin

writeln('Чтобы остановить работу ',

' программы нажми <Esc> ' );

repeat

write('Нажми любую клавишу!');

ch := Readke; { Ожидание нажатия клавиши и ввод кода символа }

if ch = #0 then { Если 1-ый байт кода символа равен 0, то }

begin { вводим 2-ой байт, так как это функциональная клавиша }

ch := Readkey; { или комбинация клавиш }

write(#13,#10,' Это функциональная клавиша или комбинация',

' клавиш c кодом=',0,0,' ',Ord(ch));

end

else { Вариант, в котором символ не имеет графического изображения }

if Ord(ch) < 33 then write(' Символ не имеет графического',

' изображения. Его код=',Ord(ch))

else write(' Символ: ',ch,' его код=', Ord(ch));

writeln;

until ch=#27; { Условие выхода из цикла – нажата клавиша <Esc> }

end.

В этой программе используется замечательная процедура-функция Readkey, которая ожидает нажатия любой клавиши, после чего возвращает значение введённого символа.

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