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

Функции

Copy (St, Poz, N) — выделяет из строки St подстроку длиной N символов, начиная с позиции Poz.

Значение St

Выражение

Результат

'ABCDEFG'

Copy (St, 2, 3)

'BCD'

Concat (Str1, Str2, ..., StrN) — выполняет сцепление строк Str1, Str2, ..., StrN в том порядке, в каком они указаны в списке параметров.

Выражение

результат

Concat ('AA', 'XX', 'Y')

'AAXXY'

Length (St) — вычисляет длину в символах строки St.

Значение St

Выражение

результат

'123456789'

Length (St)

9

Pos (Str1, Str2) — обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0.

Значение Str1

Выражение

результат

'abcdef'

Pos('de', Str1)

4

'abcdef'

Pos('r', Str1)

0

Примеры сортировки:

1. Дан массив строк. Отсортировать его в алфавитном порядке.

program sorta;

type

indata=string[80];

mas=array[1..80] of indata;

var

st:mas;

i,n:integer;

Procedure sortstring(var inm:mas; n:integer);

Procedure insort(L,R:integer;var M:mas);

var

a,b:indata;

i,j:integer;

begin

i:=L;

j:=R;

a:=m[(l+r)div 2];

repeat

while m[i]<a do i:=i+1;

while A<m[j] do j:=j-1;

if i<=j then

begin

b:=m[i]; m[i]:=m[j];

m[j]:=b; i:=i+1; j:=j-1;

end;

until i>j;

if l<j then insort(l,j,m);

if l<r then insort(i,r,m);

end;

begin

insort (1,n,inm);

end;

begin

writeln ('Введите количество строк');

readln (n);

writeln ('Введите строки');

for i:=1 to n do

readln (st[i]);

Writeln ('Исходный массив строк:');

for i:=1 to n do

writeln (st[i]);

sortstring(st,n);

Writeln ('Отсортированный массив строк');

for i:=1 to n do

writeln (st[i]);

end.

2. Дан массив строк. Отсортировать его по длине строк.

program sortd;

type

indata=string[80];

mas=array[1..80] of indata;

var

st:mas;

i,n:integer;

Procedure sortstring(var m:mas; n:integer);

var

min,i_min,k,i,j:integer;

r:indata;

begin

for k:=1 to n-1 do

begin

min:=length(m[k]);

i_min:=k;

for i:=k to n do

if length(m[i])<min then

begin

min:=length(m[i]);

i_min:=i;

end;

r:=m[k];

m[k]:=m[i_min];

m[i_min]:=r;

end;

end;

begin

writeln ('Введите количество строк:');

readln (n);

writeln ('Введите строки:');

for i:=1 to n do

readln (st[i]);

Writeln ('Исходный массив строк:');

for i:=1 to n do

writeln (st[i]);

sortstring(st,n);

Writeln ('Отсортированный массив строк');

for i:=1 to n do

writeln (st[i]);

end.

2. Порядок выполнения работы

1. Изучить принципы организации и правила работы со строками с использованием алгоритмического языка Turbo Pascal.

2. Получить у преподавателя вариант задания.

3. Составить и выполнить программу.

4. Предъявить преподавателю результаты работы программы.

5. Провести анализ полученных результатов, оформить отчет.

6. Защитить и сдать преподавателю лабораторную работу.