Стандартные скалярные типы переменных
В Turbo Pascal используются типы целых и вещественных переменных, приведенные в таблицах № 1 и № 2.
Таблица 1. Целочисленные типы переменных Turbo Pascal
Тип | Наименование | Диапазон допустимых значений | Занимаемая память |
SHORTINT | Короткое целое | -128 ... 127 | 1 байт |
BYTE | Байт | 0 ... 255 | 1 байт |
INTEGER | Целое | -32768 ... 32767 | 2 байт |
WORD | Слово | 0 ...65535 | 2 байт |
LONGINT | Длинное целое | -2 109 ... 2 109 | 4 байт |
Таблица 2.Вещественный типы переменных Turbo Pascal
Тип | Наименование | Диапазон допустимых значений | Число значащих цифр | Занимаемая память |
REAL | Вещественный | 10-38 .. 1038 | 6 байт | |
SINGLE | С одномерной точностью | 10-32..1032 | 4 байт | |
DOUBLE | С двойной точностью | 10-308 ..10308 | 8 байт | |
EXTENDED | С повышенной точностью | 10-4931..104931 | 10 байт | |
COMP | Сложный | - 9 1018.. 9 1018 | 8 байт |
Последние четыре вещественных типа реализуются только при наличии на плате ПК сопроцессора Intel 8087/80287/80387 для работы с числами, представленными в формате с плавающей точкой, или установленных опций { $E+, N+}.
Для целочисленных переменных переполнения при выполнении арифметических операций не обнаруживается.
При возникновении переполнения для переменных вещественного типа происходит программное прерывание, а в случае потери значимости для этих переменных результат равен нулю.
Типы real, single, double, extended, comp не могут использоваться:
ü в качестве индексов массивов;
ü в операторах For и Case;
ü в качестве базисного типа при определении множеств;
ü при определении подтипов.
Логические типы переменных BOOLEAN имеют два значения TRUE и FALSE, занимают один байт памяти.
Символьные типы переменных CHAR могут принимать значения из множества символов ASCII, занимают один байт памяти.
ВЫРАЖЕНИЯ
Переменные и константы всех типов используются в выражениях. Выражения задают порядок выполнения действий над элементами данных и состоят из операндов (переменных, констант, функций) и круглых скобок, соединенных операциями. Операции определяют действия, которые надо выполнить над операндами. В простейшем случае выражение может состоять из одной переменной или константы.
Операции в Turbo Pascal делятся в зависимости от типа операндов, использующихся в выражениях, на арифметические, отношения, логические (булевские), операции @, строковые и другие.
Арифметические выражения - это константы. переменные, функции, соединенные знаками арифметических операций. Арифметические выражения вычисляются слева направо с учетом приоритета операций.
Таблица 3. Арифметические операции
Операции | Действие | Тип операндов | Тип результата |
+ | сложение | вещественно-целый | вещественно-целый |
- | вычитание | вещественно-целый | вещественно-целый |
* | умножение | вещественно-целый | вещественно-целый |
/ | деление | вещественно-целый | вещественный |
div | целочисленное деление | целый | целый |
mod | остаток от деления | целый | целый |
and | арифметическое “и” | целый | целый |
or | арифметическое “или” | целый | целый |
hor | исключающая дизъюкция “или” | целый | целый |
not | арифметическое отрицание | целый | целый |
Унарные + | сохранение знака | вещественно-целый | вещественно-целый |
- | отрицание знака | вещественно-целый | вещественно-целый |
Операции отношения выполняют сравнение двух операндов и определяют, истинно значение или ложно. Сравниваемые величины могут принадлежать к любому скалярному или перечисляемому типу. Результат всегда имеет булевский тип.
Таблица 4. Операции отношения
Операции | Действие | Выражение | Результат |
= | равно | А=В | True , если А равно В |
<> | не равно | А<>B | True , если А не равно В |
> | больше | A>B | True , если А больше В |
< | меньше | A<B | True , если А меньше В |
>= | больше или равно | A>=B | True , если А больше или равно В |
<= | меньше или равно | A<=B | True , если А меньше или равно В |
in | принадлежность | A in М | True , если А находится в списке М |
Результатом логических (булевских) операций является логическое значение True или False. операндами служат данные типа boolean.
Таблица 5. Логические операции.
Операции | Действие | выражение | А | В | Результата |
not | логическое отрицание | not A | True False | False True | |
and | логическое “И” | A and B | True True False False | True False True False | True False False False |
or | логическое “ИЛИ” | A or B | True True False False | True False True False | False True True True |
xor | исключающее “ИЛИ” | A xor B | True True False False | True False True False | False True True False |
Выполнение каждой операции происходит с учетом ее приоритета. Значения приоритетов указаны в таблицы 6.
Таблица 6. Порядок выполнения операций.
Операции | Приоритет | Вид операций |
@, not | первый ( высший) | унарная операция |
*,/, div, mod, and | второй | операции типа умножения |
+,-, or, xor | третий | операции типа сложения |
=, <>,<,>,<=,>=, in | четвертый (низший) | операции отношения |
СТРУКТУРА ПРОГРАММЫ
Программа на алгоритмическом языке Turbo Pascal представляет собой последовательность операторов, с помощью которых реализуется алгоритм решения задачи. Программа состоит из заголовка, раздела описаний глобальных меток, констант, переменных, типов, процедур и функций и блока операторов основной программы. Процедуры и функции могут содержать разделы описаний локальных меток, констант. переменных.
Структура программы на языке Turbo Pascal имеет вид:
Program <имя программы>;
Uses <список используемых модулей>;
Label <Раздел описания меток>;
Const <Раздел описания констант>;
Type < Раздел описания типов>;
Var < Раздел описания переменных>;
Function < Раздел описания функций>;
Procedure < Раздел описания процедур>;
BEGIN Оператор 1; { Раздел операторов};
Оператор 2; {Текст основной программы}
Оператор 3;
. . . . . . . . .
Оператор n;
END.
Любой раздел, кроме раздела операторов основной программы, может отсутствовать.
В заголовке программы после служебного слова Program приводится имя программы ( идентификатор) Имя может иметь любую длин, из них для компилятора имеют значение первые 63 символа. Имя обязательно должно начинаться с буквы. Заголовок программы выполняет чисто декоративные функции и служит для совместимости с другими компиляторами языка Паскаль или удовлетворения эстетических запросов программиста.
Любую программу, написанную на языке Паскаль можно условно разделить на две основные части: