Стандартные процедуры и функций для строк
-
Length(st) – определяет текущую длину строки st. Результат имеет целочисленный тип.
Значение Выражение Результат
‘абвгде’ Length(st) 6
‘река Волга’ Length(st) 10
-
Delete (st,Poz, N) - удаляет N символов начиная с позиции Poz из строки st. Если значение Poz>255, возникает программное прерывание.
Значение Выражение Результат
‘абвгде’ Delete (st,4, 2) ‘абве’
‘река Волга’ Delete (st,1, 5) ‘Волга’
-
Insert (St1, St2, Poz) - вставляет подстроку St1 в строку St2, начиная с позиции Poz.
St2 := ‘MS’;
St1 := ‘ DOS’;
Выражение Результат
Insert (St1, St2, 3) ‘MS DOS’
Insert (St1, St2, 5) ‘MS DOS’
-
Copy(St, Poz, N) – выделяет из строки St N символов, начиная с символа с позиции Poz. Если Poz>Length(st), то результатом будет ноль. Если Poz>255, то возникает ошибка. Poz и N целочисленные числа.
Значение Выражение Результат
‘абвгде’ Copy(St, 4 ,2) ‘гд’
река Волга’ Copy(St, 5 ,5) ‘Волга’
-
Concat(St1,St2, ... , StN) – выполняет сцепление строк St1, St2, ..., StN в том порядке , в котором они указаны в списке параметров.
Выражение Результат
Concat(‘XX’,’YY’,’ZZ’) ‘XXYYZZ’
Concat(‘река’,’ Волга’) ‘ река Волга’
-
Pos (St1, St2) – обнаруживает первое появление в строке St2 подстроки St1. Результат целочисленного типа и равен номеру той позиции, где находится первый символ подстроки St1. Если подстрока не найдена, то результат ноль.
Значение Выражение Результат
‘абвгде’ Pos (‘вг’, St2) 3
‘абвгде’ Pos (‘с’, St2) 0
-
Str(X, St) - преобразует число X и помещает в строку St. После X можно записать формат, аналогично формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода автоматически расширяется до нужной длины.
Значение Выражение Результат
1500 Str (Х:6, St) ‘__1500’
-1500 Str (Х:6, St) ‘_-1500’
78902 Str (Х:3, St) ‘78902’
-
Val(St, X, code) - преобразует значение St в величину целочисленного или вещественного типа и помещает результат в переменную X. Значение St не должно содержать незначащих пробелов в конце и в начале. Code – целочисленная переменная. Если операция преобразования не привела к ошибке, то значение Code равно нулю. В случае ошибки (литерное значение переводится в цифровое) Code будет содержать номер позиции первого ошибочного символа, а значение X будет неопределенно.
Значение Выражение Результат
‘1500’ Val(St, X, code) code=0
‘1500 ’ Val(St, X, code) code=5
’14.5Е+02’ Val(St, X, code) code=0
’15.4А+02’ Val(St, X, code) code=5
-
Upcase (ch) – преобразует строчную букву в прописную. Обрабатываются только буквы латинского алфавита. Если значением ch является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.
Значение Выражение Результат
‘r’ Upcase (ch) ‘R’
'w’ Upcase (ch) ‘W’
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Номер варианта выбирается по порядковому номеру студента в списке группы. По проведенному заданию требуется:
1. Определить порядок реализации вычислений.
2. Составить графическую схему алгоритма.
3. Записать программу на языке Turbo Pascal.
4. Выполнить расчеты на ЭВМ.
5. Написать отчет по лабораторной работе.
Примеры выполнения
Пример 1. Посчитайте количество символов ‘о’ в строке, выведите на экран позиции, на которых они находятся. Затем замените эти символы на ‘!’.
program stroka;
var str : string;
i : integer;
begin
writeln('введите строку');
readln(str);
n:=0;
for i:=1 to length(str) do if str[i]='o' then
begin
n:=n+1;
write(‘ ‘,i);
str[i]='!';
end;
writeln(str);
writeln(‘n=’,n);
end.
Пример 2. Найдите все цифры в строке, укажите их позиции и удалите их из строки.
program stroka;
var str: string;
i : byte;
begin
read(str);
for i:=1 to length(str) do if (ord(str[i])>=48) and (ord(str[i])<=57) then begin
write(‘ ‘,i);
delete(str,i,1);
end;
writeln(str);
end.
Пример 3. Определите количество слов в строке, в котором одно слово от другого отделяется пробелом. Выведите слова на экран.
program stroka;
var str,str1: string;
i,n,n1,n2 : byte;
begin
read(str);
n:=0;
n2:=1;
for i:=1 to length(str) do if (str[i]=' ') or ( str[i]='.') then
begin
n:=n+1;
n1:=n2+1;
n2:=i;
str1:=copy(str,n1, n2-n1);
writeln(str1);
end;
writeln(‘n=’,n);
end.