
- •О.Ф. Власенко, и.В. Беляева символы и строки в языке 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.
Функция Ord
Function Ord(C: char): LongInt;
Преобразует значение C в его порядковый номер (Order - порядок).
Пример:
C := '!'; {C хранит символ ‘Восклицательный знак’ = #33}
X := Ord(c); {X равен 33 – порядковый номер символа ‘!’
в таблице кодов символов ASCII}
Write('Ord(‘’', c, '’’)=', x); {будет выведено Ord(‘!’)=33}
C := '0'; {C хранит символ ‘Ноль’ = #48}
B := Ord(c); {B хранит значение 48}
Write('Ord(‘’', c, '’’)=', x); {будет выведено Ord(‘0’)=48}
Функция Chr
Function Chr(B: Byte): Char;
Преобразует число B в символ и возвращает его.
Пример использования:
B := 33; { B – это число 33}
C := Chr(B); {C = #33 = ’!’ – C – это символ с кодом 33
– т.е. символ ‘Восклицательный знак’}
Write('Chr(', x, ')=''', c, ''''); {будет выведено
Chr(33)=’!’}
Функция Succ
Function Succ(C: Char): Char;
Возвращает следующий символ, то есть символ, код которого на 1 больше кода символа C.
Пример:
C:='5'; {C хранит символ ‘5’. Его код 53}
C1 := Succ(c); {C1 хранит символ ‘6’ . Его код 54}
C2 := Succ(‘F’); {C2 хранит символ ‘G’ }
Функция Pred
Function Pred(C: Char): Char;
Возвращает предшествующий символ.
Пример:
C:='5'; {C хранит символ ‘5’. Его код 53}
C1 := Pred(c); {C1 хранит символ ‘4’ . Его код 52}
C2 := Pred(‘F’); {C2 хранит символ ‘E’ }
Функция UpCase
function UpCase(Ch: Char): Char;
Преобразует символ Ch в большие буквы. Действует только на латинские буквы.
Пример:
C:=UpCase(‘r’); {c=’R’}
C:=UpCase(‘R’); {c=’R’}
C:=UpCase(‘я’); {c=’я’}
C:=UpCase(‘Я’); {c=’Я’}
Если Вы в своей программе хотите конвертировать русские маленькие буквы в большие или наоборот, то Вам необходимо написать свои собственные функции (смотри пример ниже).
Процедура Inc
Procedure Inc(Ch: Char [; N: LongInt] );
Увеличивает значение символа Ch на N. Используется в двух формах:
Усеченная форма – параметр N отсутствует. В этом случае аргумент увеличивается на 1.
Пример:
C:=‘7’; {c=’7’}
Inc(C); {c=’8’}
Inc(C); {c=’9’}
Inc(C); {c=’:’}
Inc(C); {c=’;’}
Полная форма – параметр N присутствует. В этом случае аргумент увеличивается на N.
Пример:
C:=‘7’; {c=’7’}
Inc(C, 2); {c=’9’}
Inc(C, 8); {c=’A’}
Inc(C, 5); {c=’F’}
Процедура Dec
Procedure Dec(Ch: Char [; N: LongInt] );
Работает аналогично Inc, только в сторону уменьшения - уменьшает значение символа Ch на N. Используется в двух формах:
Усеченная форма – параметр N отсутствует. В этом случае аргумент уменьшается на 1.
Пример:
C:=‘2’; {c=’2’}
Dec(C); {c=’1’}
Dec(C); {c=’0’}
Dec(C); {c=’/’}
Dec(C); {c=’.’}
Полная форма – параметр N присутствует. В этом случае аргумент уменьшается на N.
Пример:
C:=‘7’; {c=’7’}
Dec(C, 7); {c=’0’}
Dec(C, 5); {c=’+’}
Dec(C, 5); {c=’&’}
Примеры использования стандартных процедур и функций обработки символов
Пример 1. Напишем программу, которая печатает таблицу кодов символов:
{Вывод на экран таблицы символов
Размер таблицы 16x16}
var
i: integer; {Номер строки таблицы}
j: integer; {Номер символа в строке - номер столбца}
begin
writeln;
{Формируем таблицу из 16 строк}
for i:=0 to 15 do
begin
{В каждой строке по 16 символов}
for j:=0 to 15 do
write(chr(i*16+j):2); {Код символа получается
как произведение номера строки на 16 плюс
номер символа в строке}
writeln; {строка закончена}
end;
end.
Пример 2. Создадим функцию, которая переводит в большие буквы как латинские, так и русские.
{Функция ToUpper.
Для символа Ch возвращает переведенный в верхний регистр
символ. Работает как с латинскими, так и с русскими буквами.}
function ToUpper(Ch: char): char;
begin
{Если исходный символ Ch является маленькой латинской буквой,
то чтобы она превратилась в большую латинскую букву, ее код
требуется уменьшить на 32(смотри ASCII таблицу кодов)}
if (Ch>='a') and (Ch<='z') then Dec(Ch, 32)
{Если исходный символ Ch является маленькой русской буквой
из интервала от ‘а’ до ‘п’, то чтобы она превратилась в большую
русскую букву, ее код требуется уменьшить на 32 (смотри ASCII
таблицу кодов)}
else if (Ch>='а') and (Ch<='п') then Dec(Ch, 32)
{Если исходный символ Ch является маленькой русской буквой
из интервала от ‘р’ до ‘я’, то чтобы она превратилась в большую
русскую букву, ее код требуется уменьшить на 80 (смотри ASCII
таблицу кодов)}
else if (Ch>='р') and (Ch<='я') then Dec(Ch, 80);
{Если исходный символ Ch не является маленькой буквой, то мы его
значение не изменяем}
{возвращаем из функции вычисленное значение}
ToUpper := Ch;
end;
По аналогии можно создать функцию ToLower для перевода больших русских и латинских букв в маленькие.