![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Типы данных в Object Pascal |
Министерство образования и науки Российской Федерации Реферат Типы данных в Objec Pascal Екатеринбург, 2008 Типы данных в языке Паскаль В языке Паскаль любая переменная характеризуется своим типом. Под типом в данном случае понимается множество значений, которые может принимать переменная и, как следствие, множество операций, допустимых над переменной. Паскаль является языком жесткой типизации. Это означает, что тип переменной определяется при ее описании и не может быть изменен. Переменная может участвовать только в операциях, определенных ее типом. Такой подход способствует большей аккуратности и ответственности при составлении программы, делает их поддающимися автоматической (при компиляции) проверке на корректность и в конечном итоге приводит к более высокой надежности создаваемых программ. Паскаль имеет развитую и изощренную систему типов. На основе небольшого числа стандартных типов программист может конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи. Паскаль наследует систему типов эталонного языка, существенно расширяя ее как в смысле добавления очевидных практически полезных типов (например, строковых), так и введением принципиально новых понятий, открывающих нетрадиционные возможности в программировании (в частности, объектов). Базовыми в системе типов являются простые типы. Составные типы по определенным правилам строятся из простых. Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из более простых. Ограниченные типы формируются из простых типов путем сужения их области допустимых значений. Первичными в иерархии типов являются стандартные скалярные типы, представляющие традиционные в языках программирования множества значений (целые, вещественные, символьные, булевские) и их модификации, учитывающие архитектурные особенности аппаратуры. Процедурные типы в некотором отношении расширяют традиционное понятие подпрограмм, позволяя обращаться с подпрограммами как с переменными. Несколько особняком стоят объектные типы, или объекты. Являясь, с формальной точки зрения, обобщением комбинированных типов (записей), они позволяют радикально изменить подход к разработке программ, предлагая так называемый объектно-ориентированный стиль программирования. I. Простые типы: порядковые, вещественные, дата-время. Порядковый тип в свою очередь делится на: 1. целые типы; 2. логический тип или булевский тип; 3. символьный тип; 4. перечисляемые типы; 5. ограниченные типы или тип-диапазон. На основе стандартных скалярных типов имеется возможность образовывать пользовательские скалярные типы. Есть два способа порождения новых скалярных типов - ограниченные и перечислимые типы. Любой скалярный тип характеризуется множеством его различных значений, среди которых установлен линейный порядок. Все скалярные типы, кроме вещественных, называются дискретными. 1. Целые типы Эта группа типов обозначает множество целых чисел в различных диапазонах. Имеется пять целых типов, различающихся допустимым диапазоном значений и размером занимаемой памяти.
Целые типы обозначаются идентификаторами I eger, By e, Shor I , Word, Lo gI ; их характеристики приведены в таблице 1. Таблица 1 Тип Диапазон значений Размер памяти Shor I -128.127 1 байт I eger -32768.32767 2 байта Lo gI -2147483648.2147483647 4 байта By e 0.255 1 байт Word 0.65535 2 байта Значения целых типов могут изображаться в программе двумя способами: в десятичном виде и в шестнадцатеричном коде. В последнем случае в начале такого кода ставится символ ‘$’. Примеры: 123 -1 $F1 (десятичное представление 241) 0$B80 2. Булевский (логический) тип К логическим относятся типы Boolea , By eBool, Bool, wordBool и Lo gBool. В стандартном Паскале определен только тип Boolea , остальные логические типы введены в Objec Pascal для совместимости с Wi dows: типы Boolea и By eBool занимают по одному байту каждый, Bool и WordBool - по 2 байта, Lo gBool - 4 байта. Имеется два значения булевского типа, представляющие логические истинностные значения (истина/ложь). Эти значения обозначаются посредством стандартных идентификаторов: rue (истина) false (ложь). 3. Символьный тип Значениями символьного типа являются символы из множества ASCII (America S a dard Code for I forma io I ercha ge - американский стандартный код для обмена информацией). Это множество состоит из 256 различных символов, упорядоченных определенным образом, и содержит символы заглавных и строчных букв, цифр и различных других символов, включая специальные управляющие символы. Допускаются некоторые отклонения от стандарта ASCII, в частности, при наличии соответствующей системной поддержки это множество может содержать буквы русского алфавита. Порядковые номера (кодировку) значений символьного типа можно узнать из соответствующих разделов технических описаний. Эти значения занимают один байт. Если символьное значение имеет графическое представление, то оно изображается соответствующим знаком, заключенным в одинарные кавычки (апострофы), например: ‘ ’ ‘a’ ‘X’ ‘:’ ‘’’’ Для представления самого апострофа его изображение удваивается. Если символ, который нужно изобразить, не имеет графического представления, то можно воспользоваться следующей эквивалентной формой записи, состоящей из символа ‘#’ (решетка, диез) и целочисленного кода символа (от 0 до 255): #10 #$A 4. Перечислимые типы Скалярные типы, введенные ранее, в целом не выходят за рамки интуитивно понятной трактовки типа как множества традиционных (целых, вещественных или символьных) значений из определенного диапазона. Перечислимые типы вводят некоторое простое обобщение такой трактовки посредством абстрагирования от “физической” природы значений. Иными словами, можно определить новый тип путем явного перечисления всех возможных его значений, причем каждое такое значение будет определяться только именем. Например: Пусть необходимо разработать программу управления уличным светофором. Ясно, что программа будет моделировать светофор с помощью указания его текущего состояния, т.е. включенного в данный момент света.
Таким образом, переменная программы, представляющая светофор, может принимать одно из трех значений, соответствующих красному, желтому и зеленому цветам. Можно было бы ввести для этого переменную целого типа и установить, что, например, значения 1, 2, 3 соответствуют указанным цветам. Однако очевидно, что числа, кодирующие цвета, не имеют прямого отношения к решаемой задаче и, следовательно, усложняют программу и затемняют ее смысл. Поэтому наиболее естественным решением в данном случае будет введение перечислимого типа из трех значений, обозначаемых именами Red, Yellow, Gree , и переменной этого типа. Синтаксис определения перечислимого типа: (идентификатор 1, идентификатор 2,.,идентификатор ) Примеры перечислимых типов: (Red, Yellow, Gree ) (Mo day, uesday, Wed esday, hursday, Friday, Sa urday, Su day) (O , Off) (Lef , Up, Righ , Dow ) Перечислимые типы считаются дискретными типами. Над значениями перечислимых типов определены операции сравнения (считается, что значения перечислимого типа указаны в списке в порядке возрастания). Кроме того, допускается образование ограниченных типов из перечислимых по обычным правилам, например: Mo day.Friday Lef .Up Имена из списка перечислимого типа считаются константами соответствующего перечислимого типа. Эти идентификаторы должны быть уникальны в пределах блока; недопустимы описания двух и более перечислимых типов с совпадающими константами. 5. Ограниченные типы (тип-диапазон) Стандартные скалярные типы, перечисленные ранее, являются предопределенными в языке Паскаль; их смысл в языке фиксирован и его не нужно описывать. На основе стандартных скалярных типов программист может определить новые, собственные скалярные типы, руководствуясь несколькими достаточно простыми правилами. Самым простым способом образования новых типов из уже существующих является ограничение (а именно, сужение) допустимого диапазона значений некоторого стандартного скалярного типа. Это ограничение определяется заданием минимального и максимального значений диапазона. Синтаксис определения такого типа: минимальное значение.максимальное значение Например: 1.10 -100.100 ‘a’.’z’ В данном примере показано определение трех новых типов значений. Первые два типа образованы ограничениями диапазона некоторого целого типа, третий тип является производным целого типа. Введенный таким образом тип можно обозначить именем и использовать для определения переменных, а также строить с его помощью другие типы. Допускается создание ограниченных типов из дискретных типов, то есть из всех скалярных типов, кроме вещественного. Ограниченный тип наследует все свойства базового типа (в частности, набор базовых операций). Нужно всячески приветствовать активное использование в программе ограниченных типов. Всякий раз, когда заранее известно, что значения некоторой переменной лежат внутри некоторого диапазона, следует использовать ограниченный тип. Это существенно повышает наглядность программ, а, кроме того, позволяют более надежно контролировать ошибочные выходы значений за пределы заданного диапазона (как при трансляции, так и в процессе исполнения программы).
При желании можно получать доступ ко всем полям всех вариантов одновременно, однако это может иметь смысл только в наиболее простых случаях, когда точно известно, как именно информация каждого варианта записывается в память. Каждый вариант обозначается минимум одной константой. Все константы должны быть порядковыми и совместимыми по типу с меткой поля. Необязательное поле это идентификатор дополнительного поля в фиксированной части записи, общий для всех вариантов. Обычно с его помощью определяют, когда к какому варианту обращаться. Необязательное поле можно не указывать, однако порядковый тип необходим. При отсутствии необязательного поля программе придется выбирать подходящий вариант каким-то иным образом. Данные некоторых типов бессмысленно интерпретировать различным образом, и в Object Pascal на некоторые критические типы наложено соответствующее ограничение. Как следствие, в вариантную часть записи нельзя включать длинные строки и переменные типа Variant, а также структурные переменные, содержащие эти типы
1. Программирование на Object Pascal в среде Delphi
2. Совместимость и преобразование типов данных
3. Арифметические типы данных. Числовые константы и переменные
4. Интервальные типы данных. Оператор TYPE. Массивы
5. Оператори й основні типи даних мови С++
9. Судовая информационная измерительная система типа "звезда". База данных
10. Типы домов
11. Типы и элементы планировочной структуры города
12. Типы Звезд
13. Проводящая система листьев. Строение, типы жилкования
14. Подготовка данных и движение по азимутам
16. Экономическая система Дании
17. Промышленные типы месторождений титана
18. Структурные типы и районирование месторождений нефти и газа
19. Налоги: типы, эволюция. Теория налогообложения
20. Движение Сопротивления в Дании и Норвегии
25. Тематика и типы древнерусских книг
26. Восточные и западные типы культур
27. Илья Ильич Обломов – "коренной народный наш тип"
28. Судьба и творчество Даниила Хармса
29. Типы и функции обращений в лирике А. Блока
30. Типы словарей, используемые в русском языке
34. Методы компьютерной обработки статистических данных
36. Построение сети передачи данных
37. Управление потоками данных в параллельных алгоритмах вычислительной линейной алгебры
41. Сжатие данных
42. Форматы баз данных в автоматизированных библиографических системах
43. Пример базы данных на Delphi 2.0
44. Различные классы баз данных по предметным областям использования
45. Принципы проектирования и использования многомерных баз данных
46. Проектирование устройства сбора данных
47. Построение информационной и даталогической моделей данных
48. Примеры баз данных (Студенческая группа)
49. Современные системы управления базами данных
50. Создание текстового редактора в Turbo Pascal
51. Создание и описание базы данных "СТУДЕНТЫ" (Отчет по курсу "Базы данных")
53. Разработка базы данных "Кадры"
57. Системы управления базами данных
58. Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal
59. Алгоритм создания базы данных складского учета
60. Разработка игровой программы на языке программирования Turbo Pascal
61. Создание базы данных "Библиотека"
62. Отчёт по созданию курсовой работы «База данных ACCESS»
65. Учебник по языку Turbo Pascal в задачах и примерах
66. Билеты для проведения контрольных мероприятий по Turbo Pascal для начинающих
67. Компьютерные вирусы, типы вирусов, методы борьбы с вирусами
74. Острое нарушение мозгового кровообращения по ишемическому типу (история болезни)
75. Сахарный диабет тип 2, тяжелая форма, субкомпенсация, синдром диабетической стопы
76. Сахарный диабет I типа средней степени тяжести
79. Научная педагогическая деятельность Даниила Борисовича Эльконина
82. Статистическая обработка экспериментальных данных
83. Структура и формирование исходных данных, необходимых для расчета параметров технологических схем
84. Моделирование математического процесса теплообмена в теплообменнике типа "труба в трубе"
90. Научная педагогическая деятельность Даниила Борисовича Эльконина
92. Основные типы датчиков и их назначение
93. ЗАТС типа EWSD Siemens на ГТС
94. Математическое моделирование биполярных транзисторов типа p-n-p
95. Мифологический тип мировоззрения
96. Структура личности и поведенческие типы
97. Наука и рациональность. Типы рациональности
98. Устройство, назначение, принцип работы, типы и история телескопа