Система типов данных языка 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) при наличии нескольких операций одного приоритета вычисления выполняются слева направо.

Наши рекомендации