Стандартные процедуры и функции для работы со строками



Имя и параметры

Типы параметров Тип результата

Действие

Функции

Length(s)

string integer

определяет длину строки s

Copy(s,i,n)

s - string, i,n - integer string

Выделяет из строки s подстроку начиная с позиции i длиной n символов

Pos(s1,s)

s1, s - string integer

возвращает позицию первого вхождения подстроки s1 в строку s (или 0 если подстрока s1 не найдена)

Concat(s1,...,

sn)

s1,..., sn - string string

Объединяет строки s1,..., sn в одну строку

IntToStr(i)

i - integer string

преобразует целое число i в строку символов

StrToInt(s)

s - string integer

преобразует строку s в целое число

FloatToStr(r)

r - real string

преобразует вещественное число r в строку символов

StrToFloat(s)

s - string real

преобразует строку s в вещественное число

UpCase(c)

c - char char

возвращает символ c, преобразованный к верхнему регистру

LowCase(c)

c - char char

возвращает символ c, преобразованный к нижнему регистру

UpperCase(s)

s - string string

возвращает строку s, преобразованную к верхнему регистру

LowerCase(s)

s - string string

возвращает строку s, преобразованную к нижнему регистру

Trim(s)

s - string string

возвращает копию строки s с удаленными лидирующими и заключительными пробелами

TrimLeft(s)

s - string string

возвращает копию строки s с удаленными лидирующими пробелами

TrimRight(s)

s - string string

возвращает копию строки s с удаленными заключительными пробелами

Процедуры

Delete(s,i,n)

s - string,

i, n - integer

 

удаляет в строке s n символов начиная с позиции i
Insert(s1,s,i)

s, s1 - string,

 i - integer

 

вставляет подстроку s1 в строку s с позиции i
SetLength(s,n)

s - string,

n - integer

 

устанавливает длину строки s равной n
Str(x,s) Str(x:n,s) Str(x:n:m,s)

s - string,

x - integer, real n, m - integer

 

преобразует число x в строку s (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m)
Val(s,x,c)

s - string,

v - integer, real

 c - integer

 

преобразует строку s к числовому представлению x. Если преобразование возможно, то c= 0, иначе c- ненулевое значение
           

Пример1: :Дана непустая последовательность слов. Слова разделены пробелом, в конце строки -точка. Вывести слова предложения и определить, являются ли они палиндромами. Палиндром- это слово, которое читается справа налево и слева направо одинаково (шалаш) .

1способ решения задачи:

 

          Program stroki1; varst,sl:string; k:integer; {функция определения палиндрома} FunctionPolindr(slo:string):boolean; varj:integer; slo2:string; begin slo2:=''; polindr:=true; forj:=length(slo) downto1 do slo2:=slo2+slo[j]; {slo2-слово         наоборот} ifslo2<>slo thenpolindr:=false; end;   {операторы основной программы} begin writeln('Введите строку'); readln(st); st[length(st)]:= ' '; {замена точки пробелом } whilest<>’’ do begin k:=pos(' ',st) ; {поиск пробела} sl:=copy(st,1,k-1);{формирование                 слова}   ifpolindr(sl) then writeln(sl, ' – палиндром') else writeln(sl, ' – не палиндром');   delete(st,1,k); {удаление слова с пробелом} end end.     Результат решения задачи   Ребята построили шалаш. Ребята - не палиндром построили - не палиндром шалаш - палиндром

При первом способе решения задачи последовательно удаляются слова, которые уже обработаны, пока исходная строка не станет пустой.

2 способ решения задачи:

Исходная строка не меняется. Посимвольно проверяется строка, пока не дойдем до разделителя между словами (точки или пробела). На этот момент в переменной Sl будет сформировано слово и передано в процедуру для обработки.

        programstroki2;   varst,sl:string; {глобальные данные} i:integer;   {процедура определения палиндрома} procedurePolindr(slo:string); varj:integer; slo2:string; begin slo2:=''; forj:=length(slo) downto1 do slo2:=slo2+slo[j]; {slo2-слово         наоборот} ifslo2<>slo then writeln('- не палиндром') elsewriteln('- палиндром ') end;   {операторы основной программы} begin writeln('Введите строку'); readln(st); fori:=1 tolength(st) do if(st[i]=' ') or(st[i]='.') then begin writeln(sl); polindr(sl); {вызов процедуры} sl:=''; end elsesl:=sl+st[i]; {посимвольное  формирование слова} end.     Результат решения задачи     Введите строку казак чистил наган. казак- палиндром чистил- не палиндром        наган- палиндром

Тема 2.8 Множество

Множествомназывается неупорядоченный ограниченный набор однотипных данных. Все элементы множества должны принадлежать одному из скалярных (простых) типов, кроме вещественных. Этот тип называется базовым типом множества. Базовый тип задается перечислением или диапазоном значений. Если множество не имеет элементов, оно называется пустым и обозначается как [ ]. Количество элементов множества называется его мощностью (максимальное количество 255). В множестве не может быть повторяющихся элементов. Область значений типа множество – набор всевозможных подмножеств, составленных из элементов базового типа.

 

Способы описания множеств

1.Var  имя множества : set of тип элементов;

 

2. Typeимя типа = set of  тип элементов;

Var   имя множества : имя типа;

 

где, set of - служебные слова ( множество из);

тип элементов – любой порядковый.

 

Например:

       Type  mn=set of char;

       Var   a,b: mn;

            c: set of 2..6;

       Begin

                   a:=[ ‘A’..’Z’];

                   c:=[2, 4..6];

                   b:=[];

        . . .

       End.

Операции над множествами

 

1. Операция IN -используется для проверки принадлежности какаго-либо значения указанному множеству. Обычно применяется в операторах условного перехода . Результат выполнения операции логического типа ( True или False).

2. Объединение множеств (+). Объединением двух множеств является третье множество, содержащее элементы обоих множеств.

 


3.   Пересечение множеств (*). Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества.

            

4. Разность множеств (-).Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество.

 

 


                                                  

 

5. Операция «равно» (=).Два множества А и В считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет.

6. Операция «не равно» (<>). Два множества А и В считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.

7. Операция «больше или равно» (>=) .Результатоперации А>=B равен True , если все элементы множества В содержатся в множестве А.

8. Операция «меньше или равно» ( <=). Если все элементы множества А содержатся в множестве В , то результат равен True.

 

Примеры выполнения операций:


Дата добавления: 2018-06-01; просмотров: 461; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!