Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СТАНДАРТНЫЕ ТИПЫ ДАННЫХ.docx
Скачиваний:
0
Добавлен:
14.11.2019
Размер:
40.69 Кб
Скачать

Стандартные типы данных

Цель работы заключается в получении навыков написания программ, содержа­щих символьную и строковую информацию на языке Паскаль.

Символьный тип данных

Pascal оперирует с символьной информацией, которая может быть представлена отдельными символами или стро­ками символов. Для хранения и обработки отдельных символов исполь­зуются переменные типа Char. Символьные данные могут быть либо константами, либо переменными. Переменная символьного типа должна быть объявлена в разделе описания переменных так:

<Имя> : Char; где имя — имя переменной символьного типа;

Пример 1.

VAR OTV: Char ; {переменной OTV присвоен тип Char}

СН: Char; {переменной СН присвоен тип Char}

Значениями типа Char служат все символы, которые могут высветиться на экране дисплея: цифры, буквы, знаки опера­ций, специальные символы и т. д. Переменная, объявленная как Char, может принимать значение только одного символа.

Переменная типа Char может получить значение в ре­зультате выполнения операции присваивания или ввода (Read, ReadLn).

Все символы упорядочены, то есть каждый из них имеет свой порядковый номер - код. Для кодировки символов ис­пользуется код ASCII (American Standard Code For Informa­tion Interchange — американский стандартный код для обме­на информацией). Для хранения символа отводится один байт. Мы имеем возможность закодировать 256 символов в диапазоне 0..255 Символы с кодами 0..31 относятся к слу­жебным кодам.

Базовая таблица кодировки ascii

32

48

0

64

®

80

Р

96

*

112

p

33

!

49

1

65

А

81

0

97

а

113

q

34

50

2

66

В

82

R

98

b

114

г

35

#

51

3

67

С

83

S

99

с

115

s

36

$

52

4

68

D

84

T

100

d

116

t

37

%

53

5

69

Е

85

U

101

е

117

u

38

&

54

6

70

F

86

V

102

f

118

v

39

'

55

7

71

G

87

W

103

g

119

w

40

(

56

8

72

Н

88

X

104

h

120

x

41

)

57

9

73

I

89

Y

105

i

121

y

42

*

58

:

74

J

90

Z

106

j

122

z

43

+

59

;

75

К

91

[

107

k

123

{

44

>

60

<

76

L

92

\

108

l

124

?

45

-

61

=

77

М

93

]

109

m

125

}

46

.

62

>

78

N

94

^

110

n

126

47

/

63

?

79

О

95

_

111

o

127

В том случае, если в программе требуется использовать значение символьной переменной или константы, его необ­ходимо заключить в апострофы или записать с использова­нием знака #, за которым следует код символа.

Например, 'А' обозначает букву А, ';' - точку с запятой, '' - пробел, #32 или #$20 являются также символами пробела (32 - это код, соответствующий пробелу, а шестнадцатеричное число 20 равно десятичному 32).

Рекомендуется применять # (знак номера) только для специальных (служебных) символов, которые не отображают­ся на экране и имеют мнемонические сокращения, унаследо­ванные из прошлого. Некоторые из них могут использоваться программистом для выполнения определенных действий:

#07 (BEL) - подача короткого звукового сигнала;

#08 (BS) - удаление символа слева от курсора и сме­щение курсора на одну позицию назад, соответствует клави­ше <BackSpace>;

#09 (НТ) - горизонтальная табуляция: смещение кур­сора в позицию, кратную 8, плюс 1 (9, 17, 25 и т. д.), соответ­ствует клавише <Таб>;

#10 (LF) - перевод строки, курсор смещается по вер­тикали вниз на одну строку;

#11 (VT) - вертикальная табуляция;

#12 (FF) - прогон страницы;

#13 (CR) - возврат каретки или перевод строки, вы­полняет перемещение курсора в начало следующей строки экрана (соответствует клавише <Enter>);

#26 (SUB) - конец файла, вводится нажатием комби­нации клавиш <Ctrl> + <Z>;

#27 (ESC) - конец работы, символ соответствует кла­више <Esc>;

#32 (BL) - пробел и т. д.

Переменную типа Char можно сравнить с другой пере­менной типа Char или с символьной константой. Результатом операции сравнения является логическая константа TRUE (истина) или FALSE (ложь). Сравнение основано на том, что каждому символу поставлено в соответствие число, причем символу '0' соответствует число меньшее, чем символу '9', символу 'А' - меньшее, чем 'В' и т. д. Таким образом, можно записать:' 0 ' < ' 1 ' < ...' 9 '... <' А' <' В ' < ... <' Z' <.' а' < ' b ' < ...< ' z '. Символам русского алфавита соответ­ствуют числа большие, чем символам латинского алфавита, при этом справедливо следующее: ' А ' < ' Б ' <' С '...<' Ю ' <'Я'<'а'<'б'<'в'<... <'э'<'ю'<'я'.

Строчные латинские буквы идут друг за другом, не пе­ремешиваясь с другими символами, точно также прописные буквы, цифры, русские буквы строчные и прописные. Из всех символов составлен список, и из двух символов меньше тот, который встречается в списке раньше (а > b, а < b, а < > b).

Мы можем использовать упорядоченность множества символов и, в случае необходимости, объявлять переменную цикла со счетчиком типом Char:

For k: = ' а' То' z' Do;

К символьным данным (тип Char) можно применять встроенные функции:

Наименование

Имя функции

Тип аргумента

Тип результата

Возвращает значение символа по его коду

Chr(x)

Byte

Символьный

Возвращает порядковый номер

Ord(ch)

Символьный

Целый тип

Возвращает значение, которое соответствует Ord(х)-1 (предыдущий символ)

Pread (ch)

Символьный

Символьный

Возвращает значение, которое соотв. Ord(х )+1 (следующий символ)

Succ (ch)

Символьный

Символьный

Преобразует строчную букву в заглавную. Обра­батывает только буквы латинского алфавита.

Upcase (ch)

Символьный

Символьный

Например:

Ord ('А') = 65 - функция возвращает код заглавной латинской буквы А (65).

Chr (128) = 'Б' - функция возвращает заглавную рус­скую букву ( Б).

Pread ('Б') = 'А' - функция возвращает букву А, пре­дыдущую по отношению к букве Б.

Succ ('Г') = 'Д' - функция возвращает букву Д, сле­дующую по отношению к букве Г.

Upcase ('n') = 'N' - функция возвращает заглавную букву N, преобразованную из строчной буквы n.

Например, написать программу, выводящую на экран символы с кодами от32 до 255.

Program Lab 1;

Uses Crt;

Var k: Byte;

Begin

ClrScr;

For k : = 32 To 255 Do

WriteLn (Chr (k),' ');

ReadLn;

End.