СТРОКОВЫЙ ТИП ДАННЫХ Строка код Каждый символ занимает

advertisement
СТРОКОВЫЙ ТИП ДАННЫХ
• Строка — это последовательность символов.
Каждый символ занимает 1 байт памяти
(код ASCII). Количество символов в строке
называется ее длиной. Длина строки может
находиться в диапазоне от 0 до 255.
Строковые
величины
могут
быть
константами
и
переменными.
Особенностью строки в Turbo Pascal
является то, что с ней можно работать как с
массивом символов, с одной стороны, и как
с единым объектом, — с другой. За счет
этого обработка строк достаточно гибка и
удобна.
Строковая
константа
есть
последовательность
символов,
заключенная в апострофы.
• Строковая переменная занимает в
памяти на 1 байт больше, чем указанная
в описании длина. Дело в том, что один
(нулевой) байт содержит значение
текущей длины строки. Если строковой
переменной не присвоено никакого
значения, то ее текущая длина равна
нулю. По мере заполнения строки
символами ее текущая длина возрастает,
но она не должна превышать
максимальной по описанию величины.
• Символы внутри строки индексируются
(нумеруются) от единицы. Каждый
отдельный символ идентифицируется
именем строки с индексом, заключенным в
квадратные скобки.
•Например: N[5], S[i], slovo[k+l].
Индекс может быть положительной
константой, переменной, выражением
целого типа. Значение индекса не должно
выходить за границы описания.
•Строковые выражения
строятся из строковых
констант, переменных,
функций и знаков операций.
Над строковыми данными
допустимы операции
сцепления и операции
отношения.
1.
Операция сцепления (конкатенации) (+)
применяется для соединения нескольких
строк в одну результирующую строку.
Сцеплять можно как строковые
константы, так и переменные.
Пример:
'Мама ' + 'мыла ' + 'раму'.
В результате получится строка:
'Мама мыла раму'.
Длина результирующей строки не должна
превышать 255.
2. Операции отношения: =, <, >, <=, >=, <>.
Позволяют произвести сравнение двух строк, в результате
чего получается логическое значение (true или false).
Операция отношения имеет приоритет более низкий, чем
операция сцепления. Сравнение строк производится слева
направо до первого несовпадающего символа, и та строка
считается больше, в которой первый несовпадающий символ
имеет больший номер в таблице символьной кодировки. Если
строки имеют различную длину, но в общей части символы
совпадают, считается, что более короткая строка меньше, чем
более длинная. Строки равны, если они полностью совпадают
по длине и содержат одни и те же символы.
Пример:
Выражение
• ‘True1’<’True2’
• ‘Mother’>’MOTHER’
• ‘Мама ‘ <> ‘Мама’
• ‘Cat’=’Cat’
Результат
True
True
True
True
1.Copy (S, poz, n)
2.Concat (s1, s2,...,sn)
3.Length (S)
4.Pos (subS, S)
1. Copy (S, poz, n) выделяет из строки S,
начиная с позиции poz, подстроку из n
символов. Здесь S – любое строковое
выражение, poz, n – целочисленные
выражения.
Например:
Значение S
Выражение
Результат
‘строка
символов’
Copy(S,3,3)
рок
рок
2. Concat (s1, s2,...,sn) выполняет слияние
строк s1, s2,...,sn в одну строку.
Например:
Выражение
Результат
Concat(‘язык’, ‘’,Pascal’)
‘язык Pascal’
3.
Length(S) определяет
строкового выражения
значение целого типа.
текущую длину
S. Результат –
Например:
Значение S
‘(а+в)*с’
Выражение
Length(s)
Результат
7
4. Pos(subS, S) определяет позицию первого
вхождения подстроки subS в строку S. Результат –
целое число, равное номеру позиции, где
находится первый символ искомой подстроки.
Если вхождение подстроки не обнаружено, то
результат функции будет равен 0.
Например:
Значение S
Выражение
Результат
‘предложение’
Pos(‘е’, S)
3
‘предложение’
Pos(‘a’, S)
0
1. Delete (S, poz, n)
2. Insert (subS, S, poz)
1. Delete (S, poz, n) удаляет из строки S, начиная с
позиции poz, подстроку из n символов. Здесь S –
строковая переменная (в данном случае нельзя
записать никакое другое строковое выражение,
кроме имени строковой переменной, т.к. только с
именем переменной связана область памяти, куда
будет помещен результат выполнения процедуры);
poz, n – любые целочисленные выражения.
Например:
Значение S
Оператор
процедуры
Конечное зн-е S
‘abcdefg’
Delete(s, 2, 3)
‘aefg’
2. Insert(subS, S, poz) вставляет в строку S,
начиная с позиции poz, подстроку subS.
Здесь subS – любое строковое выражение, S
– строковая переменная (именно ей будет
присвоен
результат
выполнения
процедуры),
poz
–
целочисленное
выражение.
Например:
Значение S
‘рис. 2’
Оператор
процедуры
Конечное зн-е S
Insert(‘№’, S, 6)
‘рис. №2’
1. Str (x, S)
2. Val (S, x, kod)
1. Str(x, S) преобразует число x в строковый формат.
Здесь x – любое числовое выражение, S – строковая
переменная. В процедуре есть возможность
задавать формат числа x. Например, str (x: 8: 3, S), где 8
– общее число знаков в числе x, а 3 – число знаков
после запятой
Например:
Оператор процедуры
Конечное зн-е S
Str (sin (1):6:4, S)
‘0.0175’
Str (3456, S)
‘3456’
2. Val(S, x, kod) преобразует строку символов S в
число x. Здесь S – строковое выражение, x –
числовая переменная (именно туда будет
помещен результат), kod – целочисленная
переменная (типа integer), которая равна номеру
позиции в строке S, начиная с которой
произошла
ошибка
преобразования,
если
преобразование
прошло
без
ошибок,
то
переменная kod равна 0.
Например:
Тип X
Оператор
процедуры
Значение
X
Значение
kod
Real
Val(’12.34’,
x, kod)
12.34
0
Integer
Val(’12.34’,
x, kod)
12
3
Download