Читайте также: |
|
Изучение данных структурированного типа начнем со строкового типа данных (строк). Строка – это последовательность символов ASCII. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться в пределах от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки принимается равной 255 байтам.
Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант. Не допускается применение строковых переменных в качестве селектора в операторе case.
5. Множества.
Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением. Область значений типа «множество» – набор всевозможных подмножеств, составленных из элементов базового типа. В выражениях на языке Pascal значения элементов множества указываются в квадратных скобках: [1,2,3,4], ['a','b','c'], ['a'..'z']. Если множество не имеет элементов, оно называется пустым и обозначается как [ ]. Количество элементов множества называется его мощностью.
Для описания множественного типа используется словосочетание set of (множество из...).
6. Типизированные файлы.
К типизированным файлам относятся файлы строго определенного типа. Чаще всего это файлы, состоящие из записей. Они применяются для создания различных баз данных. Стандартное задание в программе такой файловой переменной осуществляется следующим образом:
type
FileRec = record
end;
var F: file of FileRec;
Если содержимое текстовых файлов рассматривается как набор символов, подготовленный специальным образом с учетом общепринятых соглашений о представлении текстовой информации, то содержимое типизированных файлов рассматривается как последовательность записей определенной структуры. Единицей измерения такого набора данных является сама запись. Длина записи определяется как SizeOf(FileRec).
Так как длина любого компонента типизированного файла строго постоянна, это дает возможность организовать прямой доступ к любому компоненту по его порядковому номеру, поэтому типизированные файлы часто называют файлами прямого доступа.
7. Нетипизированные файлы.
Нетипизированный файл рассматривается в Pascal как совокупность символов или байтов. Представление Char или Byte не играет никакой роли, а важно лишь с точки зрения объема памяти, занимаемого данными. Такое представление стирает все различия между файлами независимо от типа их объявления. На практике это приводит к тому, что любой файл, подготовленный как текстовый или типизированный, можно открыть и начать работу с ним, как с нетипизированным набором данных. Для определения в программе нетипизированного файла служит зарезервированное слово File.
Нетипизированный файл является файлом прямого доступа, что говорит о возможности одновременного использования операций чтения и записи. Для таких файлов самым важным параметром служит длина записи в байтах.
8. Текстовые файлы.
Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип Text: var F: text; {F - файловая переменная}
Каждая строка завершается маркером конца строки. На практике такой маркер представляет собой последовательность из двух символов: перевод строки chr(13) и возврат каретки chr(10). Эти два символа задают стандартные действия по управлению текстовыми файлами. У текстовых файлов есть своя специфика. Специальные расширения стандартных процедур чтения (Read) и записи (Write) разрешают работать со значениями несимвольного типа. Другими словами, последовательность символов автоматически преобразуется к значению того типа переменной, которая используется в файловых операциях. Текстовый файл в силу своей специфики во время работы допускает только один вид операции: чтение или запись.
9. Подпрограммы.
При разработке больших программных продуктов принято разбивать программу на несколько логических частей, называемых подпрограммами. Это улучшает структуру программы, упрощает ее понимание, делает программу более прозрачной и читаемой, позволяя тем самым избежать многих ошибок. Если программа предназначена для решения задачи в целом, то подпрограмма используется для выполнения логически завершенной последовательности действий. В языке Delphi представлены две разновидности подпрограмм – процедуры и функции. Принципиальное отличие между подпрограммами заключается в их оформлении и способе передачи данных в подпрограмму и обратно. Все подпрограммы делятся на стандартные (определенные в языке) и создаваемые программистом (пользовательские).
Структура подпрограммы очень похожа на структуру программы и в самом общем случае состоит из таких частей:
– заголовка подпрограммы; – раздела объявления меток; – раздела объявления констант; – раздела объявления типов; – раздела объявления переменных;
– раздела процедур и функций; – тела подпрограммы.
10. Процедуры.
Объектно-ориентированное программирование в целом и программирование в Delphi в частности в огромной степени основано на использовании процедур.
Любая процедура — это группа операторов, скрытых за общим именем. Например, процедура ReadLn образована набором операторов, которые предлагают пользователю ввести значение, а затем преобразуют его в переменную.
Процедуры и функции чрезвычайно полезны, поскольку позволяют один раз создать код, а затем многократно его использовать по мере необходимости. Например, процедура WriteLn для отображения текста в окне консоли, позволяет не писать код для отображения текста, а просто вызывать эту процедуру.
Компилятор содержит лишь небольшое количество встроенных процедур. Большинство процедур и функций можно найти в отдельных исходных файлах, называемых модулями. Все модули Delphi имеют расширение. pas.
Прежде чем процедуру можно будет использовать в приложении, следует знать имя процедуры, модуль, в котором она объявлена, и принимаемые процедурой параметры. Имя процедуры и список параметров — составные части заголовка процедуры.
11. Функции.
Функции более универсальны, чем процедуры. В то время как процедуры можно вызывать только в качестве самостоятельных операторов, функции можно вызывать как в качестве самостоятельных операторов, так и применять в выражениях. Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. В разделе операторов должен присутствовать, по крайней мере, один оператор, присваивающий имени функции значение. В точку вызова возвращается результат последнего такого присваивания. Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.
12. Процедурный тип данных.
Тип Variant.- могут динамически изменять свой тип. Если любой другой тип переменной зафиксирован, то в переменные типа Variant можно вносить переменные разных типов.
Вариантные значения.
В языке Delphi процедуры и функции рассматриваются не только как части программы, которые можно выполнять с помощью вызовов, а трактуются гораздо шире: здесь допускается интерпретация процедур и функций как объектов, которые можно присваивать переменным и передавать в качестве параметров. Такие действия можно выполнять с помощью процедурных типов. В описании процедурного типа задаются параметры, а для функции еще и возвращаемое значение. По существу синтаксис записи процедурного типа в точности совпадает с записью заголовка процедуры или функции, только опускается идентификатор после ключевого слова procedure или function.
единственное отличие процедурного типа для метода от обычного процедурного типа состоит в фразе of object.
13. Параметры и аргументы подпрограмм.
Параметры (формальные параметры) являются элементами подпрограммы и используются при описании производимых в ней действий. Аргументы (фактические параметры) указываются при вызове подпрограммы и замещают параметры при выполнении подпрограммы. Параметры могут иметь любой тип, включая структурированный.
Существует несколько видов параметров:
значение; константа; переменная; нетипизированные константа и переменная.
Параметры, перед которыми в заголовке подпрограммы отсутствуют слова var или const и за которыми следует их тип, называются параметрами-значениями.
18. Вариантный тип данных. Все варианты занимают в памяти одно место. Каждый вариант обозначается некоторой постоянной. При желании можно получать доступ ко всем полям всех вариантов одновременно, однако это может иметь смысл только в наиболее простых случаях, когда точно известно, как именно информация каждого варианта записывается в память.
Каждый вариант обозначается минимум одной константой. Все константы должны быть порядковыми и совместимыми по типу с меткой поля.
14. Модули. Структура модуля.
Начинается модуль словом unit, за которым следует имя модуля.
Модуль состоит из следующих разделов:
– интерфейса; – реализации; – инициализации.
Модуль характеризуют: – один вход и один выход – на входе программный модуль получает определенный набор исходных данных, выполняет содержательную обработку и возвращает один набор результатных данных, т.е. реализуется стандартный принцип IPO – вход–процесс–выход;
– функциональная завершенность – модуль выполняет перечень регламентированных операций для реализации каждой отдельной функции в полном составе, достаточных для завершения начатой обработки;
– логическая независимость – результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей;
– слабые информационные связи с другими программными модулями – обмен информацией между модулями должен быть по возможности минимизирован.
Каждый модуль состоит из спецификации и тела. Спецификации определяют правила использования модуля, а тело – способ реализации процесса обработки.
15. Основные принципы ООП.
- наследование; Это процесс порождения новых объектов-потомков от существующих объектов-родителей, при этом потомок наследует от родителя все его поля, свойства и методы, которые в дальнейшем можно использовать в неизмененном виде или переопределять (модифицировать).
Таким образом, наследование позволяет построить иерархию классов – единую древовидную структуру с общим корнем (TObject), и дает возможность определения новых классов на основе существующих с возможностью добавления или переопределения данных и методов.
- инкапсуляция – это механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования, т.е., инкапсуляция означает, что методы (коды) и данные одновременно представлены в одной и той же структуре.
- полиморфизм. Полиморфизм – это свойство, которое позволяет одно и то же имя использовать для решения двух или более схожих, но технически разных задач. Целью полиморфизма, применительно к объектно-ориентированному программированию, является использование одного имени для задания общих для класса действий. Выполнение каждого конкретного действия будет определяться типом данных.
16. Классы и объекты. Для реализации интерфейса Delphi использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты (командные кнопки, поля редактирования и т.п.). Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Когда программист, добавляя необходимые компоненты, создает нужную форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или её компонента, Delphi добавляет объявление метода в описание класса формы приложения. Классы Delphi образуют сложную иерархическую структуру, называемую Библиотекой визуальных компонентов (Visual Component Library –VCL). Количество входящих в VCL классов составляет несколько сотен. На рисунке 2 изображены базовые классы, являющиеся родоначальниками всех остальных классов. Компонентами называются экземпляры классов, которые являются потомками класса TComponent. Экземпляры всех других классов называются объектами. Разница между компонентами и просто объектами заключается в том, что компонентами можно манипулировать на форме, а объектами – нельзя..
Дата добавления: 2014-12-19; просмотров: 108 | Поможем написать вашу работу | Нарушение авторских прав |