Типы переменных в Паскале: описание, свойства, примеры

Для того чтобы машина смогла обработать какие бы то ни было входные данные, она должна «понимать», к какому типу принадлежат переменные, в которые занесены значения. При отсутствии информации о формате данных компьютер не сможет определить, допустима ли в конкретном случае та или иная операция: например, интуитивно понятно, что нельзя возвести букву в степень или взять интеграл от строки. Таким образом, пользователь должен определить, какие действия позволительно осуществлять с каждой переменной.

Как и в других языках программирования высокого уровня, типы переменных в Паскале оптимизированы для выполнения задач различной направленности, имеют различный диапазон значений и длину в байтах.

Подразделение типов переменных

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

Рассмотрим порядковые и вещественные типы. К порядковым относятся 5 целых типов, логический, символьный, перечисляемый и тип-диапазон.

Порядковые типы

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

Длина Byte и ShortInt – 1 байт. Различие между ними состоит в том, что Byte хранит только неотрицательные значения, а ShortInt позволяет хранить и отрицательные (от -128 до +127). Аналогично соотносятся друг с другом типы Word и Integer, с тем лишь различием, что их размер – 2 байта.

Наконец, LongInt позволяет хранить и отрицательные, и положительные значения, используя 4 байта – в числовом измерении это 2 в 16-й степени в обе стороны от нуля. Различные виды переменных в Паскале способствуют эффективному решению пользовательских задач, поскольку в каждом конкретном случае может требоваться как малый, так и большой диапазон значений, а также не исключено наличие ограничений по объему выделяемой памяти.

Важно понимать, что нуль занимает столько же места в памяти, сколько и любое другое число. Таким образом, при формировании диапазона значений минимальное отрицательное число по модулю будет на единицу больше, чем положительное: например, от -128 до +127.

Переменные, принадлежащие к логическому типу (BOOLEAN), могут принимать значение TRUE (истина) или FALSE (ложь) и требуют 1 байт памяти.

Тип CHAR позволяет хранить любой из множества символов, существующих в памяти компьютера. При этом в символьных переменных в Паскале реально хранится лишь код знака, в соответствии с которым отображается его графическая форма.

Вещественные типы

Среди типов переменных в Паскале выделяется несколько числовых с возможностью записи дробной части. Различие между типами Single, Real, Double и Extended сводится к диапазону принимаемых значений, количеству значащих цифр после запятой и размеру в байтах.

В соответствии с порядком, представленным выше, переменная каждого типа будет занимать 4, 6, 8 или 10 байт.

Массивы

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

Type

String=array [1..100] of char;

Var Y=String;

Таким образом, мы получили тип под названием String, позволяющий задавать переменные длиной в 100 символов. В последней строке задан непосредственно одномерный массив Y, имеющий тип String. Описание переменных в Паскале осуществляется путём размещения с левой стороны идентификатора, а справа, после знака равенства, значения переменной.

Диапазон индексов, записанный в квадратных скобках, позволяет обращаться к каждому конкретному элементу массива:

readln(Y[2]);

В данном случае мы произвели чтение второго элемента созданного ранее массива Y.

Частным случаем одномерного массива являются и строковые переменные в Паскале, ведь строка – это последовательность символов, т. е. элементов типа char.

Записи

Запись состоит из нескольких полей, заполненных данными любых типов кроме файлового. В целом переменная такого типа похожа на элемент базы данных. Например, можно занести в неё имя человека и номер его телефона:

type NTel = Record

NAME: String[12];

NUMBER: String[10]

end;

var one: NTel;

В первой строке слева указывается имя типа, а справа – служебное слово record. Во второй строке задано поле с именем, в третьей – номер телефона. Слово «end» говорит о том, что мы ввели все поля, которые хотели, и на этом процесс создания записи завершается.

Наконец в последней строке мы задаём переменную One, имеющую тип NTel.

Обращаться можно как к записи в целом, так и к отдельным её компонентам, например: one.NAME (т. е. имя_переменной.имя_поля_записи).

Файлы

Паскаль позволяет работать с текстовыми, типизированными и нетипизированными файлами, которые представляют собой структурированную последовательность компонент, имеющих одинаковый тип.

При чтении из файла или записи в него может использоваться как полный адрес, так и краткая его форма:

‘File1.DAT’

‘C:\Folder\File2.txt’

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

Задать переменную файлового типа можно следующим образом:

var

f1: file of integer;

Для работы с файлами используются различные функции и процедуры, связывающие переменную с файлом на диске, открывающие его для чтения, записи и перезаписи, закрывающие по окончании работы, позволяющие создавать новое имя и удаляющие файл с компьютера.

В заключение

Без умения использовать различные типы переменных в Паскале пользователь не сможет реализовать даже простейшую задачу. Для того чтобы программа выполняла алгоритм без ошибок, требуется выучить как служебные слова, так и синтаксис, поскольку машина умеет «понимать» команды только в том случае, если они написаны единственно верным способом.

Комментарии