Самый простой тип - Boolean. Переменные такого типа могут принимать одно из двух значений: True (истина) и False (ложь). Например: B:=True;
. Фактически, это "да" и "нет".
Переменным типа Boolean, помимо True и False, можно присваивать целые логические выражения. Например, оператор B := I = 1;
присвоит переменной B (типа Boolean) значение True, если I равняется единице, и False в противном случае.
Также необязательно, например, писать if B = True then , можно обойтись одним if B then , т. к. последующий оператор выполняется только в том случае, если результат логического выражения равен True.
Что представляет собой следующая программа?
program DataBase; {Программа "База данных"}
var
Password: String; {Вводимый с клавиатуры пароль}
AllRight: Boolean; {Переменная, отвечающая за верность пароля}
begin
WriteLn('Попытка загрузить базу данных... ');
Write('Введите пароль: ');
ReadLn(Password); {Ввод}
Write('Доступ ');
AllRight := Password = 'Strawberry'; {В переменную запиывается результат сравнения}
if AllRight then
begin
WriteLn('разрешён');
WriteLn('<нет данных>');
end
else
WriteLn('запрещён');
ReadLn;
end.
Есть ещё другой целочисленный тип. Его называют интервальным. Интервальный тип называют отдельно, потому что его диапазон определяется пользователем. Записывается этот тип так же, как и промежуток:
var
Age: 0..120; {Переменная, содержащая возраст: она может принимать значения от 0 до 120 включительно}
Особенного применения такой тип не находит.
Самый последний простой тип—перечисляемый. Обычно его используют для упрощения программного кода и для наглядности. Переменным такого типа можно присваивать только словесные значения. Если переменная B: Boolean;
могла получить либо True, либо False, то то переменная перечисляемого типа может принять любое из значений, перечисленных в скобках при объявлении этой переменной:
var
UserType: (Teapot, Moderate, Programmer, Master, Hacker);
{Эта переменная хранит в себе ранг пользователя, его опыт работы с комьютером}
...
UserType:=Programmer;
...
Такой тип очень удобно использовать в операторе case.
Ещё есть структурированные типы данных, но они требуют отдельного рассмотрения.
Разберём такой вопрос: почему при объявлении переменной целого типа не требуется писать -32768..32767, а можно обойтись одним простым Integer? А потому что этот тип объявлен заранее(верно, типы тоже можно объявлять) и "вкручен" в систему Turbo Pascal.
Вы тоже можете объявлять типы. Для этого нужно создать раздел описания типов. Объясняем: каждый раздел в программе начинается с соответствующего ему слова (например, var) а в конце его ограничивает начало другого раздела, либо слово begin.
В разделе type (то есть после слова type) нужно записать имя типа, знак равенства (=) и тип, равносильный объявляемому. Например:
type
Name = String[10] {Name - это, в принципе, то же, что и String[10]}
var
You, Friend: Name;
Other: String[10];
В данном случае следует, однако, знать, что Other, как бы то ни было, имеет другой тип, нежели You или Friend. Но присваивать их и их значения друг другу можно, потому что в данном случае равенства типов не требуется, достаточно их совместимости, т. е. сходности. Также можно использовать вместе числа разных типов и т. д.