Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика метод указания.pdf
Скачиваний:
80
Добавлен:
26.07.2016
Размер:
951.4 Кб
Скачать

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

var c:char;

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

Символьные константы задаются в апострофах: c:=‘A’;

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

 

A

65

a

97

Коды малых букв от

 

 

 

 

 

заглавных отличаются на 32.

 

B

66

b

98

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

90

z

122

 

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

 

 

 

 

 

 

 

A

128

а

160

Коды малых букв от

 

B

129

б

161

заглавных отличаются на 32.

 

 

 

П

143

п

175

 

 

 

 

 

 

 

 

P

144

р

224

Коды малых букв от

 

заглавных отличаются на 80.

 

Я

159

я

239

 

 

 

 

 

 

 

 

Е

240

е

241

 

 

 

 

 

 

 

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

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

writeln( chr(65) );

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

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

ord(c:char):byte

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

writeln( ord(‘A’) );

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

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

upcase (c:char):char –

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

98

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.

99

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

15.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 'Москва - столица России'

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

length(s:string):byte - подсчитывается фактическая длина строки, включая пробелы и знаки препинания.

Например:

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

100

wrtiteln(length(s));

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

Число 6, количество символов в сломе Москва.

copy(s:string,i,n):string -

копируется фрагмент строки s.

Где s - переменная, из которой копируется фрагмент; i - позиция, с которой копируется;

n - количество копируемых символов.

Если i и n - вне пределов строки, сообщения об ошибке не будет. Если i>length(s ) результат - строка нулевой длины.

Если n >length(s ) результат - фрагмент от i до конца строки. Например:

s:='электрификация'; b:=copy(s,8,3)+copy(s,12,3); writeln(s);

Результат на экране: фикция

pos(t:string,s:string):byte -

осуществляет поиск подстроки t в строке s.

Результатом этой функции является позиция вхождения t в s. Если подстрока не найден - результат 0.

Например:

t:='ритм'; s:='алгоритм'; k:=pos(t,s); wrieln(‘k=’,k);

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

15.5. Процедуры обработки строковых переменных

insert(t,s,i);

- вставить подстроку t в строку s начиная, начиная с позиции i. Например:

s:='ритм'; insert(‘алго’,s,1); wrieln(s);

101

Соседние файлы в предмете Информатика