Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MET1.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

5. Строки

Строка – это конечная последовательность символов. Описание типа строка имеет следующий вид: String [<макс. длина>]; где <макс. длина> - максимальное количество символов, которое может храниться в строке (по умолчанию – 255). Длина строки – количество символов, содержащихся в строке в данный момент. Длина может изменяться в процессе выполнения программы от нуля до заданной максимальной длины. Пустая строка (имеет длину, равную нулю) обозначается ‘’.

Для обработки строк могут быть использованы следующие операции:

  1. операция присваивания;

  2. стандартные процедуры ввода и вывода (Readln, Read, Writeln, Write);

  3. операция склейки: +;

  4. выделение символа строки: <имя строки>[<номер символа>];

  5. операции сравнения, которые выполняются посимвольно. Строка, в которой обнаружится символ, больший по коду соответствующего символа другой строки, или которая является продолжением другой строки, считается большей.

Кроме этого, существует ряд специальных стандартных процедур и функций для работы со строками.

Процедуры:

  1. Delete (S, Poz, N); - удаление N символов из строки S, начиная с позиции Poz;

  2. Insert (S1, S, N); - вставка строки S1 в строку S, начиная с позиции N;

  3. Str (X, S); - преобразование числового значения X в строку S;

  4. Val (S,V, Error); - преобразование строкового значения S в числовое значение V, где Error равно позиции первого по порядку неправильного символа в S, если преобразование не произошло, или равно 0 в случае успешного преобразования.

Функции:

  1. Length (S) – длина строки S;

  2. Copy (S, Poz, N) – подстрока длиной N из строки S, начиная с позиции Poz;

  3. Pos (S1, S) – первая по порядку позиция символа строки S, начиная с которого строка S1 входит в строку S, или 0, если S1 не входит в S.

Пример 9. Дан массив из 10 слов. Выполнить для исходного массива следующие действия:

  1. подсчитать количество слов, содержащих в себе ровно три буквы “о”;

  2. заменить в словах сочетание “ку” на “ма”;

  3. упорядочить слова по алфавиту.

Program Example_9;

Const N=10;

Var S, S1: Array [1..N] of String [20]; i, j, Kol,K: Byte; St: String[20];

Begin {ввод массива}

For i:=1 to N do

Readln (S[i]);

S1:=S; {делаем копию исходного массива}

{1 задание}

Kol:=0;

For i:=1 to N do

Begin

K:=0;

For j:=1 to Length (S[i]) do

If S[i][j] = ‘o’ Then

Inc (K);

If K=3 Then

Inc (Kol)

End;

Writeln (‘Количество слов с тремя буквами “o” равно ’,Kol); Writeln;

{2 задание}

Writeln (‘Слова после замены всех ”ку” на “ма”:’);

For i:=1 to N do

Begin

K:=Pos (‘ку’, S[i]);

While (K>0) do {пока сочетание ‘ку’ встречается в слове S[i]}

Begin

Delete(S[i], K, 2);

Insert (‘ма’, S[i], K);

K:= Pos (‘ку’, S[i])

End;

Write (S[i],’ ‘)

End; Writeln; Writeln;

S:=S1;

{3 задание} {Используем для сортировки метод обмена}

For i:=1 to (N-1) do

For j:=1 to (N-i) do

If S[j] > S[j+1] Then

Begin

St:=S[j]; S[j]:=S[j+1]; S[j+1]:=St

End;

Writeln (‘Слова, упорядоченные по алфавиту:’);

For i:=1 to N do

Write (S[i],’ ‘);

Writeln

End.

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