9 Июнь 2008

10. Описание данных. Типы данных в языке Паскаль.

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

К простым типам относятся порядковые и вещественные типы, а также тип дата-время.

Порядковые типы отличаются тем, что каждый из них имеет конечное количество

возможных значений. Эти значения можно определенным образом упорядочить (отсюда – название типов) и, следовательно, с каждым из них можно сопоставить некоторое целое число – порядковый номер значения.

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

Тип дата-время предназначен для хранения даты и времени. Фактически для этих целей он использует вещественный формат.

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

Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать 1, 2, 4 или 8 байтов.

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

Логические типы. В стандартном языке Паскаль определен тип Boolean. Значениями логического типа может быть одна из предварительно объявленных констант False (ложь) или True (истина). Для них справедливы правила:

Ord (False) = 0

Ord (True) <> 0

Succ (False) = True

Pred (True) = False

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

Символьный тип. Значениями символьного типа является множество всех символов клавиатуры компьютера. Каждому символу приписывается целое число в диапазоне 0…255. Это число служит кодом внутреннего представления символа, его возвращает функция Ord.

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

Соответствие между значениями перечисленного типа и порядковыми номерами этих значений устанавливается очередностью перечисления: первое значение в списке получает порядковый номер 0, второе – 1 и т.д. Максимальная мощность перечисленного типа составляет 65536 значений, поэтому фактически перечисленный тип задает некоторое подмножество целого типа Word и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями 0, 1, и т.д.

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

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

Тип-диапазон задается границами своих значений внутри базового типа:

<мин. знач.>..<макс. знач.>

Здесь <мин. знач.> - минимальное значение типа-диапазона, <макс. знач.> - максимальное его значение.

Тип-диапазон необязательно описывать в разделе type, а можно указывать непосредственно при объявлении переменной.

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

Вещественное число занимает от 4 до 10 смежных байтов и имеет следующую структуру в памяти компьютера:

s

e

m

Здесь s – знаковый разряд числа; e – экспоненциальная часть; содержит двоичный порядок; m – мантисса числа.

Мантисса m имеет длину от 23 до 63 двоичных разрядов, что и обеспечивает точность десятичных цифр. Десятичная точка (запятая) подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение сдвигается влево или вправо в соответствии с двоичным порядком числа, хранящимся в экспоненциальной части, поэтому действия над вещественными числами называют арифметикой с плавающей точкой (запятой).

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

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Нет комментариев »

Еще нет комментариев.

RSS лента комментариев к этой записи. TrackBack URL

Оставить комментарий

Работает на WordPress