Логічні типи. Символьні типи. Рядкові типи
Дана тема є продовженням теми:
Зміст
- 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
⇑