Символьный тип (char)
Символьный тип определяет упорядоченную совокупность символов, допустимых в данной ЭВМ. Значение символьной переменной или константы - это один символ из допустимого набора. Символьная константа может записываться в тексте программы тремя способами:
q как один символ, заключенный в апострофы, например: 'A' 'a'
q с помощью конструкции вида #K
q с помощью конструкции вида ^C,
где K - код символа, значение которого находится в пределах 0..255;
C - код соответствующего управляющего символа.
Значением переменной типа char может быть любой символ из допустимого набора.
Переменная символьного типа объявляется в программе следующим образом:
имя:char;
где имя - имя переменной символьного типа;
char - ключевое слово обозначения символьного типа.
Как и любая переменная программы, переменная типа char может получить значение в результате выполнения инструкции присваивания или ввода (read, readln). Если переменная типа char получает значение в результате выполнения операции присваивания, то справа от знака := должно стоять выражение типа char, например, переменная типа char или символьная константа - символ, заключенный в двойные кавычки.
Пример 3.5.Объявление символьных типов в программе.
Var
ov:char;
ch:char;
К аргументам символьного типа применяются :
q функция определения предыдущего символа pred
q функция определения последующего символа succ
q функция преобразования символа в код ord
q функция преобразования кода в символ chr
q процедура преобразование строчных букв в прописные UpCase.
Пример 3.6. Определение предыдущего и последующего символов:
рred('f') = 'E' ; succ('y') = 'Z' .
При отсутствии предыдущего или последующего символов значение соответствующих функций не определено.
Функция преобразования кода в символ chr определяет по порядковому номеру k символ, стоящий на k-ом месте в наборе символов. Порядковый номер имеет целый тип.
Пример 3.7. Программа преобразования кода в символ.
Program prog3_7;
Uses WinCrt;
Var
c:char;
k:byte;
Begin
read(k); {Ввод кода символа }
c:=chr(k); {Преобразование кода в символ}
write (c); {Вывод символа на экран}
End.
Функция ord преобразования символа c в код k определяет порядковый номер символа в наборе символов.
Пример 3.8.Программа преобразования символа в код.
programprog3_9;
uses WinCrt;
Var
c:char;
k:byte;
Begin
read(c); {Ввод символа с клавиатуры }
k:=ord(c); {Преобразование символа в код}
write (k); {Вывод кода символа на экран}
End.
Процедура UpCase преобразования строчной буквы в прописную имеет следующий формат:
UpCase(с);
где с – строчная буква латинского алфавита.
Пример 3.9. Программа преобразования строчного буквы в прописную.
program prog3_9;
uses Wincrt;
Var
c1,c2:char;
Begin
readln(c1);
c2:=UpCase(c1);
write(c2);
end.
Переменную типа char можно сравнить с другой переменной типа char или с символьной константой. Сравнение основано на том, что каждому символу
поставлено в соответствии число (код). Символу 'О' соответствует число
меньшее, чем символу '9', символу 'А меньшее чем 'В', а символу 'Z' меньшее чем 'а'. Поэтому можно записать ‘1’<...<'9'<...<'A'<...<'Z'<'al<'bl<...<'z'
Символам русского алфавита соответствуют числа большие, чем символам латинского алфавита, при этом справедливо следующее:
'A'<'Б'<'B'<...<'Юl<'Я'<'a'<'б'<'в'<...<'э'<'ю'<'я’.
Переменные и константы типаchar можно использовать при программировании условий.
Пример 3.10. Фрагмент исходного текста завершения работы программы.
Var
ot:char;
Begin
. . .
writein('Продолжить вычисления ? (д/н) ');
readln(ot) ;
if (ot='д') or (ot='Д') then
Begin
. . .
end;
End.
Программа сравнивает ответ с двумя символьными константами 'д и 'Д', так как переменная ot может получить 'д', <Д>без<Shift> или 'Д' с <Shift>.
Так как каждый символ языка Pascal кодируется числом, то ниже приведен пример программы, которая с помощью функции chr выводит на экран две таблицы кодировки символов (символы с кодами от 0 до 255). Поскольку символы с кодами от 7 до 13 являются служебными, то вместо этих символов в таблице выводятся пробелы.
Пример 3.11. Программа вывода на экран таблиц с кодами символов.
Program prog3_11;
uses WinCrt;
Var
ch:char; {символ }
dec:integer; {десятичный код символа}
i,j:integer;
Begin
dec :=0 ;
for i:=0 to 15 do {шестнадцать строк }
Begin
dec:=i; { чтобы получить таблицу 128-255}
{ эту инструкцию надо заменить на dec:=i+128;}
for j:=1 to 8 do { восемь колонок }
Begin
if (dec<7) or (dec>=14) then
write(dec:5, ' ' , chr(dec):1)
else {символы c кодами 1-32 не
отображаются}
write(dec:5,' ');
dec:=dec+16;
End;
writeln; { 'переход к новой строке экрана ' };
end;
End.
Рис.3.2. Таблица кодировки с кодами 0-127
Рис. 3.3. Таблица кодировки 128-255
Код 7 используется для подачи звуковых сигналов Следующая программа проверяет пароль, и если пароль неверный, то из динамика компьютера раздается звуковой сигнал.
Пример 3.12. Программа проверки ввода пароля
ProgramPr3_12;
usesWinCrt;
Label
fin;
Var
pswd:integer;
Begin
write('Пароль ?');
readin(pswd);
if pswd <>377 then
Begin
writein(chr(7),'Неправильный пароль’);
goto fin;
End;
{инструкции программы}
fin:
End.
Дата добавления: 2015-01-13; просмотров: 1284;