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

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

Информация о строковых процедурах и функциях дана в таблице 5.3.

Таблица 5.3

Назначение процедуры или функции

Заголовок процедуры или функции

Пример

Удаление N символов строки St начиная с позиции Pos

Delete (St: string, Pos,N: byte)

St:= 'абвгде';

Delete(St, 4, 2);

{St='абве'}

Вставка строки Str1 в строку Str2 начиная с позиции Pos

Insert ('*', Str2, 4)

Str2:='абвгде';

Insert '*', Str2, 4

{Str2='абв*где'}

Преобразование числового значения величины V(integer или real) и помещение результата в строку St

Str (V: real, St: string)

V:=1500;

Str(V:6, St);

{St:=' 1500'}

Преобразование строки St в величину целочисленного или вещественного типа и помещение результата в V

Val (St: string,V: real, Code: integer)

St:='1.455';

Val(St,V,Cod);

{V=1.455, Cod=0}

Сцепление строк St1, St2,...

Concat (St1,St2,..,Stn:string): string

St1:=’За’;

St2:=’дача’;

Y:=Concat(St1,St2)

(Y=Задача)

Выделение из строки St подстроки длиной N символов начиная с позиции Pos

Copy (St: string, Pos,N: byte): string

St:='абвгде';

Y:=Copy(St, 2, 3);

{Y='бвг'}

Вычисление длины строки St

Length (St: string): byte

St:='абвгде';

Y:=Length(St);

{Y=6}

Определение позиции первого появления в строке St2 подстроки St1

Pos (St1,St2): byte

St2:='abcdef';

Y:=Pos('de',St2);

{Y=4}

5.6. Пример программы

Программа, осуществляющая ввод массива из 10 слов длиной 6-8 символов, в каждом слове заменяет символы 'a' на 'б', а также осуществляет преобразования вещественной и строковой констант.

Program Prim_Str;

Const CH=12.34;

KST= '12.34';

Var X : array [1..10] of string[8]; {Массив слов}

St : srting[7]; {Параметр для процедуры Str()}

V : real; {Параметр для процедуры Val}

Code : byte; {Параметр для процедуры Val}

Dl : integer; {Длина слова в массиве}

n : integer; {Позиция символа 'а'}

i, j : byte; {Переменные цикла}

Begin

{---------------Ввод массива из десяти слов-----------------}

Writeln('Программа обработки данных строкового типа');

Writeln;

Writeln('Введите 10 слов из 6-8 символов');

For i:=1 to 10 do begin

Write(i, ' -е слово ');

Readln(X[i]); end;

{----------------Вывод на экран введенных данных---------------}

Writeln('Введенные слова');

For i:=1 to 10 do Writeln(i, '-ое слово ', X[i]);

dl:=length(X[1]); {определение длины первого слова}

{----------------Вывод кодов символов первого слова--------------}

For i:=1 to dl do

Begin

Write ORD (X [1,i]); Writeln

End;

{---------------Преобразование числа в строку -----------------}

Str(CH,St);

Writeln('Число ',CH:7:3,' преобразуется в строку ', St);

{---------------Преобразование строки в число ------------------}

Val(KST, V, Code);

Writeln('Строка ', KST, ' преобразуется в число ', V);

Writeln(' код ошибки ', Code);

{------ Поиск в словах символа 'a' и замена его на символ 'б' ---}

For i:=1 to 10 do begin

{- Определение наличия символа 'а' в слове X[i] и его позиции }

n:=pos('а', X[i]);

{---Запись символа 'б' на место, занимаемое символом 'а'-----}

if n>0 then X[n]:='б' end;

{-----------Преобразование массива из 10 слов в строку и------}

{-----------------вывод результата ---------------------------}

{------предлагается запрограммировать самостоятельно------}

End.

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