Имя и параметры | Типы параметров | Тип результата | Действие | ||
Функции | |||||
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). В множестве не может быть повторяющихся элементов. Область значений типа множество – набор всевозможных подмножеств, составленных из элементов базового типа.