Строковые переменные
Опр:Последовательность из нескольких литерных переменных образует переменные типа string (строка).
Свойства:
1. строгая последовательность размещения в памяти;
2. плотность размещения в памяти;
3. известная длина, т.е. количество символов внесенных в строку.
Переменные типа string позволяют обрабатывать информацию в виде текстов на естественном языке.
Пример: Var s1, bb, t: string [200];
Семантика: разместить в памяти три переменные строкового типа с именами s1, bb, t! Максимальное количество символов, которые планируется размещать в этих переменных, ограничено числом 200.
Размещение этих информационных объектов в оперативной памяти:
Адрес Адрес Адрес
переменной s1 переменной bb t
201 байт памяти переменной s1 201 байтпамяти переменной bb
Реальный объем памяти, отводимой для переменных типа STRING, ровно на один байт больше указываемого в описании числа. В самом первом байте (правильнее говорить в нулевом байте!) размещается информация о количестве символов, которые фактически содержатся в этой строке.
Опр.Индекс – порядковый номер элемента в упорядоченной совокупности однотипных элементов.
Опр.Динамическое имя – это составное имя, где первая часть – имя собственное всего сложноструктурированного объекта, а вторая часть имени – имя целочисленного объекта, в котором содержится номер конкретного элемента входящего в сложный объект.
Если s1 – имя строки, т.е. имя всего структурного объекта, а j – имя некой переменной типа integer, то s1[j] – имя конкретного j-ого элемента (символа) строки.
Стандартные процедуры обработки переменных типа STRING.
Все операции порождения (создания подобного из подобного) для информационных объектов типа String, допускают наглядную механическую интерпретацию: новые строки можно образовать
- путем последовательного «склеивания» нескольких строк,
- путем «вставки» внутрь одной строки другой (разрезали и склеили),
- путем удаления (вырезания) из строки ее фрагмента, т.е. некой последовательности символов.
Опр. Последовательности символов, заключенных в простые кавычки, являются литерными константами.
Пример: { присвоение строковой переменной s1 явной строковой константы}
s1:=’Вычислить sin(0.3)’;
занятые позиции
строки s1 (всего 19):
В литерной переменной s1[2] находится символ ’ы’, в s1[8] находится символ ’т’.
В литерной переменной s1[0] находится числовой код 19, что соответствует фактическому наполнению символами данной строки.
Для определения фактического количества символов содержащихся в строке можно воспользоваться стандартными функциями ORD(s1[0]) или Length(s1), которые возвращают соответствующую переменную целочисленного типа.
Важно: Все переменные типа string, несмотря на то, каков размер фрагмента памяти им изначально отведен, относятся к одному и томуже типу, т.е. для переменных string понятие класса и типа совпадают.
Пример: операции сложения строк
а:= ’первое слово’; b:= ‘второго’;
с:= а + ‘_дороже_’ + b + ‘_!’;
Получаем строку с: ‘первое слово_дороже_второго!’
Операции преобразования типа представления информации.
Процедура Str(f, a) преобразует содержимое числовой переменной f в символьную форму. Результат размещается в строковой переменной а.
Пример: Var а: string [20]; f: real; .................
f:=25.43;
Str(f:8:3, a);{форматированная запись f:8:3 означает, что число f следует разместить в восьми позициях строки а, последние три из которых отводятся под дробную часть числа }
Результат: в строке а будут размещены восемь символов ’_ _ 25.430’.
Процедура Val(s, t, i) производит обратное действие: преобразует s- заданную строку символов (из цифр, точки, буквы Е и знаков минус или плюс) в формат числовой переменной t, задаваемой в качестве второго параметра. Третий параметр i (целочисленная переменная)нужен для сообщения пользователю об ус пешности выполнения данной операции: если последовательность символов действительно соответствует правилам записи чисел, то i=0, в противном случае i≠0.
Пример: Var t: real; i: integer;
. . . . . . . . .
Val (’-275.04’, t, i);
Writeln (i); Writeln (t: 10: 3);
На экране монитора будет следующее отображение:
0 {печать числа i}
- 2 7 5 . 0 4 0 {печать числа t}
Позиции: 1 2 3 4 5 6 7 8 9 10
Дата добавления: 2021-12-14; просмотров: 247;