Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KATA Microsoft Office Word (6).docx
Скачиваний:
12
Добавлен:
17.07.2019
Размер:
43.37 Кб
Скачать

КРАТКОЕ ОПИСАНИЕ ЯЗЫКА ОВШСТ РА8САЕ ПРИЛОЖЕНИЕ К ЛЕКЦИИ 7

П7.1. Типы данных

В языке ОЬjес1 Рascal! имеется огромный набор стандартных типов. Наиболее распространенные из них - числовые, булевский, символьный и строковый. Первые три относятся к стандартным скалярным типам, строковый - к регулярным.

Числовые типы подразделяются на целые и вещественные типы. Целые типы в языке ОЬ]ес1 Ра§са1 представлены в следующей таблице:

Идентификатор типа

Диапазон допустимых значений

Занимаемая память

integer

-2147483648..2147483647

81§пеё 32-Ы1

cardinal

0..4294967295

шш§пес1 32-Ы1

shortint

-128..127

зщпес! 8-Ы1

smallint

-32768..32767

зщпеё 16-Ы1

Longint

-2147483648..2147483647

з1§пес1 32-Ы1

int64

-263..263-1

§1§пес1 64-Ы1

byte

0..255

ипз!§пе(1 8-Ы1;

word

0..65535

ипз1§пеё 16-Ы1

longword

0..4294967295

ипз1§пе(1 32-Ы1

Константы целого типа представляются в виде обычных целых чисел, то есть так, как они записываются в обычной арифметике, с ис­пользованием арабских цифр. Знак"+", как правило, не ставится.

Над представителями целых типов допустимы следующие арифметические операции:

Операция

Знак операции

Ти1п результата

Сложение

+

целый

Вычитание

целый

Умножение

*

целый

Деление

/

вещественный

Деление нацело

01У

целый

Остаток от целочисленного деления

МОО

целый

Тип результата операции "деление" всегда вещественный, да­же если числитель делится на знаменатель нацело. Тип результата операций "деление нацело" и "остаток целочисленного деления" -

При условии, что все операнды, входящие в выражение, имеют целый тип.

всегда целый. Последние две операции допустимы только над це­лочисленными операндами.

Порядок выполнения операций такой же, как и в обычной арифме­тике: сначала вьшолняются умножение и деление, затем - сложение и вы­читание. Операции 01V и МО О вьшолняются в последнюю очередь. Поря­док выполнения может быть изменен с помощью круглых скобок. В со­мнительных случаях рекомендуется также использовать скобки.

Вещественные типы отличаются от целых наличием дробной части в числе, отделенной от целой части точкой. Все они показаны в следующей таблице:

Идентификатор типа

Диапазон допустимых значений

Количество значащих цифр

Занимаемая память, байт

RеаL

5.0-10'324..1.7-10308

15-16

8

Rеа148

2.9-1 0"39.. 1.7-1 038

11-12

6

Sig1е

1.5-10'45.. 3.4-103*

7-8

4

Double

5.0-10-324..1.7-10308

15-16

8

Ехtеnded

з.б-ю-^.лл-кГ32

19-20

10

Соmp

-263+1 .. 263 -1

19-20

8

Сиggепсу

-922337203685477.5808 ..922337203685477.5807

19-20

8

Вещественные константы могут быть представлены в одной из двух форм - с фиксированной точкой (обычный вид), с плаваю­щей точкой (вид, в который входит мантисса и порядок, например, 0.2718е01; в форме с фиксированной точкой эта же константа запишется как 2.718).

Над операндами вещественных типов допустимы операции сложения, вычитания, умножения и деления. Тип результата - веще­ственный, если хотя бы один из операндов имеет вещественный тип.

Константы символьного типа (СйагасЪег) записываются, как правило, в виде символа, заключенного между апострофами: 'О', '5', '#' и т.д. Если символ не имеет графического представления, он может быть представлен в виде #<код_символа>, например, #13, #27 и т.д. Так же может быть представлен и любой из символов, имеющих гра­фическое изображение (то есть буква, цифра и т.д.). Над операндами символьного типа допустимы операции сравнения (<, <=, >, >=, =, о). Результат этих операций (Тгие - "истина" или Еа1зе - "ложь") та­кой же, как и над числовыми кодами сравниваемых символов.

Булевский, или логический, тип (Воо1еап) представлен двумя константами (Тгие и Ра1зе). При этом считается Тгие>Еа1зе. Выражения булевского типа представляют собой либо обычные числовые или символьные неравенства, включающие знаки <, <=, >, >=, =, о, либо те же неравенства, соединенные знаками логиче­ских операций (N01, АШ, ОК, ХОК).

Результат выполнения операции ЫоЪ А всегда противополо­жен значению логического выражения А: если А=Тгие, то N01 А=Еа1зе и наоборот, если А=Еа1зе, то МОТ А=Тгие. Дан­ная операция является унарной, то есть определенной над одним операндом. Остальные логические операции - бинарные, то есть определенные над двумя операндами.

Результат выполнения операции А АЫО В равен Тгие тогда и только тогда, когда оба операнда А и В равны Тгие одновременно.

Результат выполнения операции А ОК В равен Еа1зе тогда и только тогда, когда оба операнда А и В равны Еа1 зе одновременно.

Результат выполнения операции А ХОК В равен Еа1зе, ко­гда оба операнда А и В равны (то есть либо оба одновременно рав­ны Тгие или оба одновременно равны Еа1зе), и равен Тгие, ко­гда оба операнда имеют разные значения (то есть, когда один из них равен Тгие, а другой- Ра1зе).

Неравенства, соединенные знаками логических операций, принято заключать в круглые скобки:

(х<2) АМО (у>=4*х).

Ниже, при описании некоторых операторов вместо логическо­го выражения будет использоваться обозначение <условие>.

Целые типы, булевский и символьный типы составляют дис­кретные типы.

Все описанные выше типы данных относятся к простым ти­пам языка ОЬ]ес1 Ра§са1.

Регулярные типы, или массивы, используются довольно часто. Массив - это упорядоченное множество переменных, имеющих од­но и то же имя, обладающих одним и тем же типом и различаю­щихся одним или более индексами, которые определяют порядок следования конкретного элемента в данном массиве. Ключевым словом для описания переменных такого типа является служебное

слово АККАУ. Далее в квадратных скобках следует перечислить диапазоны индексов; количество диапазонов определяет количест­во индексов и, соответственно, размерность массива (одномерный, двумерный и т.д.). После этого указывается тип элементов массива. Примеры описания массивов:

а,Ъ:АККАУ [1. .10] ОГКеа!;

с: АККАУ [-5. .5,2. .12] ОГ 1п^едег;.

Обращение к элементам массива может быть таким:

а[1]; Ь[Ы]; с[-2

Каждый диапазон индексов также представляет собой тип; он так и называется тип-диапазон, или ограниченный тип. Верхняя и нижняя границы индекса - это константы, которые могут быть заданы явно или предварительно описаны в разделе СОЫ5Т. Как правило, границами ин­декса служат целочисленные константы. Ими также могут служить сим­вольные или булевские константы, указанные в порядке их возрастания.

Примером стандартного массива служит строковый тип 31г1пд, элементами которого являются представители символьного типа.

Помимо констант, меток, типов и переменных в программе могут быть использованы стандартные и нестандартные процедуры и функции. Каждая нестандартная процедура или функция должна быть описана.

Описание процедуры начинается с ее заголовка, в котором по­сле служебного слова РКОСЕВ11КЕ указываются имя процедуры и в скобках перечень формальных параметров (если они есть). Далее могут следовать такие же подразделы, как и у головной программы (то есть константы, метки, типы, переменные, а также "свои", вло­женные, процедуры и (или) функции). Завершается описание проце­дуры телом, которое начинается со слова ВЕСШ и заканчивается словом ЕЫВ. Пример описания процедуры:

РКОСЕОиКЕ Ргос! (а,Ъ,с:Кеа!;УАК х!,х2:Кеа1); УАК

с1:Кеа1; ВЕСШ

В приведенном примере параметры а, Ь и с описаны как па­раметры-значения. При вызове такой процедуры можно вместо них указать как переменные, так и константы. А параметры х! и х2 описаны как параметры-переменные (этот факт определяется служебным словом УАК). При обращении к данной процедуре вме­сто них можно указывать только переменные. Например:

Ргос!(1,2,з,р1,р2);

При этом значение переменной з должно быть известно зара­нее. Переменным р! и р2, как параметрам-переменным, будет при­своен результат выполнения данной процедуры.

Порядок следования параметров вызова процедуры (или фактических параметров)., а также соответствие их количества и типов количеству и типам формальных параметров является суще­ственным.

Функция, в отличие от процедуры, предназначена для вычис­ления значения простого типа. Структура описания функции не­многим отличается от описания процедуры, главным образом, заго­ловком и тем, что в теле функции последним оператором должен быть оператор присваивания имени функции окончательного ре­зультата.

Пример описания функции:

ГШСТЮК агсз!п (х:Кеа!) :Кеа1; ВЕСШ

ЕМ О;

Структура списка формальных параметров в принципе может быть такой же, как и у процедуры. При вызове функции указывает­ся ее имя и список фактических параметров. Функции, как уже бы­ло сказано, используются при записи выражений.

Объектовый тип - тип, позволяющий описать некоторый объект, с которым можно работать "по частям", описав эти "части" как некоторые составляющие данного объекта. "Частями" могут быть переменные различных типов, процедуры или функции.

Пример:

ТУРЕ

Сотр1ех =

Ке,1т:Кеа1;

РКОСЕОШЕ СК;

РКОСЕ01ЖЕ СМ; ЕШ;

При таком описании типа сотр!ех необходимы еще описа­ния процедур СК и СЭД, которые указаны при описании типа. На­пример:

РКОСЕОиКЕ Сотр1ех.СК; ВЕСШ

ЕШ;

РРчОСЕВОКЕ Сотр1ех.С№; ВЕСШ

ЕШ;

Вызов таких процедур и обращение к другим отдельным составляющим тип (компонентам) осуществляются несколько иначе. Если, скажем, переменная С описана как переменная типа сотр!ех, то указывать ее "части" можно так:

С.Ке; С. 1т; С.СК; С.СТй;

Как видно, имя переменной отделяется от ее -компонента точкой. Программирование с использованием переменных объек­товых типов относится к объектно-ориентированному программи­рованию специальному стилю программирования, основанному на представлении программы в виде совокупности объектов, каж­дый из которых является реализацией (или, как еще говорят, экзем­пляром) определенного класса, а классы образуют иерархию на принципах наследуемости.

Основы объектно-ориентированного программирования будут рассмотрены далее, в гл. 3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]