
- •О.Ф. Власенко, и.В. Беляева символы и строки в языке turbo pascal
- •Оглавление
- •Введение
- •Символьный тип Символьный тип char
- •Функция Ord
- •Функция Chr
- •Функция Succ
- •Функция Pred
- •Функция UpCase
- •Процедура Inc
- •Процедура Dec
- •Примеры использования стандартных процедур и функций обработки символов
- •Строки Встроенный тип string
- •Операции над строками string
- •Правила сравнения двух строк
- •Стандартные процедуры и функции для работы со строками string
- •Процедура Delete
- •Процедура Insert
- •Процедура Str
- •Процедура Val
- •Функция Length
- •Функция Concat
- •Функция Copy
- •Функция Pos
- •Примеры использования стандартных процедур и функций обработки строк
- •Множества
- •Операции над множествами
- •Пример использования множеств
- •Пример Обработки массива строк Задача “Поиск символов в тексте”
- •Задача “Поиск слов в строке и удаление символов”
- •Лабораторная работа “обработка строк” Цель работы
- •Общее задание
- •Простые варианты
- •Средние варианты
- •Сложные варианты
- •Список литературы
- •Символы и строки в языке turbo pascal
- •432027, Г. Ульяновск, Сев. Венец, 32.
Функция Length
function Length(S: String): Integer;
Возвращает текущую длину строки.
Пример:
S := ’Иван Иванович’;
D := Length(S); {В строке S содержится 13 символов,
поэтому D = 13}
Функция Concat
function Concat(s1 [, s2,..., sn]: String): String;
Склеивает строки s1, s2 ... sn в одну и возвращает ее.
Пример:
S1 := ’Иван’;
S2 := ’Иванович’;
S3 := ’Иванов’;
S4 := Concat(s3,’ ‘,s1,’ ‘,s2); {В строке S4 содержится
‘Иванов Иван Иванович’ }
Эта функция очень редко используется, поскольку вместо нее можно использовать операцию +.
Пример:
S1 := ’Иван’;
S2 := ’Иванович’;
S3 := ’Иванов’;
S4 := s3 + ’ ‘ + s1 + ’ ‘ + s2; {В строке S4 содержится
‘Иванов Иван Иванович’ }
Функция Copy
function Copy(S: String; Index: Integer; Count: Integer):
String;
Возвращает подстроку строки S. Index - первый символ подстроки,
Count - длина подстроки.
Пример:
S1 := ’Петров Вася’;
S2 := Copy(s3, 4, 3); {В строке S2 содержится ‘ров’ }
S3 := Copy(s3, 9, 2); {В строке S3 содержится ‘ас’ }
Функция Pos
function Pos(Substr: String; S: String): Byte;
Ищет в строке S подстроку SubStr. Возвращает индекс первого
элемента первой найденной подстроки. Если подстрока не найдена,
возвращает 0.
Пример:
S1 := ’Информатика и математика’;
K := Pos(‘мат’, s1); {K = 6 – первый раз подстрока ‘мат’
в строке s1 начинается с 6-ой позиции}
Примеры использования стандартных процедур и функций обработки строк
Задача 1: Вводится строка S и два слова - W и Z. Заменить в строке S слово W на слово Z.
Замечание: Считаем, что в строке S имеется ровно одно слово W.
var
s : string; {Строка}
w : string; {Заменяемое слово}
z : string; {Замена}
f : integer; {Позиция первого символа слова W}
l : integer; {Длина заменяемого слова W}
begin
{Ввод строки}
write(' s= ');
readln(s);
{Ввод заменяемого слова}
write(' w= ');
readln(w);
{Ввод замены}
write(' z= ');
readln(z);
{Поиск позиции первого символа слова W в строке S}
F := Pos(W, S);
{Вычисление длины слова W}
L := Length(W);
{Удаление из строки S слова W}
Delete(S, F, L);
{Вставка вместо удаленного слова W слова Z}
Insert(Z, S, F);
{Вывод строки после замены слова W на слово Z}
writeln(' s= ',S);
end.
Множества
Термин “множество” в Turbo Pascal используется аналогично его математическому пониманию. Множества в Turbo Pascal могут включать элементы только порядковых типов. При этом элементы какого-либо конкретного множества должны принадлежать одному типу, который называется базовым типом. Число элементов базового типа не может быть больше 256, а порядковые номера элементов (т.е. значение функции ord для элементов) должны находиться в пределах от 0 до 255 (как мы видим, символьный тип идеально подходит для того, чтобы быть базовым типом множества).
Общий вид определения типа множества следующий:
type
имя_типа_множества = set of базовый_тип;
Пример:
type
alpha = set of ‘A’ .. ‘Z’; {Множество прописных латинских букв. Базовый тип – интервальный тип. Для интервального типа базовым служит символьный тип}
oper = set of (plus, minus, mul, div); {Множество арифметических операций. Базовый тип - перечисляемый}
SetChar = set of char; {Множество символов. Базовый тип - символьный}
Для задания значений переменной типа множество используется так называемый конструктор множеств. Конструктор задает множество с помощью перечисления в квадратных скобках выражений, значения которых дают элементы этого множества (Например - [‘A’,’F’]). Допустимо использовать диапазоны значений [‘A’..’F’] – это то же самое, что и [‘A’,’B’,’C’,’D’,’E’, ‘F’]).
Пример:
var
a, b, c: alpha; {a,b,c – множества больших латинских букв}
begin
a := [‘A’,’B’,’E’..’G’] {множество а содержит элементы A,B,E,F,G}
b := [‘Z’] {Множество а содержит элемент Z}
c := []; {Пустое множество не содержит элементов}