на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Автоматизированное рабочее место бухгалтера учебного заведения
юбой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса-родителя:

TChildClass = class(TParentClass)

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

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

TaClass = class(Tobject.)

TaClass = class

Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещении от Tobject. К его потомкам. Каждый потомок дополняет возможности своего родителя новыми и передает их своим потомкам.

Для примера на рисунке показан небольшой фрагмент дерева классов Delphi. Класс TPersistent обогащает возможности своего родителя TObject: он «умеет» сохранять данные в файле и получать их из него, в результате это умеют делать и все его потомки. Класс TComponent, в свою очередь, умеет взаимодействовать со средой разработчика и передает это умение своим потомкам. TControl не только способен работать с файлами и средой разработчика, но он еще умеет создавать и обслуживать видимые на экране изображения, а его потомок TWinControl может создавать Windows-окна. И т.д.

Полиморфизм.

Полиморфизм - это свойство классов решать схожие по смыслу проблемы разными способами. В рамках Object Pascal поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.

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

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

После перемещения в секцию private элемент объявления становится невидим потомкам (если потомок, как это обычно бывает, объявляется в другом модуле), и, следовательно, его уже нельзя переместить в другую секцию.

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

Классами в Object Pascal называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. Однако существенные усовершенствования, внесенные в объектную модель Object Pascal, заставили разработчиков языка ввести для обозначения объектов специальный термин - класс, заимствованный, кстати, из Си++. Для совместимости с ранее разработанными программами системы Turbo Pascal сохранен тип-объект Object, поддерживающий «старую» объектную модель. Важным отличием классов от других типов является то, что объекты класса всегда распределяются в куче, поэтому объект-переменная фактически представляет собой лишь указатель на динамическую область памяти. Однако, в отличие от других указателей, при ссылке на содержимое объекта запрещается использовать символ «^» за именем объекта:

type

TMyClass = class (TObject)

Field: Integer; …....

end;

var

MyClass: TMyClass;

Begin

…….

MyClass^.Field:=0;

MyClass.Field:=0;

…….

end;

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

Секции определяют области видимости элементов описания класса. Секция public не накладывает ограничений на область видимости перечисляемых в ней полей, методов и свойств - их можно вызывать в любом другом модуле программы. Секция published также не ограничивает область видимости, однако в ней перечисляются свойства, которые должны быть доступны не только на этапе исполнения, но и на этапе конструирования программы (т. е. в окне Инспектора объектов). Секция published используется только при разработке нестандартных компонентов. Замечу, что среда Delphi помещает описания компонентов, вставленных в форму, в специальную секцию без названия, которая располагается сразу за заголовком класса и продолжается до первой объявленной секции. Эта секция - published. Программисту не следует помещать в нее собственные элементы описания класса или удалять из нее элементы, вставленные средой. Секция private сужает область видимости до минимума: закрытые элементы описания доступны только внутри методов данного класса и подпрограммах, находящихся в том же модуле, где описан класс. Элемент, объявленный в секции private, становится недоступным даже ближайшим потомкам класса, если они размещаются в других модулях. Секция protected доступна только методам самого класса, а также любым его потомкам, независимо от того, находятся ли они в том же модуле или нет. Наконец, секция automated используется только для объявления свойств и методов, которые будут добавлены к так называемому интерфейсу OLE-объектов Автоматизации; область видимости членов этой секции не ограничена.

В Object Pascal разрешается сколько угодно раз объявлять любую секцию, причем порядок следования секций не имеет значения. Любая секция может быть пустой.

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

a) каждая единица языка программирования Паскаль (константа, пе-ременная, функция или выражение) имеет только один тип. Другими словами, тип переменной определяется множеством значений, которые может принимать данная переменная;

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

c) между каждым типом и некоторым ограниченным подмножеством операторов существует однозначная связь, т.е. для каждого типа определен свой ограниченный набор операций. Конечно, исполь-зуя такие конструкции, как процедуры и функции, набор операций можно расширить;

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

В Турбо Паскале - расширении языка Паскаль введены следующие типы (Рисунок 1.2):

Способы описания алгоритма:

a) в виде формулы;

b) в виде таблицы;

c) словесный;

d) графический;

e) на языке программирования.

1.2.1 Виды алгоритмов

Существуют три основные алгоритмические структуры - линейный алгоритм, алгоритм ветвления и циклический.

a)
линейным называется алгоритм, при выполнении которого исполнитель выполняет одну команду за другой в порядке их следования. Примеры (сварить суп, решить задачу);

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

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

1.2.2 Элементы языка

Любой естественный язык состоит из нескольких основных элементов: символов, слов, словосочетаний и предложений. Описание языка должно содержать описание указанных структурных элементов, правил их образования и использования. Символы языка - это элементарные знаки, используемые для составления любых текстов. Набор таких символов называют алфавитом языка. Алфавит Паскаля:

Прописные и строчные буквы латинского алфавита, арабские цифры, специальные символы: +, -, *, /, =, ., ;, :, <, >,(), [],^, #. $ и т.д. Русскими буквами поясняется текст в какой-либо конструкции языка Паскаль. Особую роль играют пробелы. Они используются для ограничения идентификаторов, констант, чисел, зарезервированных слов.

В Турбо Паскале имеются зарезервированные слова (and, file, nil, not, if и т.д.). Идентификаторы в Турбо Паскале - это имена констант, переменных, меток, типов, объектов, процедур, функций, модулей, программ и полей в записях. Они могут иметь произвольную длину, но значащими являются только первые 63 символа.
Идентификатор начинается всегда только буквой, за которой могут следовать буквы и цифры. Пробелы и специальные символы не могут входить в идентификатор.

Операции. В Турбо Паскале определены следующие операции:

1) унарные not, ^;

2) мультипликативные *, /, div, mod, and, sh1,shr;

3) аддитивные +, -, or, xor;

4) отношения =, <>, >, <, <=, >=,in.

1.2.3 Основные алгоритмические структуры

Ниже перечислены основные операторы языка, описывающие различные алгоритмические структуры.

Условный оператор:

Оператор условия применяется в разветвляющихся алгоритмах.

Запись условного оператора:

if <логическое выражение> then <оператор1>

else <оператор2>

В качестве операторов 1 или 2 могут быть также операторы условия. Условный оператор относится к сложным.

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

Краткая форма оператора if <логическое выражение> then <оператор1>;

Инструкция While:

Оператор цикла while с предпроверкой условия: (цикл с предусловием, с неизвестным числом повторений):

while <условие> do <оператор>;

Инструкция Repeat:

Оператор цикла repeat…until с постпроверкой условия (с неизвестным числом повторений):

repeat <тело цикла> until <условие>;

Инструкция For:

Счетный оператор цикла FOR (цикл с параметром или с известным числом повторений) имеет такую структуру:

for <параметр цикла> := <начальное значение> to <конечное значение> do <оператор>;

Существует другая форма оператора:

for <параметр цикла> := <начальное значение> downto <конечное значение> do <оператор>;

Это означает, что шаг наращивания параметра цикла равен (-1), а отсчет идет от большего к меньшему;

Оператор выбора:

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

Структура оператора:

сase <ключ выбора> of <список выбора> [else <операторы>] end;

Оператор безусловного перехода:

Современная технология структурного программирования основана на принципе «программировать без GOTO»: считается, что злоупотребление операторами перехода затрудняет понимание программы, делает ее запутанной и сложной в отладке. Тем не менее, в некоторых случаях использование операторов перехода может упростить программу в тех случаях, когда, например, необходимо обойти участок программы и вернуться к нему позже. Оператор перехода имеет вид:

goto <метка>;

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

Метка располагается перед помечаемым оператором и отделяется от него двоеточием. Перед тем, как появиться в программе, метка должна быть описана. Описание меток осуществляется в разделе описания label;

Массивы:

Массив - это упорядоченная по номерам совокупность значений, объединенных общим именем и типом. Если мы знаем, что предстоит работать с большим объемом данных, то объявляем массив. Его элементы можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Суммарная длина внутреннего представления любого массива не может быть больше 65520 байт. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива.

Запись одномерного массива: var a: array [1..2] of real;

Запись двумерного массива: var a: array [1..2, 1..2] of real;

Операторы ввода-вывода:

Оператор ввода - READ. Или используется READLN.

Запись: READ(a);

Ввод считается пробелом, поэтому перед оператором ввода символьных данных нужно ставить READLN.

Оператор вывода - WRITE. Или используется WRITELN.

Бывает несколько вариантов записи оператора вывода:

WRITE(c), WRITELN(c, c*cos(a)), WRITELN(d:5:2), WRITE(`n=',n:10);

Встроенные элементы:

Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (опубликованные), private (закрытые), protected (защищенные), public (доступные) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем - методы и свойства.

1.3 Реляционные базы данных

База данных к моей программе разрабатывалась в реляционной СУБД - SQL-сервере InterBase.

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

Страницы: 1, 2, 3, 4, 5



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.