Лекция 8
8.0. Символы и строки
ПК может обрабатывать не только числовую информацию, но и символьную.
Символьная информация может быть представлена:
-
Отдельными символами
-
Строками
8.1. Символы
Для хранения и обработки отдельных символов используются переменные типа AnsiChar и WideChar.
Тип AnsiChar (американский стандарт) представляет собой набор ANSI-символов, в котором каждый символ кодируется 8-разрядным двоичным числом (байтом).
Тип WideChar (международный стандарт) представляет собой набор символов в кодировке Unicode, в котором каждый символ кодируется 16-разрядным двоичным числом (2 байтами).
Для обеспечения совместимости с предыдущими версиями Delphi и Borland Pascal поддерживается тип Char, эквивалентный AnsiChar.
К символам относятся:
-
Буквы русского и латинского алфавитов;
-
Цифры;
-
Знаки препинания;
-
Специальные символы (пробел, <Enter> - ''новая строк'');
Объявление символьных переменных:
<Имя переменной>: Char;
Например:
var
sim:char; // Символьная переменная
const
s= 'х'; // Символьная константа
Символьная переменная может получить значение в программе в результате выполнения операции присвоения.
Например:
var
C, S :char; // переменные
. . . . . . . .
С:= '*' ; // переменной С присваивается значение *
S := 'a'; // переменной S присваивается значение a
. . . . . . . .
Задача1. Выполняет программу диалога:
program Example1;
…
uses
SysUtils;
var
s: char;
begin
writeln('Vy hotite nauchitcy programmirovaty?');
readln(s); //Вы хотите научиться программировать?
writeln('Vash otvet:' , s); readln
end.
Рекомендации при решении задач:
-
Каждому символу соответствует число – код символа;
-
Переменную типа Char можно сравнивать с другой переменной типа Char или символьной константой, причем ' 0 ' < ' 1' <…' 9 ' < 'A' < ' B ' <…<' Z ' < ' a ' < ' b ' <… < ' z '
-
Символам русского алфавита соответствуют числа большие, чем символам латинского алфавита, при этом 'A' < ' Б ' <…<' Ю ' <' Я ' < ' a ' < ' б ' <… < ' ю ' < ' я '
-
В тексте программы вместо символа можно указать его код, подставив перед числом #. Обычно этот способ записи используют для служебных символов.
Например: S1:= #13; //образование новой строки (<Enter>)
S2:= #32; //образование «пробела»
вместо константы ‘А’ можно записать #192;
-
В программах обработки символьной информации используют функции Chr() и Ord():
-
Значением функции Chr() является символ, код которого указан в качестве параметра.
Например:
С := Chr(46); // переменной С присвоено значение «точка»
-
Функция Ord() позволяет определить код символа, который передается ей в качестве параметра.
Например:
K := Ord (' * '); // переменная K будет содержать число 42 – код символа «*».
Задача2. Написать программу, которая выдает код символа, введенного с клавиатуры.
program Example2;
…
uses
SysUtils;
var
sim:char;
code:integer;
begin
writeln('Vvedite simvol i nazmite <Enter>');
//Введите символ и нажмите <Enter>
writeln('Dly zavershen program vvedite .');
//Для завершения программы введите “.”
repeat
write(' > ');
readln(sim);
code:=Ord(sim);
writeln(' Simvol : ',sim);
writeln(' Code simvola : ',code);
until sim= ' . ';
readln
end.