Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ЯП (Кузьмин) ч.2_new (Паскаль).docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

6. Типы данных в Паскале

6.1 Понятие данных (см. документ «Основы алгоритмизации»)

Данные – модели объектов. Виды данных – исходные, промежуточные и выходные. Данные – константы и данные – переменные.

6.2 Концепция типа данных (см. документ «Основы алгоритмизации»)

Тип данных настраивает исполнителя алгоритма на работу с данными разного типа. Это достигается за счет тог, что понятие типа данных определяет следующие 3 элемента:

  1. список возможных значений данных конкретного типа;

  2. внутреннее представление данных этого типа в памяти ЭВМ;

  3. список возможных операций (действий) над данными конкретного типа.

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

Типы могут быть простыми (скалярными) и сложными (структурированными), а также стандартными и нестандартными. Работа с данными стандартных типов осуществляется без каких-либо дополнительных описаний (кроме указания имени типа) с помощью операторов языка, а для работы с нестандартными типами надо: 1) определить их тип в секции type 2) написать подпрограммы, реализующие действия с этими данными, 3) для выполнения действий надо в нужный момент вызывать соответствующие подпрограммы.

Необходимо чётко различать структуры данных и структуры хранения (структуры представления данных в памяти ЭВМ).

6.3 Классификация типов данных в Турбо Паскале

На Паскале структура типов имеет следующий вид:

В программе для каждого элемента данного должны быть известны имя и тип. В соответствии с этим определением компилятор выделяет память для каждого имени в соответствии с типом. Причем, память выделяется в том порядке, в котором переменные описаны в разделе описания. Например:

Var

a: byte; {занимает 1 байт}

b: integer; {занимает 2 байт}

c: Real; {занимает 6 байт}

a b c

Направление возрастания адресов байтов памяти

Типы данных, как уже говорилось, бывают стандартные и нестандартные.

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

Type

имя = определение типа;

Type

M = record

a, b: byte:

end;

С другой стороны можно, как говорят, сконструировать (объявить) тип переменной прямо в секции описания переменных по следующему шаблону:

Var

имя1: описание нестандартного типа;

имя2: тип;

Например:

Var

v1: array [1..10] of char;

v2: byte;

Переменная v1 относится к тому типу, который вы определили при объявлении переменной, v2 - стандартный тип (но v1 не будет совместим никакой другой тип).

Константы объявляются в секции описания констант следующим образом:

Const

N = 2; целого типа

C = 'c'; символьного типа

D = 1.28; вещественный тип

E = $AD; целого типа

F = 'abcd'; строкового типа

В отличие от описания переменных, при описании констант тип явно не указывается, но он легко угадывается, исходя из формы записи констант (для простых констант).

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

Const

N: byte = 2;

C: char = 'c';

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

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