Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по информатике.doc
Скачиваний:
28
Добавлен:
25.12.2018
Размер:
1.48 Mб
Скачать
    1. Строковые процедуры и функции в Турбо-Паскале

В Турбо-Паскале имеются ряд стандартных процедур и функций, специально предназначенных для работы со строками.

3.1. Процедура DELETE.

Синтаксис:

DELETE(var S:String;Pos,Len:Integer);

Убирает из строки S Len символов начиная с Pos. Если Len больше длины S то ничего не происходит. Если Pos+Lеn больше длины строки то удаляются все символы до конца строки .

3.2. Процедура INSERT.

Синтаксис:

INSERT(S:String;var D:String;Pos:Integer);

Вставляет строку S в строку D начиная с символа с номером Pos . Если Pos больше длины D то S и D сливаются. Если длина результата при этом больше максимальной длины D то в D записываются только самые левые символы .

3.3. Процедура STR.

Синтаксис :

STR(I:Integer;var S:String);

STR(R:Real;var S:String);

Преобразует I или R из числа в строку и записывает эту строку в S.

ВНИМАНИЕ! Процедура Str не должна входить в функции, вызываемые в процедурах WRITE и WRITELN .

3.4. Процедура VAL.

Синтаксис:

VAL(S:String;var R:Real;var P:Integer);

VAL(S:String;var I,P:Integer);

Преобразует строковую переменную S в число (тип зависит от типа переменной I или R соответственно). Если в строке S ошибок нет, то P равно 0, иначе значение R (или I) неопределенно, а P присваивается номер первого ошибочного символа.

3.5. Функция CONCAT.

Синтаксис:

CONCAT(S1,S2,...,Sn:String):String;

Возвращает строку, полученную конкатенацией (слиянием) строк S1,...,Sn. Если длина результата больше 255 то возникает ошибка времени выполнения.

3.6. Функция COPY.

Синтаксис:

COPY(S:String;Pos,Len:Integer):String;

Возвращает строку, полученную из Len символов строки S начиная с позиции Pos. Если Pos больше, чем длина строки S то возвращается пустая строка. Если Pos + Len больше, чем длина строки S то возвращаются только символы, принадлежащие строке S.

3.7. Функция LENGTH.

Синтаксис :

LENGTH(S:String):Integer;

Возвращает длину строки S .

3.8. Функция POS.

Синтаксис:

POS(Pattern,Sourse:String):Integer;

Возвращает номер символа, начиная с которого Pattern входит в Sourse. Если вхождения нет, то возвращается 0.

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

Пример 4.1. Написать программу, которая записывает строку в обратном порядке и выводит ее на экран.

Программа 4.1.

PROGRAM PR;

USES CRT;

VAR A,B:STRING[10];

I,N:INTEGER;

BEGIN

CLRSCR;

WRITELN('Введите строку длиною не более 10 символов:');

READLN(A);

N:=LENGTH(A);

B:='';

FOR I:=1 TO N DO

B:=B+A[N+1-I];

WRITELN(B)

END.

Пример 4.2. Подсчитать число вхождений некоторого слова в заданный текст.

Программа 4.2.

PROGRAM PR42;

USES CRT;

TYPE TEXT=STRING[100];

WORDS=STRING[10];

VAR A,B:TEXT;

C:WORDS;

P,N,D:INTEGER;

BEGIN

CLRSCR;

WRITELN('Введите текст длиною не более 100 символов');

READLN(A);

B:=A;

WRITELN('Введите слово длиною не более 10 символов');

READLN(C);

N:=0;

D:=LENGTH(C);

P:=POS(C,B);

WHILE P>0 DO

BEGIN

N:=N+1;

DELETE(B,P,D);

P:=POS(C,B)

END;

WRITELN;

WRITELN('Число вхождений слова "',C,'" в текст :');

WRITELN;

WRITELN(A);

WRITELN;

WRITELN('равно ',N)

END.