Скачиваний:
61
Добавлен:
10.02.2014
Размер:
98.3 Кб
Скачать

Стандартные процедуры и функций для строк

  • 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.

Соседние файлы в папке методические указания для лабораторных работ