Система типов данных языка Turbo Pascal
Pascal является типизированным языком. Это означает, что в Pascal любые данные характеризуются своим типом. Тип данных определяется при их описании и не может быть изменен. Тип – это множество значений, которые могут принимать данные и множество операций, допустимых над этими значениями. Данные могут участвовать только в операциях, допустимых их типом.
Целые типы
Эта группа типов обозначает множества целых чисел в различных диапазонах. Имеется 5 целых типов, различающихся допустимым диапазоном значений и размером занимаемой памяти. Целые типы обозначаются идентификаторами Integer, Byte, Shortint, Word, Longint; их характеристики приведены в таблице 1.
Вещественные типы
Эта группа типов обозначает множества вещественных значений в различных диапазонах. Turbo Pascal поддерживает пять различных вещественных типа. Они именуются идентификаторами Real, Single, Double, Extende, Comp; их характеристики приведены в таблице 2.
Таблица 1
Целый тип | Диапазон значений | Размер памяти |
Shortint Integer Longint Byte Word | (-128…127) (-32768…32767) (-2147483648…2147483647) (0…255) (0…65535) | 1 байт 2 байта 4 байта 1 байт 2 байта |
Таблица 2
Вещественный тип | Диапазон значений | Число цифр мантиссы | Размер памяти |
Real Single Double Extende Comp | (2.9Е-39…1.7Е38) (1.5Е-45…3.4Е38) (5.0Е-324…1.7Е308) (3.4Е-4932…1.1Е4931) (-2Е+63…+2Е+62) | 11-12 7-8 15-16 19-20 | 6 байт 4 байта 8 байт 10 байт 8 байт |
Символьный тип
Это тип данных, состоящих из одного символа из множества ASCII (Американский стандартный код для обмена информацией), его характеристики приведены в таблице 3.
В программе значения данных типа char должны быть заключены в апострофы, например, ‘A’, ‘*’.
Таблица 3
Символьный тип | Диапазон значений | Размер памяти |
Char | Кодовая таблица ПЭВМ | 1 байт |
Булевский (логический) тип
Булевский тип обозначается идентификатором Boolean, его характеристики приведены в таблице 4.
Таблица 4
Булевский тип | Диапазон значений | Размер памяти |
Boolean | True, False | 1 байт |
Состоит из 2-х значений: True (истина), False (ложь). Применяется в логических выражениях и выражениях отношения.
Структура Pascal-программы
PROGRAM имя программы
USES список используемых библиотек (модулей);
LABEL список меток;
CONST определение констант программы;
TYPE описание типов;
VAR описание переменных программы;
ОПРЕДЕЛЕНИЕ ПРОЦЕДУР (заголовки и, возможно, тела процедур);
ОПРЕДЕЛЕНИЕ ФУНКЦИЙ (заголовки и, возможно, тела функций);
BEGIN
основной блок программы
END.
Pascal-программа всегда состоит из 2-х основных частей: описания последовательности действий, которые необходимо выполнить; и описания данных, с которыми оперируют действия.
Описание заголовка программы
Формат:
Program <имя программы> (список имен файлов);
Например:
Program laborator (Input, Output);
Заголовок программы несет чисто смысловую нагрузку и может отсутствовать. В качестве списка имен файлов обычно используют стандартные идентификаторы стандартных файлов ввода-вывода Input и Output.
Описание используемых библиотек
Формат:
Uses <имя 1>, <имя 2>,…;
Например:
Uses Crt, DOS, MyLib; {подключены 3 библиотеки с соответствующими именами}
С помощью директивы Uses подключаются библиотечные модули из стандартного набора Turbo Pascal или написанные пользователем.
Описание меток
Формат:
Label <имя 1>, <имя 2>,…
Например:
Label Metka1,A,9999;
Перед любым оператором языка Паскаль можно поставить метку, что позволяет выполнить переход на этот оператор с помощью оператора Goto из любого места программы. Метка состоит из имени и следующего за ним двоеточия. Именем может служить идентификатор или цифра (десятичное число от 0 до 9999). Перед употреблением метка должна быть описана, причем каждая не более 1 раза. Если метка описана, но в разделе операторов не используется, то ошибки при этом не возникает.
Описание констант
В этом разделе производится присваивание идентификатором констант постоянных значений.
Формат:
Const <идентификатор>=<значение>;
Например:
One=1;
Limit=-One;
Separator=’******’;
High=-1000;
Будучи определенной в программе, любой идентификатор константы может входить во все конструкции, в которых может присутствовать связанное с ним значение, например: Diar:= (x-High)/2+One;
Не допускаются ситуации, когда идентификатору константы предлагается изменить значение, например: High:= (x+y)*2;
Операндами константного выражения могут быть числа, строки, идентификаторы констант, стандартные функции, например:
Const
Min=0; Max=100;
Center= (Max-Min)/2; Message=’ Out of memory’;
Error_Txt=’Error:’+Message+’.’;
Удачное с точки зрения мнемоники именование констант и использование их в программе вместо записи конкретных значений считается хорошим стилем программирования, т.к. делает программу более читаемой и позволяет быстро вносить в нее корректировку.
Описание типов
Тип данных может быть описан либо в разделе описания типов, либо в разделе описания переменных. Выбор описания типа зависит только от программиста и специфики программы.
Формат:
Type <имя типа>=<значение типа>;
Например:
Type
Positive=word;
Diapason=1..20;
Var
LoopGoup: Positive;
Index: real;
Ind: Diapason;
First_Letter; ‘a’..’z’;
Описание переменных
Каждая встречающаяся в программе переменная должна быть описана. Описание обязательно предшествует использованию переменной.
Формат:
Var <идентификатор,…>;<mun>;
Например:
Var
А,B,C : integer;
Result, Summa: real;
Vxod: boolean;
Описание операторов
Раздел операторов является основным, т.к. именно в нем с предварительно описанными переменными, константами, значениями функций выполняются действия, позволяющие получить результат.
Формат:
Begin
<оператор;>
…
<оператор>
End.
Выражения
Операции в языке Паскаль подразделяются на арифметические, отношения, логические, строковые и др. Выражения соответственно называются арифметические, отношения, логические и т.д.
арифметические операции:
«+» сложение;
«-» вычитание;
«*» умножение;
«/» деление;
div целочисленное деление;
mod взятие остатка от целочисленного деления
Например: 9/4=2.25; 9div 4=2; 9 mod 4=1.
Тип результата выражения зависит от типов операндов, участвующих в операции. Операции div и mod допустимы только над значениями целого типа.
операции отношения:
= равно;
<> не равно;
> больше;
< меньше;
>=, => больше или равно;
<=, =< меньше или равно;
in принадлежность.
Например: А in М
Результат всегда имеет булевский тип и принимает одно из двух значений: True – если значение выражения истинно; и False – если значение выражения ложно.
логические операции:
1) AND (логическое и).
Результат равен True, если аргументы одновременно равны True. В остальных случаях результат выражения будет равен False.
Например: А and В
2) OR (логическое или).
Результат равен True, если хотя бы один аргумент равен True. В остальных случаях результат выражения будет равен False.
Например: А or В
3) XOR (исключающее или).
Результат равен True, если аргументы одновременно равны False. В остальных случаях результат выражения будет равен False.
Например: А xor В
4) NOT (логическое отрицание).
Результат равен True, если аргумент равен False, и результат равен False, если аргумент равен True.
Например: not А
Вычисление выражений производится по следующим правилам:
1) запись выражения производится в одну строку без каких-либо подстрочных или надстрочных знаков с использованием только круглых скобок;
2) выполняются операции внутри скобок. Если имеется несколько пар скобок, вычисления начинаются с самых внутренних;
3) порядок вычислений внутри скобок определяется приоритетом (старшинством) операций:
а) вычисление значений функций;
б) not;
в) возведение в степень;
г) операции типа умножения (*, /, div, mod, and);
д) операции типа сложения (+, - , or, xor);
е) операции отношения.
Операция, имеющая высший приоритет, выполняется первой.
4) при наличии нескольких операций одного приоритета вычисления выполняются слева направо.