Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 8 Стр.doc
Скачиваний:
2
Добавлен:
02.11.2018
Размер:
128 Кб
Скачать

8.3. Строковые функции и процедуры

I. Функция Length(Строка) возвращает длину строки.

Значением функции Length(S) является количество символов, из которых состоит строка S. У этой функции один параметр – выражение строкового типа

Например, S1:= 'Самара'; n:= length (S1);

S2:= 'Кировский проспект'; m:= length (S2);

Значение переменных n и m будет равно 6 и 18 соответственно.

II. Функция Concat ( строка1, строка2, . . . , строкаN) возвращает строку, являющуюся объединением строк, указанных при вызове функции. У этой функции может быть несколько параметров – выражения строкового типа по количеству объединяемых строк.

Например, S:= Concat(S1, #46, #32, S2, #46);

Значение переменной S  Самара. Кировский проспект.

III. Функция Pos(Подстрока, Строка) позволяет определить положение подстроки в строке, где Подстрока – строковая переменная ( или строковая константа), которую надо найти в строковой переменной Строка.

Например,

p:=pos('Пе', 'Санкт-Петербург');

Значение переменной p будет равно 7. Если в строке р нет искомой подстроки, то значение функции pos будет равно 0.

IV. Функция Copy(Строка, p, n) позволяет выделить фрагмент строки. Здесь Строка – выражение строкового типа, содержащее строку, фрагмент которой надо получить, p - номер первого символа, с которого начинается выделяемая подстрока, n - длина выделяемой подстроки.

Например,

st:= ' Инженер Иванов ';

fam:=сopy(st,9,6);

Значением переменной fam будет строка ' Иванов ' – 9 позиция строки st, с которой выделяется подстрока Иванов из 6 символов из строки st.

V. Функция Chr(Код) возвращает символ с указанным кодом

Например, Chr(192) вернет символ – букву A

Chr(46) вернет символ – « . » (точку)

VI. Процедура delete(Строка, p, n) позволяет удалить часть строки. Здесь Строка – переменная строкового типа, p – номер символа, с которого начинается удаляемая подстрока, n – длина удаляемой подстроки.

Например,

s:= ' Город Санкт-Петербург '

delete(s, 7, 6);

Значением переменной s будет строка ' Город Петербург ' – где из строки s начиная с 7 позиции удалена подстрока Санкт- состоящая из 6 символов.

VII. Процедура insert(Подстрока, Строка, p) позволяет вставить часть подстроки в строку, где Подстрока - строковая переменная, которую надо вставить в строковую переменную Строка начиная с позиции p.

Например,

S:= ' Санкт- ';

Insert(S, ' Петербург ', 1);

Значением переменной S будет строка ' Санкт-Петербург '

Задача5. Удаление начальных пробелов строки, введенной с клавиатуры.

program Example5;

uses

SysUtils;

var

st: string[50];

begin

writeln (' Vvedite stroky ');

readln (st);

while (pos(' ', st)=1) and (length(st)>0) do delete(st,1,1);

writeln('stroka bez nachalnyh probelov:', st);

readln // вывод cтроки без начальных пробелов

end.

Необходимость проверки условия length(st)>0 объясняется возможностью того, что введенная строка состоит только из пробелов.

VIII. Процедура Val(Строка, Число, Код) позволяет преобразовать изображение числа в соответствующий ему код-число, где Строка –строковая переменная, содержащая изображение числа, Число – переменная целого или дробного типа, которой должно быть присвоено значение, изображенное Строкой, Код – возвращаемое процедурой целое число (или код ошибки). Возвращается код результата операции, если операция выполнена успешно, в противном случае возвращается 0.

IX. Процедура Str(X [: ВсегоСимволов [: ДробнаяЧасть ] ]; var Строка: string) выполняет преобразование числового выражения X в его строковое представление S (Строка). ВсегоСимволов и ДробнаяЧасть – необязательные выражения целого типа, которые задают общее количество символов дробной части в изображении числа.

Задача6. Вычисления со строковыми переменными

program Example6;

uses

SysUtils;

var

S1, S2, S :string[50];

code, X1, X2, Y :integer;

begin

Writeln ('Vvedite 1 stroky');

Readln (S1);

Writeln ('Vvedite 2 stroky');

Readln (S2);

Val(S1, X1,Code); // Преобразование 1-й строки в цифру Х1

Val(S2, X2,Code); // Преобразование 2-й строки в цифру Х2

Y:=X1*X2; // Арифметические действия

Writeln('Y=',Y);

Str(Y:6,S); // Вывод результата в виде строки S

Writeln('Rezalt: ',S);

readln

end.

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