
Алгоритмы и данные
..pdf
21
Целочисленные типы чисел
Вотличие от математики, рассматривающей бесконечное множество целых чисел,
вFree Pascal каждый целочисленный тип обозначает определённое подмножество целых чисел (чисел без дробной части).
Операции над целыми числами определены лишь тогда, когда исходные данные (операнды) и результат принадлежат этому подмножеству. Иначе возникает ситуация,
называемая переполнением.
За исключением переполнения, все операции над числами целого типа выполня-
ются точно.
Целые десятичные числа записываются |
27 |
стандартным образом и должны нахо- |
+66 |
диться в диапазоне от –2147483648 до |
–49 |
214748364: |
9 |
|
-6435 |
B записи целого числа недопустимо использование десятичной точки!
Диапазон возможных значений целых типов зависит от их внутреннего представления (Рис. 5.4), которое может занимать в Free Pascal от одного до 8 байт. Самый левый бит представляет знак числа: если «0» - число положительное, если «1» - число отрицательное.
1)
2)
3)
Рис. 5.4 - Внутреннее представление целых чисел
22
Таблица 5.3 представляет диапазоны возможных значений стандартных целочисленных типов данных в Free Pascal.

23
Таблица 5.3 - Стандартные целочисленные типы данных в Free Pascal
|
Тип |
|
|
Диапазон возможных значений |
|
|
Формат |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Byte |
|
0 .. 255 |
|
|
1 байт без знака |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Shortint |
|
-128 |
.. 127 |
|
|
1 байт со знаком |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Smallint |
|
-35768 |
.. 32767 |
|
|
2 байта со знаком |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
Word |
|
0 .. 65535 |
|
|
2 байта без знака |
|
||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Integer |
|
|
Зависит от режима компиляции |
|
|
2 или 4 байта со знаком |
|
|
|
|
|
|
|
|
||||
|
Cardinal |
|
0 .. 4294967295 |
|
|
4 байта без знака |
|
||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Longint |
|
-2147483648 |
.. 2147483647 |
|
|
4 байта со знаком |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
Longword |
|
0 .. 4294967295 |
|
|
4 байта без знака |
|
||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Int64 |
|
-9223372036854775808 |
.. 9223372036854775807 |
|
|
8 байт со знаком |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||
|
QWord |
|
0 .. 18446744073709551615 |
|
|
8 байт без знака |
|
||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Максимальное значение числа зависит от количества байт, которые выделены для него. При попытке записать в ячейку значение больше максимального возникает переполнение. В этом случае в ячейку будет записано искажённое значение (меньше того значения, которое Вы пытались присвоить, так как старшие разряды числа, которые не вмещающиеся будут попросту отброшены).
Тип-диапазон (интервальный)
Тип-диапазон – это подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона.
Тип-диапазон задаётся границами своих значений внутри базового типа:
<мин.знач.> .. <макс.знач.>
Например:
type
digit = '0' .. '9'; {символы цифр могут быть только от '0' до '9'}
MonthDay = 1 .. 31; {дни месяца могут быть только в диапазоне от 1 до 31}
Чаще всего тип-диапазон употребляется для указания допустимых границ изменения индексов у элементов массивов.

24
Перечисляемый тип
Перечисляемый тип состоит из тех значений, которые он может получать
Этот тип, определяемый пользователем, делает программы нагляднее. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамлённом
type
tColors = (red, green, blue);
tMonth = (jan, feb, mar, may, jun, jul, aug, sep, oct, nov, dec);
круглыми скобками, например:
Если теперь мы создадим переменную типа tColors, то присваивать ей можно только значения red, green или blue.
Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т.д.
Шестнадцатеричные целые числа
Шестнадцатеричные числа удобно использовать для краткой и безошибочной записи двоичного кода – каждая четвёрка (тетрада) двоичных цифр заменяется одной шестнадцатеричной. В один байт могут быть записаны две шестнадцатеричные цифры.
Перед шестнадцатеричными целыми числами ставится символ $.
Знак шестнадцатеричного числа (плюс или минус) определяется самой формой записи и зависит от значения старшего разряда (бита) двоичного представления числа.
Перед шестнадцатеричными целыми числами ставится символ $. Знак шестнадцатеричного числа (плюс или минус) определяется самой формой записи и зависит от значения старшего разряда (бита) двоичного представления числа.
$0 $4E $FFFFF $A10 $CBADF9

25
Действительные (вещественные) десятичные числа
Действительными или вещественными числами называются все положительные и отрицательные числа (в том числе и дробные), а также нуль.
Действительные (вещественные) десятичные числа записываются либо в виде обычной десятичной дроби, либо в показательной (инженерной) форме с основанием 10.
Вместо основания 10 ставится строчная e или прописная E буква, за которой непосредственно указывается показатель степени.
Разделительный символ – обязательно точка!
6.28
–234.567 +33.5 -1E6 2.83e14
–1E+27 0.4569e-10
Вещественные типы в Free Pascal различаются диапазоном и точностью связанных с ними значений (Таблица 5.4).
Таблица 5.4 - Диапазоны представления и точность представления (числа значащих десятичных цифр) для вещественных типов данных
|
|
|
|
|
|
|
Диапазон возможных |
|
|
Число |
|
|
Размер в |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Тип |
|
|
Название |
|
|
значащих |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
значений |
|
|
|
байтах |
|
|||||
|
|
|
|
|
|
|
|
|
цифр |
|
|
|
|||
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Real |
|
|
вещественное |
|
|
|
|
|
от 15 до 16 |
|
8 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Real48 |
|
|
вещественное |
2.9·10-39 |
.. 1.7·1038 |
|
|
от 11 до 12 |
|
6 |
|
|||
|
Single |
|
|
с одинарной |
1.5·10-45 |
.. 3.4·1038 |
|
|
От 7 до 8 |
|
4 |
|
|||
|
|
|
|
точностью |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Double |
|
|
с двойной точностью |
5.0·10-324 |
.. 1.7·10308 |
|
|
от 15 до 16 |
|
8 |
|
|||
|
Extended |
|
|
с повышенной |
1.9·10-4951 |
.. 1.1·104932 |
|
|
от 19 до 20 |
|
10 |
|
|||
|
|
|
|
точностью |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Comp |
|
|
сложный тип |
-263 + 1 .. 263 - 1 |
|
|
от 19 до 20 |
|
8 |
|
||||
|
|
|
|
(целочисленные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
значения) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Currency |
|
|
Число с |
-922337203685477.5808 .. |
|
|
от 19 до 20 |
|
8 |
|
||||
|
|
|
|
фиксированной |
922337203685477.5807 |
|
|
|
|
|
|
|
|||
|
|
|
|
точкой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

26
В отличие от целых чисел, вещественные числа хранятся с ограниченной точностью. Каждый из имеющихся вещественных типов гарантирует правильное хранение только определённого количества значащих (верных) цифр, зависящее от размера ячейки, кото-
рая отводится для хранения данного типа числа (Рис. 5.5).
Рис. 5.5 - Внутреннее машинное представление различных типов вещественных чисел с разной разрядностью ячейки.
Из-за ограниченного числа хранимых цифр, результаты выполнение операций над вещественными числами из-за погрешности округления всегда приближённы. Неточности в хранении вещественных чисел могут также привести к тому, что при вычитании близких чисел может произойти потеря значимости. Это же объясняет, почему следует избегать сравнения вещественных величин на точное равенство.
Вещественные типы являются упорядоченными, но не порядковыми (нельзя сказать
– какое число было предыдущим и какое будет последующим).
1.1.1Символьный тип
Значением символьного типа (char) является множество всех символов персональ-
ного компьютера, упорядоченных в соответствии с расширенным набором символов кода
ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией). Позднее компания Microsoft расширила таблицу ASCII и пере-
именовала её в ANSI (American National Standards Institute).
При таком подходе любой символ кодируется одним байтом, а это всего 256 возможных значений. Каждому символу приписывается целое число (номер) в диапазоне 0 .. 255. Естественно, возникает проблема ограниченности набора символов - все возможные символы в этот диапазон не уложить. Первая половина таблицы символов компьютеров с кодами 0...127 соответствует стандарту ANSI (Таблица 5.5) и может использоваться в программах Free Pascal с объявлением переменной типа Char. Но в этой части таблицы нет символов кириллицы и, следовательно, переменной типа Char нельзя присвоить значение кириллицы. В тексте программы значения переменных и константы символьного типа должны быть заключены в апострофы: 'а', 'b', '+'.

27
Таблица 5.5 - Кодировка символов в соответствии со стандартом ANSI
Код
Символ
Код
Символ
Код
Символ
Код
Символ
|
0 |
|
NUL |
|
32 |
|
BL |
|
64 |
|
® |
|
96 |
|
' |
|
|
|
|
|
|
|
|
||||||||
|
1 |
|
ЗОН |
|
33 |
|
! |
|
65 |
|
A |
|
97 |
|
a |
|
|
|
|
|
|
|
|
||||||||
|
2 |
|
STX |
|
34 |
|
" |
|
66 |
|
В |
|
98 |
|
b |
|
|
|
|
|
|
|
|
||||||||
|
3 |
|
ЕТХ |
|
35 |
|
# |
|
67 |
|
С |
|
99 |
|
с |
|
|
|
|
|
|
|
|
||||||||
|
4 |
|
EOT |
|
36 |
|
$ |
|
68 |
|
D |
|
100 |
|
d |
|
|
|
|
|
|
|
|
||||||||
|
5 |
|
ENQ |
|
37 |
|
% |
|
69 |
|
E |
|
101 |
|
e |
|
|
|
|
|
|
|
|
||||||||
|
6 |
|
АСК |
|
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 |
|
k |
|
107 |
|
k |
|
|
|
|
|
|
|
|
||||||||
|
12 |
|
FF |
|
44 |
|
, |
|
76 |
|
L |
|
108 |
|
i |
|
|
|
|
|
|
|
|
||||||||
|
13 |
|
CR |
|
45 |
|
- |
|
77 |
|
M |
|
109 |
|
m |
|
14 |
|
SO |
|
46 |
|
. |
|
78 |
|
N |
|
110 |
|
n |
|
|
|
|
|
|
|
|
||||||||
|
15 |
|
SI |
|
47 |
|
/ |
|
79 |
|
О |
|
111 |
|
0 |
|
|
|
|
|
|
|
|
||||||||
|
16 |
|
DEL |
|
48 |
|
0 |
|
80 |
|
p |
|
112 |
|
P |
|
|
|
|
|
|
|
|
||||||||
|
17 |
|
DC1 |
|
49 |
|
1 |
|
81 |
|
Q |
|
113 |
|
q |
|
|
|
|
|
|
|
|
||||||||
|
18 |
|
DC2 |
|
50 |
|
2 |
|
82 |
|
R |
|
114 |
|
r |
|
|
|
|
|
|
|
|
||||||||
|
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 |
|
У |
|
121 |
|
У |
|
|
|
|
|
|
|
|
||||||||
|
26 |
|
SUB |
|
58 |
|
: |
|
90 |
|
z |
|
122 |
|
z |
|
|
|
|
|
|
|
|
||||||||
|
27 |
|
ESC |
|
59 |
|
/ |
|
91 |
|
[ |
|
123 |
|
{ |
|
28 |
|
FS |
|
60 |
|
< |
|
92 |
|
\ |
|
124 |
|
l |
|
|
|
|
|
|
|
|
||||||||
|
29 |
|
GS |
|
61 |
|
= |
|
93 |
|
] |
|
125 |
|
} |
|
|
|
|
|
|
|
|
||||||||
|
30 |
|
RS |
|
62 |
|
> |
|
94 |
|
^ |
|
126 |
|
~ |
|
|
|
|
|
|
|
|
||||||||
|
31 |
|
US |
|
63 |
|
? |
|
95 |
|
— |
|
127 |
|
n |
|
|
|
|
|
|
|
|
В Windows популярна кодовая таблица стандарта Unicode, в которой для представления каждого символа используют два байта. В 65536 позициях новой таблицы умещаются все современные алфавиты (в том числе буквы греческий, латинский и кириллица), математические символы, специальные знаки (вроде интегралов и нот), даже китайские иероглифы. Free Pascal поддерживает и кодировку Unicode.
Стандарт состоит из двух основных разделов: универсальный набор символов (UCS,
Universal Character Set) и семейство кодировок (UTF, Unicode Transformation Format). Уни-
версальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS. Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до

28
U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы.
По умолчанию в Lazarus используется кодировка UTF-8, в которой все символы разделены на несколько групп. Символы с кодами менее 128 кодируются одним байтом, первый бит которого равен нулю, а последующие 7 бит в точности соответствуют первым 128 символам 7-битной таблицы ANSI. Следующие 1920 символов кодируются двумя байтами.
Символы кириллицы кодируются в UTF-8 в точности двумя байтами!
Последующие символы кодируются тремя и четырьмя байтами.
Таблица 5.6 представляет функции для работы с символьными переменными.
|
Таблица 5.6 - Функции для работы с символами |
|
|||
|
|
|
|
|
|
|
Функция |
|
|
Действие |
|
|
Chr(X) |
|
|
Возвращает значение символа по его коду |
|
|
|
|
|
|
|
|
Ord(Ch) |
|
|
Возвращает код символа ch |
|
|
|
|
|
|
|
|
Pred(Ch) |
|
|
Возвращает предыдущий символ из кодовой таблицы |
|
|
|
|
|
|
|
|
Succ(Ch) |
|
|
Возвращает следующий символ кодовой таблицы |
|
|
|
|
|
|
|
|
Upcase(Ch) |
|
|
Преобразует строчную букву в заглавную. |
|
|
|
|
|
Работает только для букв английского алфавита. |
|
|
|
|
|
|
|
Строки символов
Для представления текстовой информации в Pascal используются строки символов, которые представляют собой последовательности символов, заключённые в одинарные кавычки, например:
‘Free Pascal – очередная версия Pascal’
‘Автоматизированное проектирование РЭС’
‘Автор алгоритмического языка Pascal - Н. Вирт’.
Если между кавычками нет ни одного символа, то такая строка считается пустой (нулевой длины):
‘’ - пустая строка
Кроме того, любой символ ASCII в строке (в том числе и те символы, которых нет на клавиатуре) может быть представлен в виде целого десятичного числа (от 0 до 255), перед которым ставится символ #.

29
#182 Псевдографические символы используются в основном для графического оформления программ с текстовым интерфейсом пользователя — отображения в них окон, меню, кнопок и прочих элементов интерфейса. Первоначально предназначались для изображения рамок и таблиц на алфа- витно-цифровых терминалах. Например, символ псевдографики «╢» - одинарное ответвление справа в таблице с двойной рамкой, выполненной в текстовом режиме.
#7 Символ «короткий гудок» - позволяет при выводе чего-либо на экран дать сигнал
#10 Управляющий символ «перевод строки» - перевод курсора на строку ниже
#13 Управляющий символ «возврат каретки» - перевод курсора в начало строки
#9 Символ табуляции используется для выравнивания начала текста в строках. Встретив этот символ, терминал перемещает курсор (или каретку принтера) вправо на ближайшую позицию табуляции.
Тип строковой переменной указывается соответствующими зарезервированными служебными словами (Таблица 5.7).
Таблица 5.7 – Символьные типы в Free Pascal
|
Тип |
|
|
Максималь- |
|
|
Есть ли нулевой |
|
|
Назначение |
|
|
|
|
|
|
|
|
|
||||
|
строки |
|
|
ная длина |
|
|
символ в конце |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
AnsiString |
|
|
2 Гб |
|
|
есть |
|
Для хранения символов ANSI (1 байт |
||
|
|
|
|
|
|
|
|
|
на символ); |
||
|
|
|
|
|
|
|
|
|
|
||
|
String |
|
|
255 байт/2 Гб |
|
|
нет/есть |
|
По умолчанию воспринимается |
||
|
|
|
|
|
|
|
|
|
компилятором как AnsiString |
||
|
|
|
|
|
|
|
|
|
|
||
|
ShortString |
|
|
255 байт |
|
|
нет |
|
Аналогична String |
||
|
|
|
|
|
|
|
|
|
|
||
|
WideString |
|
|
1 Гб |
|
|
есть |
|
Для хранения символа Unicode (2 |
||
|
|
|
|
|
|
|
|
|
байта н символ) |
||
|
|
|
|
|
|
|
|
|
|
|
|

30
Таблица 5.8 и Таблица 5.9 приводят традиционные для Pascal встроенные процедуры и функции для работы со строками символов, а также примеры их использования. Их можно применять и в Free Pascal.
Таблица 5.8 – Встроенные процедуры Free Pascal для работы со строками
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примеры использования |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
Процедура |
|
|
Описание |
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
Значение |
|
|
|
Выражение |
|
|
Результат |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
Удаляет N символов из |
|
|
St = |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
Delete(St, Poz, N) |
|
строки St, начиная с по- |
|
|
|
|
|
Delete(St, 4, 2) |
|
St = ‘12367’ |
|
|||||||||||||
|
|
|
|
‘1234567’ |
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
зиции Poz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Добавляет в строку St2 |
|
|
St1 = ‘аб’ |
|
|
|
|
|
|
|
|
St1 = ‘аб’ |
|
|||||||
|
Insert(St1, St2, Poz) |
подстроку St1, начиная с |
|
|
|
|
|
Insert(St1, St2, 3) |
|
|
|||||||||||||||
|
|
St2 = ‘1234’ |
|
|
|
St2 = ‘12аб34’ |
|
||||||||||||||||||
|
|
|
|
|
позиции Poz |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Таблица 5.9 – Встроенные функции Free Pascal для работы со строками |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Функция |
|
|
|
Описание |
|
|
|
|
|
Примеры использования |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
Значение |
|
|
|
|
|
Выражение |
|
|
|
|
Результат |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Length(St) |
Возвращает дина- |
|
St = ‘1234 abc’ |
|
L := Length(St) |
|
L = 8 |
|
|
|||||||||||||||
|
|
|
мическую длину |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
строки в байтах (не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
в символах!). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Copy(St, Poz, N) |
Выделяет из строки |
|
St = ‘1234567’ |
|
S := Copy(St, 2, 4) |
|
|
S = ‘2345’ |
|
|
||||||||||||||
|
|
|
St подстроку дли- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
ной N символов, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
начиная с позиции |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Poz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pos(St1, St2) |
Обнаруживает пер- |
|
St1 = ‘гд’ |
|
|
|
N := Pos(St1, St2) |
|
|
N = 4 |
|
|
||||||||||||
|
|
|
вое появление в |
|
St2 = ‘абвгдеж’ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
строке St2 под- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
строки St1. Резуль- |
|
St1 = ‘12’ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
тат – номер той по- |
|
St2 = ‘абвгдеж’ |
|
N := Pos(St1, St2) |
|
N = 0 |
|
|
||||||||||||||
|
|
|
зиции, где нахо- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
дится первый сим- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
вол подстроки St1. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Если в St2 под- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
строки St1 не |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
найдено, результат |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
равен нулю. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
UpCase(Ch) |
Преобразует строч- |
|
Ch = ‘a’ |
|
|
|
|
S := UpCase(Ch) |
|
|
S = ‘A’ |
|
|
|||||||||||
|
|
|
ную латинскую |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
букву Ch в заглав- |
|
Ch = ‘ы’ |
|
|
|
|
S := UpCase(Ch) |
|
S = ‘ы’ |
|
|
|||||||||||
|
|
|
ную. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cоncat(St1, St2, |
Выполняет конкате- |
|
St1 = ‘г.’ |
|
|
|
|
S := Cоncat(St1, |
|
|
S = |
|
|
|||||||||||
|
…, StN) |
нацию (сцепление) |
|
St2 = ‘ ’ |
|
St2, St3) |
|
‘г. Томск’ |
|
|
|||||||||||||||
|
|
|
последовательности |
|
St2 = ‘Томск’ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
строк St1, St2, …, StN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
St1 + St2 + … + |
Выполняет конкате- |
|
St1 = ‘г.’ |
|
|
|
|
S := St1 + St2 + St3 |
|
|
S = |
|
|
|||||||||||
|
StN |
нацию (сцепление) |
|
St2 = ‘ ’ |
|
|
|
|
|
|
|
|
‘г. Томск’ |
|
|
||||||||||
|
|
|
последовательности |
|
St2 = ‘Томск’ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
строк St1, St2, …, StN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|