Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Модуль1.doc
Скачиваний:
129
Добавлен:
28.05.2015
Размер:
1.7 Mб
Скачать

14. Обработка строк текста

14.1. Символьные переменные

Значением переменных символьного типа является один символ. Каждому символу соответствует код символа – целое число в диапазоне то 0 до 255. Существует международная таблица ASCII-кодов.

Для описания символьных переменных используют слово char и они занимают 1 байт памяти.

var

c:char;

Над символьными переменными допустимы только две операции: присвоение и сравнение.

При сравнении символов сравниваются их коды.

Символьные константы задаются в апострофах:

c:=‘A’;

Фрагмент таблицы ASCII-кодов букв латинского алфавита

A

65

a

97

Коды малых букв от заглавных отличаются на 32.

B

66

b

98

Z

90

z

122

Фрагмент таблицы ASCII-кодов букв русского алфавита

A

B

П

128

129

143

а

б

п

160

161

175

Коды малых букв от заглавных отличаются на 32.

P

Я

144

159

р

я

224

239

Коды малых букв от заглавных отличаются на 80.

Е

240

е

241

14.2. Функции обработки символьных переменных

chr(x:byte):char - возвращает символ, соответствующему коду x.

Например:

writeln( chr(65) );

Результат на экране:

заглавная буква A латинского алфавита.

ord(c:char):byte

возвращает число, соответствующее коду символа c.

Например:

writeln( ord(‘A’) );

Результат на экране:

число 65 – код заглавной буквы A латинского алфавита.

upcase (c:char):char –

преобразует малые буквы латинского алфавита в заглавные.

Например:

writeln( upcase(‘a’) );

Результат на экране:

заглавная буква A латинского алфавита.

Если аргументом этой функции окажется не малая буква латинского алфавита, то эта функция никаких действий не выполнит.

pred(c:char):char -

возвращает предшествующий символ.

Например:

writeln( pred('B') );

Результат на экране:

заглавная буква A латинского алфавита, код которой на 1 меньше кода буквы B.

succ(c:char):char -

возвращает последующий символ.

Например:

writeln( succ(‘A’) );

Результат на экране:

заглавная буква B латинского алфавита, код которой на 1 больше кода буквы A.

Задача.

Вывести на экран таблицу ASCII-кодов.

program ASCII;

var

i: byte;

begin

for i:=1 to 255 do

writeln (chr(i),'=',i);

end.

Тип char в программах на Паскале часто используют для хранения вводимых с клавиатуры ответов на запросы меню.

Для этого используют функцию readkey. Работу этой функции обеспечивает модуль Crt.

Приведем пример использования:

Program char;

uses

crt;

begin

repeat

ch:= readkey

until (ch='n') or (ch='N');

end.

Цикл действий продолжается до тех пор, пока не будет введено с клавиатуры 'n' или 'N'.

14.3. Строковые переменные

Строковые переменные используются для хранения любой цепочки символов и занимают 255 байт памяти. Для описания строковых переменных используют служебное слово string.

а) var

s:string;

b)var

t:string[20];

По умолчанию под строковую переменную s будет отведено 255 байт памяти (вариант а), а под строковую переменную t будет отведено 20 байт (вариант b).

Строковые константы задаются в апострофах:

S:=’Москва’;

Ввод строковых переменных осуществляется с помощью оператора - readln, а вывод - writeln.

var

S:string;

begin

readln(s);

Ввод цепочки символов завершается нажатием Enter. Если количество введенных символов превышает 255, то «хвост» отбрасывается, и в переменную попадают только первые 255 символов.

Над строковыми переменными допустимы три операции: присвоение, сравнение и «слияние».

Существует два способа обработки строковых переменных:

обработка всей строки как единого целого;

строковые переменные можно рассматривать как одномерный массив символов (элементов типа char) и применять к ним функции символьных переменных.

Операция слияния:

d:= 'Москва - столица';

a:= 'России';

d+ a 'Москва - столица России'