Символьный тип в языке Pascal

Символьный тип – это тип данных, хранящий в качестве значения символ. В языке Pascal в переменных он объявляется с ключевым словом char. Размер переменной данного типа в Pascal составляет 1 байт. Таким образом, всего может быть 256 различных значений для этого типа. А сами символы, использующиеся в типе char, имеют кодировку ASCII.

Пример объявления переменной типа char:

Код:var c1, c2: char;
begin
c1:= ‘a’; // явный вид
c2:= #97;// по номеру кодируемого символа
writeln(‘Char 1: ‘, c1);
writeln(‘Char 2: ‘, c2);
end.

Вывод:

Char 1: a

Char 2: a

Отличия от строкового типа

В отличие от строкового типа string символьный тип содержит всего один символ. Тип string по сути своей представляет массив из переменных типа char.  Символьный тип, в свою очередь, может рассматриваться как строка в функциях, предназначенных для типа string таких как insert и copy например.

Пример использования функций insert и copy, применяя тип char:

Код:var s:string;
c: char;
begin
s:=’String ‘;
c:= ‘A’;
insert(c,s,8);
writeln(‘String 1: ‘, s);
s:=copy(c,1,1);
writeln(‘String 2: ‘, s);
end.

Вывод:

String 1: String A
String 2: A

Преобразование символьного типа в другие

Функция ord позволяет получить код символа и возвращает значение типа byte. Функция chr работает по обратному принципу. Зная код из таблицы ASCII, при её помощи можно получить сам символ.

Пример работы ord и chr:

Код:varc: char;
b: byte;
begin
c:= ‘a’;
b:= ord(c);
writeln(‘Ord(c): ‘, b);
c:= chr(b+1);
writeln(‘Chr(b+1): ‘, c);
end.

Вывод:

Ord(c): 97
Chr(b+1): b

К string символьный тип преобразуется неявно при помощи оператора присваивания.

Пример программы, реализующей преобразование char в string:

Код:var c: char;
s: string;
begin
c := ‘a’;
s := c;
writeln(‘String: ‘, s);
end.

Вывод:

String: a

Функции для типа Char

Функция succ возвращает следующий по таблице символ относительно принимаемого значения. Работает она аналогично процедуреincдля целочисленного типа данных. Функцией pred возвращается предыдущий символ в таблице ASCII. Она эквивалентна dec для целых чисел.

Пример программы c функциями succ и pred:

Код:var c: char;
begin
c := ‘c’;
writeln(‘Succ(c): ‘, succ(c));
writeln(‘Pred(c): ‘, pred(c));
end.

Вывод:

Succ(c): d
Pred(c): b

Процедуры inc и dec также применимы для символьного типа данных. Их преимуществом по сравнению с succ и pred является возможность изменения текущего значения символьного типа не только на единицу, но и на большее число.

Функции upcase и lowercase предназначены для изменения регистра символа. Первая преобразует строчную букву в прописную, вторая — прописную в строчную.

Пример работы данных функций:

Код:begin
writeln(‘Upcase(c): ‘, upcase(‘c’));
writeln(‘Lowercase(C): ‘, lowercase(‘C’));
end.

Вывод:

Upcase(c): C
Lowercase(C): c

Операции с данными типа char

Для символьного типа так же, как и для других типов данных, применимы операции сравнения (<, >, <=, >=, =, <>). Сравнение производится, учитывая номера символов в таблице. В операциях сложения и вычитания char в отличие от byte не участвует.

Пример программы с использованием операций сравнения:

Код:var b, c: char;
begin
b := ‘b’;
c := ‘c’;
writeln(‘ b < c: ‘, b < c);
writeln(‘ b > c: ‘, b > c);
writeln(‘ b <> c: ‘, b <> c);
writeln(‘ b = c: ‘, b = c);
writeln(‘ b <= c: ‘, b <= c);
writeln(‘ b >= c: ‘, b >= c);
end.

Вывод:

b < c: TRUE
b > c: FALSE
b <> c: TRUE
b = c: FALSE
b <= c: TRUE
b >= c: FALSE

Переменная символьного типа также может использоваться в качестве счётчика цикла.

Пример использования типа charв цикле:

Код:var i: char;
begin
for i:= ‘a’ to ‘d’ do
write (i, ‘ ‘);
end.

Вывод:

a b c d

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *