Символьный тип
Основным символьным типом является Char. Данный тип используется для хранения символа из таблицы ASCII. Каждый символ в данной таблице представлен числовым значением от 0 до 255, поэтому переменная такого типа занимает в памяти всего один байт. Данный тип часто используется при обработке данных поступающих от клавиатуры.
Кроме типа Char, язык Delphi имеет еще два дополнительных символьных типа:
AnsiChar является полным аналогом типа Char. Занимает один байт памяти;
WideChar – тип, который используется для хранения символов в кодировке UNICODE. Данная кодировка ограничена не 256, а 65 536 символами. Занимает два байта памяти.
Над символьными типами данных допустимы следующие функции:
Char(x) возвращает символ с кодом, который соответствует целочисленному значению “х” ;
UpCase(c) возвращает символ “с”, преобразованный в верхний регистр (т.е. преобразует строчные буквы в прописные);
#код возвращает символ по данному коду, широко используется для неотображаемых символов.
Пример
var
X,Y:Char;
N:Integer;
….
N:=Ord(‘A’); // N= 65
Y:=#65; //Y= ‘A’
Y:=Char(65) //Y= ‘A’
X:=Succ(‘B’) ; // возвращает следующий после ‘B’, т.е. ( X=‘C’).
Для ввода-вывода символьных данных можно использують компонент Edit.
Пример
X:=Edit1.Text[1];// вводится первый символ из набранного значения
Edit1.Text:=X;
Логический тип
Для управления алгоритмическим процессом в Delphi используются управляющие структуры: выбора и цикла. В каждую из этих структур обязательно входит некоторое условие, которое в языке представляется логическим выражением.
Delphi имеет широкие возможности в построении логических выражений, используя для этих целей булевские (логические) переменные, отношения, логические операции, ряд функций.
Переменные логического типа Boolean занимают в памяти один байт и могут принимать одно из двух значений False - ложное или True - истинное
Пример
var
Flag1, Flag2, Ye, No, Inicator : Boolean;
Отношения представляют собой сравнение двух арифметических выражений и принимают значение True или False в зависимости от того истинно отношение или нет.
Знаки отношений:
= равно > больше
<> неравно <= меньше или равно
< меньше >= больше или равно
Пример
логические выражения - отношения
MaxInt = 32767 значение True
Int(X) > X значение False
Pi > Exp(1) значение True
X < Sqr(X) значение зависит от X
Использовать отношение "равно" c выражениями вещественного типа недопустимо, так как в общем случае результат не предсказуем ( хотя и определен ).
Sin(Pi/2) = 1 // пример неправильного отношения
Для переменных булевского типа определены следующие операции:
not (не), and (и), or (или), xor (исключающее или)
В сложных логических выражениях можно использовать данные операции в любых сочетаниях. Необходимо иметь в виду приоритеты выполнения операций:
1 уровень not
2 уровень and
3 уровень or, xor
4 уровень отношения
В записи логических выражений для большей ясности и "надежности" следует применять круглые скобки. Если выражение оказывается достаточно громоздким, то его разбивают на части, которые заменяют логическими переменными.
Пример
Yes: =(x>=0) and (x<=1) and (y>=0) and (y<=1);
No: =not (Yes);
Yes_1Qurter: =(x>=0) and (y>=0);
Yes_Circle: =Sqr(x)+Sqr(y)<=1;
Yes_Sector: =Yes_Qurter and Yes_Circle;
Логические значения дают следующие функции:
EoF - True , если достигнут конец файла и False в противном случае
Odd(x) - True, если x - нечетно и False, если x - четно.
Для ввода и вывода логических данных удобно использовать компонент CheckBox.
Пример
Indicator:= CheckBox1.Checked; // ввод
CheckBox1.Checked:= Indicator; // вывод