Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Логический тип




Текстовые типы

 

Текстовые (символьные) типы - это типы данных, состоящие из одного символа. В Windows используется код ANSI (по названию разработавшего этот код института - American National Standard Institute - американский национальный институт стандартизации). Множество значений символьного типа состоит из 256 различных символов, определенным образом упорядоченных, и содержит символы заглавных и строчных букв, цифр и других различных символов, включая специальные управляющие.

В Object Pascal есть три символьных типа: Char, AnsiChar, и WideChar (Таблица 15.3). Тип Char является стандартным типом Pascal. Он использовался и в Turbo Pascal и сейчас в Object Pascal. Типы AnsiChar, и WideChar были добавлены позднее.

 

Таблица 15.3 - Символьные типы данных

Название Размер, байт
Char  
AnsiChar  
WideChar  

 

Char - любой символ из набора ANSI.

AnsiChar - символы, упорядоченные в соответствии с расширенным набором символов ANSI.

WideChar - это символы, упорядоченные в соответствии с международным набором символов UNICODE. Первые 256 символов совпадают с символами ANSI.

 

С типом CHAR работают следующие процедуры и функции:

- функция Ord (Ch), где Ch - любая переменная символьного типа, возвращает целое значение, которым символ Ch представлен в памяти, т.е. порядковый номер этого символа в таблице ANSI.

- для преобразования целой переменной в переменную типа char с тем же порядковым номером предназначена функция Chr(Ch).

- UpCase () преобразует строчную букву в прописную.

 

Тип CHAR упорядочен по алфавиту: ‘A’<‘B’<‘C’…<‘Z’. Это позволяет сравнивать буквы для их алфавитной сортировки. Наконец, тип CHAR эквивалентен типу BYTE – оба они занимают один и тот же объем памяти. Для эквивалентных типов можно применять операцию типизации, заключающейся в преобразовании типа в нужный. Например, чтобы напечатать символ с кодом n, необязательно делать так:

 

Label1.Caption:=CHR(n);

 

Есть другой способ:

 

Label1.Caption:=CHAR(n);

 

Здесь CHAR() – операция типизации. Возможна и обратная процедура для получения кода символа:

 

Label1.Caption:=IntToStr ((BYTE(c)))

 

 

Логический тип данных, названный в честь английского математика XIX века Дж. Буля кажется очень простым. Но с ним связан ряд интересных моментов.

Во-первых, к данным этого типа применимы логические операции AND, OR, XOR, NOT. Как правило, труднее всего понять операцию "исключающее ИЛИ" (XOR). Ее смысл: "или одно, или другое, но не оба сразу". Поэтому True XOR False=True, но True XOR True=False.

Во-вторых, допустимы присваивания вида:

 

VAR l:BOOLEAN;

l:=(a>b) OR (c<4);

 

Очень частая ошибка начинающего программиста – использование оператора IF там, где достаточно применить булевский тип данных. Вот так делать не надо:

 

IF (a>b) AND (d<0) THEN c:=TRUE

ELSE c:=FALSE;

 

Все гораздо проще:

 

c:=(a>b) AND (d<0);

 

В-третьих, операции AND и OR могут быть выполнены при неизвестном втором операнде:

 

IF (a>5) AND (c<d) THEN…

 

Если a<=5, то условие c<d вообще не проверяется, так как при любом его значении результат всего выражения уже известен.

 

В Object Pascal имеется пять логических типов: Boolean ByteBool, Bool, WordBool и LongBool, отличающиеся занимаемым объемом памяти (Таблица 15.4).

 

Таблица 15.4 - Логические типы данных

Название Размер, байт
Boolean  
ByteBool  
Bool  
WordBool  
LongBool  

 

В стандартном Паскале определен только тип Boolean, остальные логические типы введены в Object Pascal для совместимости с Windows: типы Boolean и ByteBool занимают по одному байту каждый, Bool и WordBool - по 2 байта, LongBool - 4 байта. Значениями логического типа может быть одна из предварительно объявленных констант False (ложь) или True (истина).

 

При этом справедливы следующие условия:

 

False < True;

Ord(False) = 0;

Ord(True) <> 0;

Succ(False) = True;

Pred(True) = False.

 

Фактически для всех логических типов значению False соответствует число 0, которое записывается в указанное в Таблица 15.4 количество байтов. Отличие логических типов заключается в величине параметра, соответствующего значению True. В величинах типа Boolean этому значению соответствует число 1, а для других типов результату True соответствует любое значение, отличное от нуля. Функция Ord(True) для Boolean вернет 1, а для всех других логических типов возвратит (-1).

 




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 386; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.