Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 3 курс Pascal.doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
825.86 Кб
Скачать

Процедуры и функции обработки строк.

1) length(st) – функция, вычисляющая длину строки.

length(‘паскаль’)=7

2) Copy(st,k,n) – функция, позволяющая скопировать из строки st с k –ой позиции n символов. Исходная строка не меняется.

St:=’информатика’;

St1:=copy(st,3,5);

St1=’форма’

  1. delete(st, k, n) – процедура, удаляющая из строки st с k-ой позиции n символов.

St:=’барабан’;

Delete(st,4,4); Delete(st,4,4);

St=’бар’; St=’баран’;

5) Val(st, x,k) – процедура, позволяющая преобразовать строку st в ее числовое значение. K – код ошибки. K=0, если преобразование прошло успешно. Если преобразование невозможно, k<>0.

Val (‘123’,x,k); Val (‘12A’,x,k);

X=123 k=0 X=0 k=3

6) Str(x,st) – процедура, преобразующая число x в соответствующую строку st.

Str(25,st); Str(-0.123,st);

St=’25’ St=’-0.123’

Основные алгоритмы обработки строк

Пример 1. Подсчет количества заданных символов в строке

Вводятся строка и символ. Определить количество заданных символов во введенной строке.

Program primer;

Var st: string; c: char;

k, n, i: integer;

begin

write(‘stroka=’); readln(st);

write(‘simvol=’); readln(c);

n:= length(st);

k:=0;

for i:=1 to n do

if st[i]=c tnen inc(k);

writeln (‘k=’, k);

readln;

end.

Пример 2. Замена одних символов другими

Заменить во введенной строке все цифры символом *.

Program primer;

Var st: string;

n, i: integer;

begin

write(‘stroka=’); readln(st);

n:= length(st);

for i:=1 to n do

if (st[i]>=’0’) and (st[i]<=’9’) then st[i]:=’*’;

writeln (‘st=’, st);

readln;

end.

Пример 3. Удаление из строки заданных символов

Удалить из введенной строки все символы ‘3’.

Program primer;

Var st1, st: string;

i: integer;

begin

write(‘stroka=’); readln(st);

for i:=1 to length(st) do

if st[i]<>’3’ then st1:=st1+st[i];

writeln (‘st1=’, st1);

readln;

end.

Program primer;

Var st: string;

i: integer;

begin

write(‘stroka=’); readln(st);

i:=1;

repeat

if st[i]=’3’ then delete(st, i, 1) else i:=i+1;

until i=length(st);

writeln (‘st=’, st);

readln;

end.

Пример 4. Вставка новых символов в строку

Введенную строку преобразовать так, чтобы после каждого слова следовала точка.

Program primer;

Var st: string;

i: integer;

begin

write(‘stroka=’); readln(st);

i:=1;

repeat

if (st[i]<>’ ’) and (st[i+1]=’ ’) then begin insert(‘.’, st, i+1); i:=i+2; end else i:=i+1;

until i=length(st);

writeln (‘st=’, st);

readln;

end.

Пример 5. Преобразование строковых величин в числовые значения

Найти сумму цифр введенной строки, содержащей цифры и буквы.

Program primer;

Var st: string;

i, x, k, s: integer;

begin

write(‘stroka=’); readln(st);

s:=0;

for i:=1 to length(st) do

begin

val(st[i],x,k);

if k=0 then s:=s+k;

end;

write(‘s=’,s);

readln;

end.