Переменные в Раscal

Переменные — некие данные, которы могут изменять свои значения в процессе выполнения программ.

В Паскале переменные объявляются перед основным блоком программы, в блоке var;
Так как язык Паскаль является сильно типизированным языком программирования, то во время объявления переменной необходимо явно указать её тип.

В паскале существуют различные типы, но так же можно задать свой тип.
В разных компилятарах одни и теже типы могут иметь разный диапазон значений и из за этого иметь разный объём выделяемой памяти.

Рассмотрим основные типы данных и приведём примеры их объявлений.

 

Целочисленные типы данных:

Тип [attr rowspan="2"] Borland Pascal / Turbo Pascal / Object Pascal [attr colspan="2"] Delphi [attr colspan="2"] Pascal ABC [attr colspan="2"]
Диапазон Размер(байт) Диапазон Размер(байт) Диапазон Размер(байт)
Byte 0..255 1 0..255 1 0..255 1
ShortInt -128..127 1 -128..127 1 -128..127 1
SmallInt - - −32768..32767 2 −32768..32767 2
Word 0..65535 2 0..65535 2 0..65535 2
Integer -32768..32767 2 −2147483648..2147483647 2-4 −2147483648..2147483647 4
Cardinal - - 0..4294967295 4 0..4294967295 4
LongWord - - 0..4294967295 4 0..4294967295 4
LongInt -2147483648..2147483647 4 -2147483648..2147483647 4 -2147483648..2147483647 4
Int64 - - -9223372036854775808..9223372036854775807 8 -9223372036854775808..9223372036854775807 8
QWord - - 0..18446744073709551615 8 - -
UInt64 - - - - 0..18446744073709551615 8

Что бы объявить целочисленную переменную в блоке var надо указать имя и тип переменной по следующему шаблону:
<имя переменной 1>,<имя переменной 2>, … ,<имя переменной n>:<тип>;

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

Пример объявления целочисленных переменных:

 

Вещественные типы данных:

Тип [attr rowspan="2"] Borland Pascal / Turbo Pascal / Object Pascal / Delphi<code>[attr colspan="3"] ,Pascal ABC [attr colspan="3"]
Диапазон Мантисса Размер(байт) Диапазон Мантисса Размер(байт)
Real 2.9*10E38-39…1.7*10E38 11-12 6 -1.8*10E308…1.8*10E308 15 8
Double 5.0*10E308-324…1.7*10E308 7-8 8 -1.8*10E308…1.8*10E308 15 8
Single 1.5*10E38-45…3.4*10E38 15-16 4 -1.8*10E38…1.8*10E38 7 4
Extended 1.9*10E-4951…1.1*10E4932 19-20 10 - - -
Comp -2E64+1…2E63-1 10-20 8 - - -

Что бы объявить вещественную переменную в блоке var надо указать имя и тип переменной так-же как и при объявлении целочисленных переменных:

<имя переменной 1>,<имя переменной 2>, … ,<имя переменной n>:<тип>;

Пример объявления вещественных переменных:

 

Массивы

Массив(array) в pascal — это ограниченное, упорядоченное множество однородных элементов. То есть все элементы в массиве имеют одинаковый тип имеют определённый номер элемента и при объявлении массива задаётся его максимальный размер.

Borland Pascal и Turbo Pascal могут иметь максимальное число элементов в массиве 256.

FreePascal, Delphi, Object Pascal массивы ограничиваются размером выделяемой памяти в 2 Гб — 1 байт.
(например переменная типа byte в Delphi занимает 1 байт следовательно максимальный размер массива равен (2*1024*1024*1024-1)/1=2147483647 элементов.)

Что бы объявить массив, в блоке var надо указать тип индекса и тип элементов, по следующему шаблону:

<имя массива 1>,<имя массива 2>,…,<имя массива 3>:array[<тип индекса>] of <тип элементов>;

Пример объявления массивов:

 

Строковые и литерные типы

Char — литерный тип, занимает 2 байта памяти. Переменная с этим типом может содержать 1 символ.

String — строковый тип, является массив из Литерных символов, где 0-ое значение занято размером строки.

В Pascal изначально надо задать размер строки. Максимальный размер строки 255 символов. По умолчанию, если размер строки не указан явно, в Borland Pascal и Turbo Pascal размер строки будет равен 255 символов, в UCSD Pascal — 80. В  FreePascal и Delphi не ограниченная переменная string имеет на самом деле тип AnsiString который может занимать максимальный размер в памяти до 2 Гб это 2147483646 символов.

В Object Pascal строковая переменная так же имеет ограничение в 2 Гб.

Что бы объявить строку, в блоке var надо указать тип string и возможно указать кол-во элементов, по следующему шаблону:

<имя переменной 1>,<имя переменной 2>, … ,<имя переменной n>:string;

или

<имя переменной 1>,<имя переменной 2>, … ,<имя переменной n>:string[<кол-во символов в строке>];

Пример объявления строковой переменной:

 

Множество.

В Pascal так же существует такой тип данных, как множество. В отличии от массивов элемент в множестве не имеет своего порядкового номера. Что делает лёгким такие задачи, как сравнить множества между собой, или посмотреть есть ли элемент в этом множестве.

Что бы объявить множество, в блоке var надо указать тип set и указать элементы множества.

Пример объявления множества:

 

Пользовательские типы.

В Pascal есть возоможноcть создавать свои типы, основываясь на уже существующих.

Для определения своих типов необходимо до блока var вставить блок type и определить собственные типы.

Что бы создать тип на основе строки, надо в блоке type создать тип по шаблону:

<имя типа> = string[<максимальная длина строки>]

Что бы создать тип на основе массива, надо в блоке type создать тип по шаблону:

<имя типа> = array [<тип индекса>] of <тип элементов>;

Что бы создать тип на основе множества, надо в блоке type создать тип по шаблону:

<имя типа> = set of  <элементы множества>;

Дальше можно использовать эти типы, для объявления переменных в блоке var.

Пример создание своего типа на основе существующего:

Так же возможно создать cостовные типы(record). Которые были предвестниками объектно-ориентированному программированию. В Delphi это в дальнейшем перерасло в  классы ( calass), а в Object Pascal в объекты(object).

Что бы использовать состовной тип, надо в блоке type объявить его по следующему шаблону:

type <имя типа> = record
   <имя элемента 1>: <тип элемента>;
   <имя элемента 2>: <тип элемента>;
   …
   <имя элемента n>: <тип элемента>;
end ;

Дальше этот тип можно присвоить в блоке var вашей переменной по шаблону:

<имя переменной>:<тип>;

Что бы в дальнейшем обратиться к элементу надо написать имя элемента после имени переменной, через точку. Шаблон:

<имя переменной>.<имя элемента>;

Пример использования записей:

Комментарии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *