Object Pascal Data Types




/In some programming languages, you can get by with assigning any type of value to a variable. For example, look at the following examples of BASIC code:

Declaring a Variable

/In Object Pascal, you must declare a variable's type before you can use the variable:

This enables the compiler to do type-checking and to make sure that things are kept straight when the program runs. Improper use of a data type will result in a compiler error or warning that can be analyzed and corrected so that you can head off a problem before it starts.

/Some data types are signed and some are unsigned. A signed data type can contain both negative and positive numbers, whereas an unsigned data type can contain only positive numbers. Table 1.1 shows the basic data types in Object Pascal, the amount of memory each requires, and the range of values possible for each data type. This table does not include the string types. Those are discussed later in the section, "Strings."

/In a 32-bit programming environment, however, both require 4 bytes of storage and have the same range of values. Delphi 4 produces only 32-bit programs, so an Integer and a LongInt are identical. Most programmers use Integer rather than LongInt.

/You might also notice that the Int64 and Comp (computational) types have an identical range of values. The difference between these two types is in the way they are treated internally by the compiler. The Int64 type is an integer type, whereas the Comp type is a real type. Probably you will have very little reason to use the Comp type in your programs.

Object Pascal Operators

/Operators are used to manipulate data. Operators perform calculations, check for equality, make assignments, manipulate variables, and perform other, more esoteric duties that most programmers never do. There are a lot of operators in Object Pascal. Rather than present them all here, I will list only the most commonly used ones. Table 1.2 contains a list of those operators.

/As you can see, the list of operators is a bit overwhelming. Don't worry about trying to memorize each one. As you work with Object Pascal, you will gradually learn how to use all the operators. Some operators you will rarely, if ever, use, and others you will use all the time.

Constants

/As I said earlier, a constant is an identifier assigned to a value that does not change. The terms "variable" and "constant" were not chosen at random. A variable's value can be changed by the programmer; a constant's value cannot be changed. Constants are declared using the const keyword. To declare a constant, simply list the constant's name and its value--for example,

/Notice that when declaring a constant, the equal sign is used and not the assignment operator (:=). Notice also that no data type is specified. The compiler determines the data type of the constant based on the value being assigned. The constants can then be used in your code where you would normally have used a literal value.

Arrays

/You can place any of the intrinsic Object Pascal data types into an array. An array is simply a collection of values. For example, let's say you want to keep an array of Integers that holds five integer values. You would declare the array as follows:

/In this case, the compiler allocates memory for the array, as illustrated in Figure 1.4. Because each integer requires 4 bytes of storage, the entire array will take up 20 bytes in memory.

The Low and High Functions

/The Low and High functions are used frequently when dealing with arrays. As I said earlier, an array can be declared with variable lower and upper bounds. The Low function will return the lower bound of an array, and the High function will return the upper bound of the array--for example,

Dynamic Arrays

/Delphi 4 introduces the concept of dynamic arrays. A dynamic array is declared without an initial size, and no storage is set aside for the array at the time of declaration. Later the array can be created with a specified size using the SetLength function. Here's how it would look:

/The significance is that the array can be al located based on exactly the number of elements required. To illustrate, let's say that you need an array of integers. Let's further say that in some cases you might only need to allocate enough memory for 10 integers, but in other cases you might need to allocate as many as 1,000 integers.

/Your program doesn't know at compile time how many elements will be needed--that number will not be known until runtime. Before the advent of dynamic arrays, you would have been forced to declare an array with a size of 1,000 integers, wasting a lot of memory if your application really only needs 10, 20, or 30 integers. With dynamic arrays you can allocate only as much storage as is required at a given time.

/You can reallocate an array using the Copy function. For example, let's say you initially created an array with a size of 100 elements, and you now need to reallocate the array to a size of 200 elements. In that case, the code would look like this:

 

 

DICTIONARY

RAD – быстрая разработка приложений;

Array – массив;

Semicolon – точка с запятой;

Frequent – частый, повторяющийся

Judicious – здравомыслящий;

Intrinsic – существенный;

Variables – переменная;

Designate – назначенный;

Extended – длительный;

Application – приложение;

Palette – панель;

two-dimensional – дву-мерный;

significance – важность;

to allocate – размещать;

brief – короткий;

braces – связь;

to require –приказывать;

unsigned – неподписанный;

computational - вычисление;

bound – граница;

contents – содержание;

confusing – смешивать;

 

Назад приблизительно в 1994, Borland начал воздействовать на инструмент РАДИУСА что это под кодовым названием Delphi. Когда было решено, чтобы составляющая образцовая архитектура была лучшим способом осуществить РАДИУС, было тогда необходимо завещать языку программирования, который будет сердцем системы.

Тогда, Borland был единственным продавцом компилятора, продающим компилятор Паскаля на массовом рынке. Borland был известен как компания, которая произвела лучшие инструменты Паскаля. Если Вы были программистом Паскаля, Вы вероятно использовали TurboPascal Borland's в одном аромате или nother. Borland более или менее "принадлежал" Паскаль. Хотя Borland не принадлежал язык Паскаля в юридическом смысле, это без сомнения чувствовало, что из-за его положения в мире Паскаля, это могло взять значительные привилегии в осуществлении новых языковых особенностей и повышений. Кроме того, не было никакого комитета по стандартам Паскаля, ни даже письменного стандарта, определяющего язык Паскаля. Таким образом Borland создал Delphi использование Паскаля как основной язык (внутреннее прикрепленное кодовое название Borland, и стал официальным названием продукта).

Прежде, чем Delphi возник, Borland уже изменил язык Паскаля положительными способами. Например, Borland уже расширил Паскаль, создавая новый язык под названием Паскаль Объекта. Можно сказать, что Паскаль Объекта к Паскалю, что C ++ C. Object Pascal, добавили классы к Паскалю, таким образом швыряя Паскаль в мир объектно-ориентированного программирования (ООП) языки. Поскольку Delphi развивался, новое языковое поведение и ключевые слова были добавлены, чтобы иметь дело с составляющей моделью. Ключевые слова такой столь же изданный и собственность были добавлены, как были другие. Это позволило Borland полностью осуществить власть составляющей модели. Изменяя язык Паскаля, чтобы удовлетворить составляющей модели, Borland был в состоянии осуществить РАДИУС правильный путь. В основном, язык Паскаля Объекта был изменен как необходимый, когда вопросы проектирования подходили во время развития тогда неизвестного продукта по имени Delphi. Результат - язык, который работает легко с составляющей моделью. Хотя изменение языка Паскаля можно было считать смелым шагом для Borland, это не было без прецедента. Ранее, Microsoft взяла ОСНОВНОЙ язык и изменила его, чтобы произвести новый язык под названием Визуальный Основной. Этот новый язык был почти неузнаваем, когда по сравнению с оригинальным ОСНОВНЫМ языком, который служил его основой. Borland взял на себя риск в изменении Паскаля. В конце концов, у этого была лояльная основа клиентов, которые не могли бы взять любезно к повышениям на язык, который они узнали и любовь. S до, Borland не был в твердом положении на рынке Паскаля и продолжил свои планы. Результатом был блестящий успех, конечно. Не сделайте ошибку об этом, Паскаль Объекта - сильный язык программирования, и я не делаю то утверждение слегка. У меня есть C/C ++ фон и, как другой C/C ++ программисты, я рассмотрел Delphi с небольшим количеством скептицизма сначала. Я узнал быстро, тем не менее, что язык Паскаля Объекта очень способен. Фактически, в руках среднего программиста нет почти никакого различия в этих двух языках с точки зрения власти. Паскаль Объекта уникален в этом, это и сильно и относительно легко учиться. Я в любом случае не хочу оставлять впечатление, что Паскаль Объекта не полнофункциональный язык программирования. Паскаль часто пробивался как меньше серьезный язык программирования. Это никогда не было верным, и еще менее верно с сегодняшним Паскалем Объекта.

Паскаль Объекта позволяет Вам использовать в своих интересах объектно-ориентированное программирование к своему самому полному. ООП не только умное слово. У этого есть реальная выгода, потому что это позволяет Вам создать объекты, которые могут использоваться в Вашей текущей программе и снова использованы в будущих программах.

Типы Единиц Delphi GUI заявление будут содержать по крайней мере две единицы. Проектная исходная единица содержит проектный исходный текст. У проектных единиц исходного текста есть расширение DPR. Вы можете рассмотреть проектную исходную единицу, выбирая Проект | Источник Представления от главного меню. Не обычно необходимо изменить проектную исходную единицу. Фактически, Вы не должны изменить проектную исходную единицу, если Вы не знаете точно, что Вы делаете. Если Вы случайно изменяете проектную исходную единицу нежелательными способами, Вы могли бы найти, что Ваше приложение ation не будет собирать больше. (Определенные передовые программные методы требуют модификации проектного исходного текста, но это не кое-что, в чем Вы должны быть обеспокоены в это время.) Анатомия Единицы Delphi единицы Delphi должна следовать за предопределенным форматом. Это не должно стать неожиданностью для Вас. Единица должна быть в предопределенном формате так, чтобы компилятор мог прочитать единицу и собрать кодекс единицы. Единица проекта Delphi содержит ключевое слово программы, сопровождаемое названием единицы и кодового блока, отмеченного ключевыми словами конца и начинанием. Вы можете видеть, как основная единица смотрит, выбирая Представление | Проектный Источник от главного меню Delphi. Давайте смотреть на другую основную единицу Паскаля. Выберите Файл | Новый от главного меню. Когда Новый диалог Пунктов подходит, определите местонахождение изображения маркированная Единица и щелкните два раза им. Delphi создаст новую единицу и покажет это в Кодовом Редакторе. Распечатка 1.2 показывает кодекс, произведенный для этой единицы. Уведомление Секции интерфейса, что этой распечатке отметило секцию ключевое слово интерфейса. Это ключевое слово отмечает начало секции интерфейса для единицы. Секция интерфейса - секция единицы, в которой объявлены идентификаторы, экспортируемые от этой единицы. Экспортируемый идентификатор - тот, к которому могут получить доступ другие единицы в проекте. Большинство единиц будет содержать кодекс, который используют другие единицы. Кодекс мог бы быть осуществлен как класс, процедура, функция, или переменная данных. Любые объекты, которые доступны для других единиц от этой единицы, должны быть объявлены в секции интерфейса. Вы могли сказать, что секция интерфейса содержит список пунктов в этой единице, которую могут использовать другие единицы. Секция интерфейса начинается с ключевого слова интерфейса и концов в ключевом слове выполнения.

 

Секция выполнения секция выполнения начинается с ключевого слова выполнения и заканчивается следующим ключевым словом единицы. Следующее ключевое слово единицы обычно - заключительное ключевое слово конца единицы, но могло быть инициализацией ke yword в единицах, у которых есть секция инициализации. Трудно сказать больше чем что прямо сейчас, потому что есть другие аспекты Паскаля, который я должен обсудить прежде, чем связать все это. Однако, позвольте мне давать Вам пример, который иллюстрирует использование секций выполнения и интерфейса. Скажем, то, что Вы создаете единицу, у которой есть процедура по имени DoSomething. Далее давайте скажем, что Вы хотите, чтобы DoSomething был доступен для других единиц в Вашем проекте. В этом случае, Вы объявили бы процедуру DoSomething в секции интерфейса и затем определили бы процедуру в секции выполнения. Процедура DoSomething объявлена в секции интерфейса и определена позже в секции выполнения. Я понимаю, что я добираюсь немного передо мной непосредственно здесь. Функции и процедуры будут обсуждены более завтра, и я пробегусь через декларации и определения подробно тогда. Инициализация и Секции завершения, инициализация и секции завершения могут использоваться, чтобы выполнить любой запуск и кодекс уборки, которого требует единица. Любой кодекс в секции инициализации будет выполнен, когда единица будет загружена в память. Наоборот, любой кодекс в секции завершения будет выполнен непосредственно перед тем, как единица разгружена по памяти. У Вас может быть только секция инициализации, но у Вас не может быть секции завершения без секции инициализации. Инициализация и секции завершения являются дополнительными. У Ключевого слова константы единица могут произвольно быть одна или более секций константы. Секция константы определяется с ключевым словом константы. Секция константы описывает список переменных, которые известны как константы. Константа - идентификатор, который не может измениться. Например, скажем, у Вас есть определенные ценности, которые Ваша программа использует много раз. Вы можете настроить постоянные переменные за те ценности. Чтобы иллюстрировать, позволяют нам добавлять секцию константы к программе в Распечатке 1.3. Вы добавите одну секцию константы для констант, которые являются общественными (доступный для других единиц) и другая секция константы для констант, которые доступны только для этой единицы. Поскольку константа AppCaption объявлена в секции интерфейса, она может использоваться где-нибудь в единице и в любой единице, у которой есть эта единица в ее списке использования. BaseX и константы BaseY, однако, только доступны в пределах этой единицы, потому что они объявлены в секции выполнения.

Ключевое слово типа, Объявляющее новый тип, является тайной программной техникой, которая является трудной объяснить на этой стадии игры, таким образом возможно пример поможет. Скажем, то Ваше заявление нуждается во множестве (коллекция ценностей) 20 байтов и что этот тип множества будет использоваться много раз. / теперь Вы можете использовать идентификатор TMyArray вместо того, чтобы впечатать множество [0.. 19] Байта каждый раз Вы хотите множество 20 байтов. Я должен буду оставить это в том пока, но Вы будете видеть больше примеров объявления типов позже в книге. Комментарии в Кодексе / Перед вхождением в язык Паскаля подробно, позвольте мне говорить кратко о кодексе комментария. Комментарии - линии текста в Вашем исходном тексте, которые являются там в целях документации. Комментарии могут использоваться, чтобы описать то, что кодекс делает, чтобы предоставить информацию авторского права, или просто записать к вам непосредственно или другим программистам. Переменные / Переменные должны быть объявлены прежде, чем они смогут использоваться. Вы объявляете переменную в специальной секции кодекса определяемой с ключевым словом вара, как описано ранее - например, / После того, как Вы объявляете переменную, Вы можете тогда использовать это, чтобы управлять данными в памяти. Это вероятно не имеет большого количества смысла Вам, столь позвольте мне давать Вам несколько примеров. Следующий кодовый отрывок использует переменные, названные X и Y, объявленный ранее. В конце каждой линии кодекса комментарий, который описывает то, что случается, когда та линия выполняет. переменная/A - местоположение, отложенное в машинной памяти, чтобы содержать некоторую ценность./I хотят, чтобы Вы заметили несколько вещей об этом кодексе. Во-первых, заметьте, что ценностью X изменений как переменная управляют. (Немного позже я буду обсуждать операторы Паскаля Объекта, функции, и процедуры имели обыкновение управлять переменными.) Вы можете видеть, что переменным назначают ценности, добавил вместе, увеличенный, и так далее. / замечают также, что каждое утверждение в этом сегменте кода заканчивается в точке с запятой. Точка с запятой используется в конце каждого утверждения в программе Паскаля.

Типы данных Паскаля Объекта / На некоторых языках программирования, Вы можете пройти с назначением любого типа, имеющего значение для переменной. Например, смотрите на следующие примеры АБСОЛЮТНОГО КОДА: Объявляя Переменную / В Паскале Объекта, Вы должны объявить тип переменной прежде, чем Вы сможете использовать переменную: Это позволяет компилятору сделать проверку типа и удостовериться, что вещи сохранены прямыми, когда программа бежит. Неправильное использование типа данных закончится по ошибке компилятора или предупреждая, что это может быть проанализировано и исправлено так, чтобы Вы могли препятствовать проблеме прежде, чем оно начнется. / некоторые типы данных подписаны, и некоторые без знака. Подписанный тип данных может содержать и отрицательные и положительные числа, тогда как тип данных без знака может содержать только положительные числа. Стол 1.1 показывает типы исходных данных в Паскале Объекта, количестве памяти, которой каждый требует, и диапазон ценностей, возможных для каждого типа данных. Этот стол не включает типы последовательности. Те обсуждены позже в секции, "Последовательностях". /In 32-битовая программная окружающая среда, однако, оба требуют 4 байтов хранения и имеют тот же самый диапазон ценностей. Delphi 4 производит только 32-битовые программы, таким образом Целое число и LongInt идентичны. Большинство программистов использует Целое число, а не LongInt. / Вы могли бы также заметить, что у Int64 и Аккомпанемента (вычислительные) типы есть идентичный диапазон ценностей. Различие между этими двумя типами находится в способе, которым их рассматривает внутренне компилятор. Тип Int64 - тип целого числа, тогда как тип Аккомпанемента - реальный тип. Вероятно у Вас будет очень небольшая причина использовать тип Аккомпанемента в Ваших программах. Object Pascal Operators / Операторы используется, чтобы управлять данными. Операторы выполняют вычисления, проверяют на равенство, делают назначения, управляют переменными, и выполняют другой, более тайные обязанности, которые никогда не делает большинство программистов. Есть много операторов в Паскале Объекта. Вместо того, чтобы представлять их всех здесь, я перечислю только обычно используемые. Стол 1.2 содержит список тех операторов./, поскольку Вы можете видеть, список операторов является немного подавляющим. Не волнуйтесь о попытке запомнить каждого. Поскольку Вы работаете с Паскалем Объекта, Вы будете постепенно узнавать, как использовать все операторы. Некоторые операторы Вы редко будете, если когда-либо, используют, и другие, которые Вы будете использовать все время.

Константы/, Поскольку я сказал ранее, константа, являются идентификатором, назначенным на ценность, которая не изменяется. Сроки, "переменные" и "постоянные", не были выбраны наугад. Ценность переменной может быть изменена программистом; ценность константы не может быть изменена. Константы объявлены, используя ключевое слово константы. Чтобы объявить константу, просто перечислите имя константы и его ценность - например, / Уведомление, что, объявляя константу, равный знак используется а не оператор назначения (: =). Заметьте также, что никакой тип данных не определен. Компилятор определяет тип данных константы, основанной на назначаемой ценности. Константы могут тогда использоваться в Вашем кодексе, где Вы обычно использовали бы буквальную ценность. Множества / Вы могут поместить любой из свойственных типов данных Паскаля Объекта во множество. Множество - просто коллекция ценностей. Например, скажем, Вы хотите держать множество Целых чисел, которое держит пять целочисленных значений. Вы объявили бы множество следующим образом: / В этом случае, компилятор ассигнует память для множества, как иллюстрировано в иллюстрации 1.4. Поскольку каждое целое число требует 4 байтов хранения, все множество поднимет 20 байтов в памяти. Низкие и Высокие Функции / Низкие и Высокие функции часто используются, имея дело со множествами. Поскольку я сказал ранее, множество может быть объявлено с переменной ниже и верхними границами. Низкая функция возвратится ниже связанный из множества, и Высокая функция возвратит верхнюю границу множества - например,

Динамические Множества/Delphi 4 вводят понятие динамических множеств. Динамическое множество объявлено без начального размера, и никакое хранение не обойдено для множества во время декларации. Позже множество может быть создано с указанным размером, используя функцию SetLength. Вот то, как это смотрело бы: / значение то, что множество может быть al, расположенным основанный на точно требуемом ряду элементов. Иллюстрировать, скажем, что Вы нуждаетесь во множестве целых чисел. Далее давайте скажем, что в некоторых случаях Вы могли бы только должны быть ассигновать достаточную память для 10 целых чисел, но в других случаях Вы, возможно, должны ассигновать целых 1 000 целых чисел. / Ваша программа не знает в, собирают время, сколько элементов будет необходимо - что число не будет известно до времени выполнения. Перед появлением динамических множеств Вы были бы вынуждены объявить множество с размером 1 000 целых чисел, тратя впустую большую память, если Ваше заявление действительно только нуждается 10, 20, или 30 целых чисел. С динамическими множествами Вы можете ассигновать только такое большое хранение, как требуется в установленный срок. / Вы может перераспределить множество, используя функцию Копии. Например, скажем, Вы первоначально создали множество с размером 100 элементов, и Вы теперь должны перераспределить множество к размеру 200 элементов. В этом случае, кодекс был бы похож на это:



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: