Логические типы. Символьные типы. Строчные типы
Данная тема является продолжением темы:
Содержание
- 1. Логические типы
- 2. Пример использования констант и переменных булевых типов
- 3. Пример использования функций Ord, Succ, Pred для булевых типов
- 4. Символьные типы. Пример
- 5. Строковые типы
- 6. Пример объявления и использование переменных строковых типов
- Связанные темы
Поиск на других ресурсах:
1. Логические типы
Логические типы еще называют булевыми типами. В языке Паскаль используются 4 булевых типа:
- Boolean – переменная этого типа занимает 1 байт памяти;
- ByteBool – занимает 1 байт памяти;
- WordBool – занимает 2 байта памяти;
- LongBool – занимает 4 байта памяти.
Элементы булевых типов могут принимать только два логических значения: True (истина) и False (ложь). В булевых типах значению False соответствует значение 0 во всех байтах (нулевое значение). Значению True соответствует любое ненулевое значение.
Булевые типы являются порядковыми типами, поэтому для них могут быть использованы стандартные функции Ord, Pred, Succ.
⇑
2. Пример использования констант и переменных булевых типов
Ниже приводится пример объявления и использования констант и переменных булевых типов для приложения типа Console Application системы программирования Delphi.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; // Объявление константы булевого типа const OK = True; var // Объявить переменные логических типов b:Boolean; bb:ByteBool; wb:WordBool; lb:LongBool; begin // Присваивание значений переменным логических типов b:=True; bb:=False; wb:=True and False; lb:=(10>8) and True; Writeln('b = ', b); Writeln('bb = ', bb); Writeln('wb = ', wb); Writeln('lb = ', lb); Writeln('OK = ', OK); ReadLn; end.
Результат выполнения программы
b = TRUE bb = FALSE wb = FALSE lb = TRUE OK = TRUE
⇑
3. Пример использования функций Ord, Succ, Pred для булевых типов
В примере демонстрируется использование функций Ord, Succ, Pred для типов Boolean и LongBool.
program TestBoolTypes; uses crt; var // Объявление переменных логических типов b:Boolean; lb:LongBool; begin // Примеры использования функций Ord, Pred, Succ для некоторых булевых типов // Тип Boolean b := True; Writeln('b = ', b); Writeln('Ord(b) = ', Ord(b)); Writeln('Pred(b) = ', Pred(b)); Writeln('Succ(b) = ', Succ(b)); // Тип LongBool lb := False; Writeln('lb = ', lb); Writeln('Ord(lb) = ', Ord(lb)); Writeln('Pred(lb) = ', Pred(lb)); Writeln('Succ(lb) = ', Succ(lb)); end.
Результат выполнения программы
b = TRUE Ord(b) = 1 Pred(b) = FALSE Succ(b) = TRUE lb = FALSE Ord(lb) = 0 Pred(lb) = TRUE Succ(lb) = TRUE
⇑
4. Символьные типы. Пример
В Free Pascal и Delphi реализованы следующие символьные типы:
- Char, WideChar – представляют тип, использующий кодировку Unicode. Переменные такого типа занимают 2 байта памяти. В ранних версиях языка Паскаль тип Char занимал 1 байт;
- AnsiChar – тип, определяющий символьные значения, которые занимают в памяти 1 байт.
Пример. В примере объявляются и используются константы и переменные символьного типа Char, WideChar, AnsiChar.
program TestOrdinalTypes; uses crt; // Примеры объявления констант символьного типа const SpaceKey = #32; // Клавиша пробел FirstLetter = 'A'; // Объявление переменных символьных типов var c : Char; wc : WideChar; ac : AnsiChar; code : Integer; begin // Присвоить переменным символьных типов значения c := '+'; wc := '5'; // цифра 5 ac := '~'; // Вывести значения переменных символьного типа Writeln('c = ', c); Writeln('wc = ', wc); Writeln('ac = ', ac); // Использовать функции Ord, Chr, Pred, Succ // Получить код цифры '5' code := Ord('5'); // code = 53 Writeln('Ord(''5'') = ', code); // Получить символ, который имеет код 48 c := Chr(48); Writeln('Chr(48) = ', c); // Присвоить символ с кодом 50 переменной wc, другой способ wc := #50; Writeln('#50 = ', wc); end.
Результат выполнения программы
c = + wc = 5 ac = ~ Ord('5') = 53 Chr(48) = 0 #50 = 2
⇑
5. Строковые типы
В классическом Паскале к строчным типам относятся два базовых стандартных типа:
- String. Строки типа String реализуются во всех модификациях языка Паскаль;
- PChar – этот тип строк введен начиная с версии Turbo Pascal – 7.0. Тип PChar представляет формат строк, в котором каждая строка заканчивается символом ‘\0’. Такие строки еще называются ASCIIZ-строками.
Тип PChar фактически является указательным типом, который имеет описание.
type
PChar = ^Char;
Кроме вышеуказанных строчных типов в новых системах Delphi, Free Pascal (Lazarus) были введены ряд дополнительных типов:
- ShortString – определен как массив символов типа String[255];
- UnicodeString – определен как String. Одиночные символы этого типа поддерживают кодировку Unicode и занимают 2 байта;
- WideString – массив символов. Каждый символ занимает память 2 байта;
- AnsiString – массив символов. Каждый символ занимает память в 1 байт.
⇑
6. Пример объявления и использование переменных строковых типов
program TestOrdinalTypes; uses crt; // Объявить константы типа String const HelloStr = 'Hello, world!'; Yes = 'Yes'; Cancel = 'Cancel'; var pC : PChar; s : String; ss : ShortString; us : UnicodeString; ws : WideString; ast : AnsiString; begin // Строки, которые завершаются нуль-терминатором (ASCIIZ-строки) pC := 'PChar'; Writeln(pC); // Строки, которые не завершаются нуль-терминатором s := 'String'; Writeln(s); ss := 'ShortString'; Writeln(ss); us := 'UnicodeString'; Writeln(us); ws := 'WideString'; Writeln(ws); ast := 'AnsiString'; Writeln(ast); Readln; end.
Результат выполнения программы
PChar String ShortString UnicodeString WideString AnsiString
⇑
Связанные темы
- Типы данных. Стандартные типы данных. Целые типы. Порядковые типы. Функции Ord, Pred, Succ. Функция SizeOf
- Указательные типы Pointer, ^. Текстовый тип Text
⇑