Автор: Пользователь скрыл имя, 08 Декабря 2011 в 16:53, реферат
С помощью типов данных программист указывает компилятору, как хранить информацию в программе. При объявлении переменной необходимо указать ее тип. Одни типы уже определены в языке, другие программисту приходится задавать самому. В ранних языках программирования допускалось ограниченное число типов данных, и Pascal оказался одним из первых языков, допускающих определение в программе новых типов.
Введение 3
1 Простые типы данных 4
1.1 Порядковые 4
1.2 Вещественный 5
2 Структурные типы данных 8
2.1 Записи 8
2.2 Массивы 10
2.3 Множества 10
2.4 Файловый тип 11
Вывод 12
Список использованных источников
СОДЕРЖАНИЕ
Введение
1 Простые
типы данных
2.1 Записи
2.2 Массивы
2.3 Множества
2.4 Файловый тип
Вывод
Список
использованных источников
ВВЕДЕНИЕ
С помощью типов данных программист указывает компилятору, как хранить информацию в программе. При объявлении переменной необходимо указать ее тип. Одни типы уже определены в языке, другие программисту приходится задавать самому. В ранних языках программирования допускалось ограниченное число типов данных, и Pascal оказался одним из первых языков, допускающих определение в программе новых типов.
Типы данных, определяемые пользователем, обычно задаются в разделе определения типов программы или модуля (unit), однако это можно делать и внутри процедур или функции. Объявления типов действуют в пределах того блока, в котором они размещены. Вне этого блока ссылаться на такие типы нельзя. Внутри же они заменяют все внешние типы с тем же именем. Объявленные типы данных можно применять в любом месте области их видимости; запрещена только ссылка определяемого типа на самого себя (тут, однако, есть одно исключение, касающееся указателей).
Объявления
типов в Pascal являются для компилятора
чем-то вроде схем, которые он должен запомнить
на случай, если вдруг встретит в программе
ссылки на тот или иной тип. Само по себе
объявление типа не вносит в программу
никаких изменений.
1. Простые типы данных
Любой
реально существующий тип данных,
каким бы сложным он ни казался
на первый взгляд, представляет собой
простые составляющие, которыми процессор
может манипулировать. В Object Pascal
эти простые типы данных разбиты на две
группы: порядковые, представляющие данные
разных объемов, которыми процессор может
легко манипулировать, и действительные,
представляющие приближенно математические
действительные числа. Разделение типов
на порядковые и действительные несколько
условно. Точно так же простые данные можно
было бы разделить на числа и не числа.
Однако в языке Object Pascal порядковые и действительные
данные трактуются по-разному, и такое
разделение даже полезно.
1.1 Порядковые:
Из простых
типов данных порядковые - самые
простые. В этих типах информация
представляется в виде отдельных
элементов. Связь между отдельными
элементами и их представлением в
памяти определяет естественные отношения
порядка между этими
В Object Pascal определены три группы порядковых типов и два типа, определяемых пользователем. Группы - это целые, символьные и булевы типы. Порядковые типы, задаваемые пользователем, - это перечисления и поддиапазоны.
Все значения любого порядкового типа образуют упорядоченную последовательность, и значение переменной порядкового типа определяется его местом в этой последовательности. За исключением переменных целых типов, значения которых могут быть как положительными, так и отрицательными, первый элемент любого порядкового типа имеет номер 0, второй элемент - номер 1 и т.д. Порядковый номер целого значения равен самому значению. Отношение порядка определяет общие для данных всех порядковых типов операции. Некоторые стандартные функции такого вида встроены в Object Pascal. Они представлены в таблице 1.1.
Для всех порядковых типов в Object Pascal существует операция задания типа для
преобразования
целых значений в значения
соответствующих порядковых
Таблица 1.1. Операции над порядковыми типами
Операция | Описания |
Low (T) | Минимальное значение порядкового типа Т |
High(T) | Максимальное значение порядкового типа Т |
Ord(X) | Порядковый номер значения выражения порядкового типа. Для целого выражения - просто его значение. Для остальных порядковых типов Ord возвращает физическое представление результата выражения, трактуемое как целое число. Возвращаемое значение всегда принадлежит одному из целых типов |
Pred(X) | Предыдущее
по порядку значение. Для целых
выражений
эквивалентно Х-1 |
Succ(X) | Следующее по порядку значение. Для целых выражений эквивалентно Х+1 |
Dec(V) | Уменьшает значение переменной на 1. Эквивалентно V := Pred(V) |
Inc(V) | Увеличивает значение переменной на 1. Эквивалентно V := Succ(V) |
1.2 Действительные типы:
В переменных действительных типов содержатся числа, состоящие из целой и дробной частей. В Object Pascal определено шесть действительных типов. Все типы могут представлять число 0, однако они различаются пороговым (минимальным положительным) и максимальным значениями, которые могут представлять, а также точностью (количеством значащих цифр) и объемом. Действительные типы описываются в таблице 1.2.
Таблица 1.2 Вещественные типы
Тип | Порог | Максимальное значение | Количество значащих цифр | Объем (байт) |
Real | 2.9E-39 | 1.7Е38 | 11-12 | 6 |
Single | 1.5E-45 | 3.4Е38 | 7-8 | 4 |
Double | 5.0E-324 | 1.7Е308 | 15-16 | 8 |
Extended | 3.4E-4932 | 1.IE4932 | 19-20 | 10 |
Comp | 1.0 | 9.2Е18 | 19-20 | 8 |
Currency | 0.0001 | 9.2Е14 | 19-20 | 8 |
Целые типы представляют целые числа, т.е. числа, дробная часть которых равна нулю. Разница между двумя неодинаковыми целыми числами не может быть меньше единицы. Именно благодаря этому целые числа применяются для обозначения дискретных величин, независимо от того, имеют ли реальные объекты какое-либо отношение к числам. Действительные типы предназначены для представления чисел, которые могут иметь дробную часть, поэтому они полезны для представления величин, которые могут быть довольно близкими, почти непрерывными.
Заметьте, именно почти. Несмотря на название действительные, переменные этих типов отличаются от математических действительных чисел. В Object Pascal действительный тип - это подмножество математических действительных чисел, которые можно представить в формате с плавающей запятой и фиксированным числом цифр. Для невнимательных программистов ситуация усугубляется тем, что в стандартных форматах IEEE (Institute of Electrical and Electronic Engi-neers - Институт инженеров- электриков и электронщиков), применяемых в программах Delphi и вообще в большинстве программ для Windows, возможно точное представление только чисел с фиксированным числом бит в дробной части. Удивительно, но такое простое число, как 0,1, записывается в расширенном формате IEEE с некоторой погрешностью, пусть очень небольшой. Из-за этого представление с плавающей запятой оказывается несколько неудобным для программ, в которых сохраняется и выводится фиксированное число десятичных разрядов численных значений. Это относится и к программам, работающим с ''живыми" деньгами.
Для частичного решения этой проблемы в Object Pascal определены два формата с фиксированной запятой. Тип Comp (computational - вычислительный) содержит только целые числа в диапазоне от -+1 до -1, что примерно соответствует диапазону от -9,2× до 9,2×. При программировании операций с американской валютой разработчикам обычно приходится искать естественный способ записи денежных сумм, в котором целая часть числа определяет количество долларов, дробная - центов. Если такие значения записывать в переменные типа
Comp, придется представлять их в виде целого числа центов. В этом случае следует умножать значение на 100 для обращения центов в доллары, а затем делить на 100, чтобы снова получить центы.
Этих
забот можно избежать, если воспользоваться
типом Currency. В этом случае задачу выбора
масштаба возьмет на себя компилятор.
Физически значения Currency записываются
в память того же объема, что и Comp, как целые
числа, однако компилятор не забывает
вовремя разделить значение на 10 000 (не
на 100!) для его приведения в соответствие
с денежным знаком и умножить на 10 000 перед
записью в память. Это обеспечивает абсолютную
точность в четыре десятичных знака после
запятой.
2. Структурные типы
На элементарном уровне наиболее полезными типами данных являются те, в которых содержится численная и строковая (символьная) информация. Объединив несколько образцов этих элементарных типов, можно создавать более сложные типы данных.
Структурные типы данных предоставляют возможность создавать новые типы, расширяя определения уже существующих таким образом, чтобы данные новых типов могли содержать более одного значения. Элементами данных структурных типов можно манипулировать как поодиночке, так и вместе, и эти элементы сами могут быть структурными. Никаких ограничений на подобное вложение одной структуры в другую не существует.
Ниже перечислены структурные типы, определенные в Delphi.
Перечисленные типы сами по
себе обычно являются не
С помощью зарезервированного слова record (запись) в одном типе можно объединять данные разных типов.
Фиксированные записи
В фиксированной части записи
определяется одно или
record
fieldnamel: fieldtypel;
fieldname2, fieldname3: fieldtype2;
end;
Имея доступ к информации в записи, можно обрабатывать всю запись целиком (все поля одновременно) или только отдельное поле. Для обращения к отдельному полю наберите имя записи, точку и идентификатор поля, например
MyRec.Fieldnamel
Для доступа ко всей записи просто укажите ее имя.
Вариантные записи
Вариантная часть типа record дает возможность по-разному трактовать область памяти, совместно занимаемую вариантами поля:
record