| Ответы на вопросы итоговой контрольной у Раковой И.К. |
| 15.03.2010 09:00 | |||
|
Ответы на вопросы итоговой контрольной у Раковой И.К. 1. Чем различаются методы, описанные как overload и override?
В классе-потомке замещающий метод объявляется с директивой override (перекрыть). Получив это указание, компилятор создаст код, который на этапе прогона программы поместит в родительскую таблицу точку входа метода класса-потомка, что позволит родителю выполнить нужное действие с помощью нового метода. С помощью слова overload (перезагрузить) становятся видны одноименные методы как родителя, так и потомка.
2.Что такое фабрика класса, каково её назначение? Для каких классов она должна использоваться?
Это особый COM-интерфейс, реализующий функцию создания объекта. Для создания экземпляра класса СОМ-объекта исп-ся объект фабрика классов. Он поддерживает интерфейс IClassFactory с двумя методами:
CreateInstance - создание класса
LockServer - оставляет сервер функционировать после создания.
Для каждого класса СОМ объекта нужна фабрика. Делфи создает их автоматически
3. В чем разница между виртуальными и динамическими методами?
В том, что таблица динамических методов DMT содержит адреса динамических методов данного класса, в то время как таблица VMT содержит адреса виртуальных методов не только данного класса, но и его родителей.
4. Какие подпрограммы объявляются со спецификатором External?
Внешние подпрограммы
5. Каково назначение операций is и as?
Это операторы приведения типов и проверки их согласования. AS предписывает рассматривать переменную как определенный тип компонентов.
With X AS Y do…(параметр X рассматривается как принадлежащий к классу Y)
IS определяет совместимость типов:
X : = Y IS Z (переменная Y получает значение True, если переменная X относится к классу Z)
6. В какой структуре данных реализуются методы интерфейса? Как указатель на интерфейс позволяет получить доступ к элементам этой структуры?
7. Каким образом изменяются значения полей объектов, описанных в секции private? Какова роль свойств в этом процессе?
Элементы в секции private доступны только внутри методов данного класса и подпрограммах, находящихся в том же модуле, где описан класс. Секция private сужает область видимости до минимума. Элемент, объявленный в секции private, становится недоступным даже ближайшим потомкам класса, если они расположены в других модулях. При объявлении класса-потомка разрешается перемещать элементы класса из одной области видимости в другую. После перемещения в секцию private элемент объявления становится невидим потомкам, и его уже нельзя переместить в другую секцию.
8. Какой класс является родоначальником всех классов библиотеки визуальных компонент?
Класс TControl со своими наследниками образуют всю палитру видимых компонентов Delphi.
9. Что означает ключевое слово inherited? Где оно используется?
Inherited – унаследованный. В конструкторе класса-потомка следует сначала вызывать конструктор своего родителя, а уже затем осуществлять дополнительные действия. Вызов любого метода родительского класса достигается с помощью зарезервированного слова inherited.
Constructor TMyClass.Create(Value: Integer);
begin
Inherited Create;
IntField : = Value;
end;
10. Когда для объекта создается таблица виртуальных методов?
В Object Pascal часто используется динамическое замещение методов на этапе прогона программы. Для реализации этого метод, замещаемый в родительском классе, должен объявляться как динамический(dynamic) или виртуальный(virtual). Встретив такое объявление, компилятор создаст 2 таблицы: DMT и VMT и поместит в них адреса точек входа динамич и вирт методов. При каждом обращении к замещаемому методу компилятор вставляет код, позволяющий извлечь адрес точки входа в подпрограмму из той или иной таблицы.
11. Как описываются события компонентов в программе?
С помощью обработчиков событий. Обработчик – это метод, реагирующий на сообщения Windows.
12. Каково назначение операторов on…do в блоке except?
Это зарезервированные слова, используемые в обработчиках исключений:
on <класс исключения> do<оператор> Определяется реакция на конкретное исключение.
13. В чем разница между полями и свойствами?
Поля – это непосредственно данные класса. Как правило, доступ к ним запрещен во избежание ошибок. Свойствава не являются данными, а лишь ссылками на них, они позволяют оперировать полями извне.
14. Что такое параметр Sender, где он используется?
Введение этого параметра позволяет идентифицировать компонент, вызывающий событие, без задания его конкретного имени. При компиляции и выполнении приложения параметру Sender автоматически присваивается имя компонента, вызывающего событие. При этом один и тот же обработчик может обслуживать несколько компонентов одного типа. Параметр используется для того, чтобы определить, какой компонент действительно вызывает обработчик события, когда более одного компонента используют один обработчик.
15. Что называется обработчиком событий в Делфи?
Метод формы, содержащей компонент, а не самого компонента. Выполняется средствами владельца компонента. Технология наз-ся делегированием. С программной т з событие – это св-во, ссылающееся на метод.
16. Чем оконный компонент отличается от неоконных? Какие эффективней и почему?
Компоненты могут иметь или не иметь оконный ресурс. Это специальный ресурс Windows, предназначенный для создания и обслуживания окон. Только оконные компоненты способны получать и обрабатывать сообщения Windows. Оконный компонент в момент своего создания обращается к Windows с требованием выделения оконного ресурса и, если требование удовлетворено, получает дескриптор окна. Неоконные компоненты не требуют от Windows оконного ресурса, но они и не могут получать и обрабатывать Windows-сообщения – управляет такими элементами оконный компонент-владелец, который является посредником между Windows и неоконными компонентами.
17. Какие методы называют полиморфными, а какие виртуальными?
Полиморфизм – свойство решать схожие по смыслу проблемы разными способами. Для изменения метода необходимо перекрыть его в потомке, т е объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и в объекте-потомке будут действовать 2 полиморфных метода, имеющих разную алгоритмическую основу и придающих объектам разные свойства. Виртуализация методов позволяет родительским методам обраться к методам своих потомков.
18. Что такое свойства объекта?
Это ссылки на поля класса с ограниченным доступом. Св-ва позволяют оперировать с закрытыми данными извне с помощью спец. методов. Св-ва – специальный механизм классов, регулирующий доступ к полям. Св-ва объявляются с помощью зарезервированных слов property, read, write. Св-во связано с некоторым полем и указывает те методы класса, которые должны использоваться при записи в это поле или при чтении из него.
19. Чем отличаются свойства от методов?
Методы – инкапсулированные в классе процедуры и ф-ции. Св-ва – специальный механизм классов, регулирующий доступ к полям.
20. Чем отличаются и где используются public и published?
Секция public не накладывает ограничений на область видимости перечисляемых в ней полей, методов и свойств – их можно вызвать в любом другом модуле программы. Секция published тоже не ограничивает обл видимости, однако в ней перечислены свойства, которые д б доступны не только на этапе исполнения, но и на этапе конструирования программы. Секция published исп-ся только при разработке нестандартных компонентов
21. Для чего нужен Sender и где он исп-ся?
Введение этого параметра позволяет идентифицировать компонент, вызывающий событие, без задания его конкретного имени. При компиляции и выполнении приложения параметру Sender автоматически присваивается имя компонента, вызывающего событие. При этом один и тот же обработчик может обслуживать несколько компонентов одного типа. Параметр используется для того, чтобы определить, какой компонент действительно вызывает обработчик события, когда более одного компонента используют один обработчик.
22. Для чего нужен Self и где он исп-ся?
В состав любого класса входит конструктор, он распределяет объект в динамической памяти и помещает адрес этой памяти в переменную Self, которая автоматически объявляется в классе.
23. В чем смысл названии конструктора Create? Где используется? Что будет, если назвать по-другому?
В том, что разработчику не обязательно объявлять собственный конструктор класса.
Конструктор по умолчанию Create наследуется от TObject.
24. Что такое абстрактные ф-ции и для чего они нужны?
Динамически перекрываемые методы могут вообще ничего не делать. Такие методы называются абстрактными, они обязаны перекрываться в потомках. Программист может запретить вызов абстр метода, объявив его директивой abstract. Обращение к неперекрытому абстрактному методу вызывает ошибку периода исполнения.
25. Какие методы описываюся со спецификатором override?
В классе-потомке замещающий метод объявляется с директивой override (перекрыть). Получив это указание, компилятор создаст код, который на этапе прогона программы поместит в родительскую таблицу точку входа метода класса-потомка, что позволит родителю выполнить нужное действие с помощью нового метода.
26. Что представляют собой B, C, D в описании: type А = class (B, C, D)?
Данная запись – описание класса в Object Pascal. B,C,D здесь – поля данных.
27. Какие методы содержат секцию Exports?
Секция Exports используется для вызова перегруженных методов из динамической библиотеки.
28. Что называется обработчиком сообщений в Делфи?
Обработчиком сообщений называется программа, которая обрабатывает полученное сообщение, в результате чего выполняется необходимая процедура обработки. Событие – некая информационная посылка, которая формируется при нажатии при нажатии клавиш или поступает от других приложений и системных программ. Сообщение – структура данных, определяющая принадлежность события тому или иному приложению.
29. В каком методе создается виртуальная таблица методов?
В Object Pascal часто используется динамическое замещение методов на этапе прогона программы. Для реализации этого метод, замещаемый в родительском классе, должен объявляться как динамический(dynamic) или виртуальный(virtual). Встретив такое объявление, компилятор создаст 2 таблицы: DMT и VMT и поместит в них адреса точек входа динамич и вирт методов. При каждом обращении к замещаемому методу компилятор вставляет код, позволяющий извлечь адрес точки входа в подпрограмму из той или иной таблицы. Таблица VMT содержит адреса виртуальных методов не только данного класса, но и его родителей.
30. В каком файле находится главная программа проекта? Каково ее содержание?
Главная программа находится в файле .dpr и содержит информацию о всех файлах, включенных в проект. Здесь же осуществляется вызов стартовых программ приложения: Application.Initialize, Application.CreateForm, Application.Run
31. Состав проекта. Расширения файлов. Файлы проекта и их использование:
.dpr – файл проекта, содержит стартовые указатели для приложения
.pas – файл с исходным кодом, содержит основной код программы
.dfm – файл с модулем формы
.dof – создаётся при изменении опций проекта
.cfg – создается при изменении режима компиляции
.dcu – модуль промежуточной компиляции
.dll – динамически подключаемые библиотеки
.exe – исполняемые файлы
.ocx – файлы ActiveX
32.Файлы, входящие в проект и их основное назначение. См 31
33. Каково содержание главной программы проекта? См. 30
34. Чем различаются конструкции try…finally …end и try…except…else…end?
Для обработки исключений предусмотрен мех-м защищенного блока, кот. начинается зарезервированным словом try (попытаться (выполнить)) и завершается словом end. 2 типа защищенных блоков finally(в завершение) и except(исключить) отличаются способом обработки заключения. В блоке except сначала выполняются операторы секции try…except, если операторы выполнены без возникновения исключит-й ситуации, работа блока на этом завершается, и управление получает оператор, стоящий за end. Если при выполнении части try возникло исключение, управление получает соответствующий обработчик в секции except, а если таковой не найден – первый из операторов, стоящих за словом else. В блоке finally операторы в секции finally …end получают управление всегда, независимо от того, возникло ли искл-е в try…finally. Если возникло, все операторы в finally …end, стоящие за виновником искл-я, пропускаются, и управление получает первый оператор секции finally …end. Если искл-я не было, этот оператор получает упр-е после выполнения последнего оператора секции try…finally
35. Как предусмотреть разную реакцию на разные исключительные ситуации, возникающие в одном сегменте кода?
Использовать защищенные блоки
36. Различие try…finally и try…except. См 34
37. Как и когда создаются объекты искл-х ситуаций?
При возникновении исключительных ситуаций(некорректные действия программы): деление на 0, попытка открыть несуществующий файл, выход за пределы выделенной области динамической памяти. При возникновении искл-й ситуации объекты классов-обработчиков создаются и уничтожаются автоматически.
38. Что такое потомки класса Exception, где они используются?
Класс Exception – родительский класс для всех классов-исключений. Эти классы могут использоваться в обработчиках исключений. (EAbort – «тихая» обработка любого сообщения, EHeapException – неправильные операции над динамич памятью, EIntError – любая ошибка в целочисленных вычислениях, EOleError – низкоуровневая ошибка в технологии OLE и т д)
39. Как ликвидировать возникшую исключительную ситуацию? См вопросы выше
40. Какие св-ва компонента отображаются на странице свойств Инспектора объектов?
С помощью инспектора объектов задаются желаемые значения свойствам компонентов и определяются их реакции на события. В окне отображаются св-ва объекта, выбранного в данный момент в дереве объектов
41. Что отображается на страницах инспектора объектов?
Окно инспектора имеет страничную структуру и содержит страницы Свойства(Properties)
И События (Events).Страница св-в разделена на 2 колонки. В левой – названия св-в, доступных для данного компонента, а в правой – значения этих св-в. Для каждого компонента Инспектор выводит свой набор св-в. Значения м б изменены как в процессе проектирования, так и во время вып-я программы. Страница событий: щелчок на названии события открывает пустое поле значения. Здесь тербуется разработать процедуру обработчика события.
42. Как описываются события компонентов в программе?
С помощью обработчиков событий. Обработчик – это метод, реагирующий на сообщения Windows
43. В чем состоит инсталляция вновь создаваемых компонентов?
Компонент помещается в пакет
44. В чем состоит регистрация вновь создаваемых компонентов?
45. Куда при инсталляции помещаются файлы, содержащие описания вновь созданных компонентов?
46. Каково назначение процессора баз данных BDE в делфи?
Для разработки приложений с базами данных
47. что такое транзакция? Каково ее назначение?
Информация в БД дБ целостной и непротиворечивой. Использование транзакций необходимо: 1 при последовательных взаимосвязанных операциях с локальной базой
2 при многопользовательском доступе к базе
Транзакция – единичное или групповое изменение БД, которое выполняется полностью или не выполняется вообще. Результаты выполнения записываются в базу при успешном завершении транзакции.
48. Назначение процессора Баз данных BDE и утилита BDE Administrator?
Программирование баз данных предполагает создание программных средств для манипуляции данными. В дельфи доступ к данным осущ-ся с помощью процессора баз данных по схеме:
Приложение BDE данные. В BDE входят драйверы для связи с CYBD. Для управления псевдонимами и настройки баз данных имеется утилита BDE Administrator.
49. Как и когда происходит статический вызов библиотеки DLL?
При вызове библиотеки нет возможности указать ее расположение. Способы вызова:
1. статический: библиотека загружается в оперативную память вместе с использующими её приложениями, и выгружается по завершении их работы. Объявление :
Implementation
<внешнее имя подпрограммы>; external "My.DLL"
2.динамический: осуществляет загрузку библиотеки, получение адреса требуемой ф-ции и
выгрузку библиотеки
50. Чем различаются статический и динамический вызовы библиотек от динамической компоновки?
51. Чем лучше использование DLL библиотек?
Библиотеки DLL предоставляют услуги прикладным программам. ОС Windows состоит из 3х DLL
1/KERNEL 2/USER 3/GDI
Они не вып-ся сами по себе, а выз-ся программами. Подсоединяются на этапе выполнения программы. Если несколько одновременно выполняемых приложений используют общую DLL, она загружается в памяти в1 экземпляре. К DLL м обращаться из любых сред и программ, написанных на любых языках. В дельфи DLL представлены в виде пакетов, кот содержат компоненты среды визуального программирования. Пакеты служат для экспортирования DLL
52. Для чего ведется подсчет ссылок для данных интерфейсного типа?
При работе с объектами интерфейсного типа осуществляется автоматический подсчет ссылок на эти объекты.
Если ссылок нет, объект уничтожается.
53. Что может представлять собой COM – сервер?
Сервер СОМ м б исполняемой программой или может содержать 1 или несколько СОМ-объектов
54. Что содержит описание интерфейсного типа?
55. Что такое «позднее связывание»?
56.Какие описания должны снабжаться спецификатором GUID? Что он собой представляет и зачем нужен?
GUIG (глобально уникальный идентификатор)
GUIG занимает 16 байт, позволяет идентифицировать интерфейс во всемирном масштабе. Строится на основе метки времени.
57. Что такое интерфейсный тип?
58. что такое фабрика класса? Каково ее назначение? Для каких классов используется?
Для создания экзкмпляра класса СОМ-объекта исп-ся объект фабрика классов. Он поддерживает интерфейс
IClassFactory с двумя методами:
CreateInstance - создание класса
LockServer - оставляет сервер функционировать после создания.
Для каждого класса СОМ объекта нужна фабрика. Делфи создает их автоматически
59. Значение COM?
СОМ - компонентная модель объекта. Технологии СОМ разрабат-ся в Microsoft и предназначены
чтобы одна программа-клиент смогла заставить работать объект, явл-ся частью др проги, но так,
как будто это его собственная часть.
60. Куда заносятся данные о COM сервере при его регистрации?
---------------------------------------------------------------------------------------------------------------------
Это компонентная технология, относящаяся к технологиям сборочного программирования (сборка проги из готовых частей).
СОМ - компонентная модель объекта. Технологии СОМ разрабат-ся в Microsoft и предназначены, чтобы одна программа-клиент смогла заставить работать объект, явл-ся частью др проги, но так, как будто это его собственная часть. Объект сервера д регистрироваться на уровне ос. Сервер СОМ м б исполняемой программой, может содержать 1 или несколько СОМ-объектов. В зав-ти от положения клиента и сервера возможны варианты
1.они в одной машине и запускаются в одном процессе. Сервер внутренний
2.они в одной машине,но запускаются в разных приложениях. Сервер локальный или внешний и явл программой
3.они на разн машина. Сервер удаленный и явл программой
Клиентом СОМ-объекта обычно явл приложение.В общем случае клиенту неизвестно, где сервер. Обращение-имя СОМ-объекта. Ключевым аспектом СОМ явл интерфейс, имеющий уникальный глобальный идентификатор и имя, и содержащий объявление методов событий и свойств некоторого объекта. Идентификатор интерфейса (IID) - частный случай GUIG (глобально уникальный идентификатор)
GUIG занимает 16 байт, позволяет идентифицировать интерфейс во всемирном масштабе. Строится на основе метки времени. Получив интерфейс внешнего СОМ-объекта, клиент м исп-ть его как свой собственный. Синтаксический интерфейс похож на абстрактный. В его состав входят подпрограммы, ни одна из которых не реализована
Для создания экзкмпляра класса СОМ-объекта исп-ся объект фабрика классов. Он поддерживает интерфейс
IClassFactory с двумя методами:
CreateInstance - создание класса
LockServer - оставляет сервер функионировать после создания.
Для каждого класса СОМ объекта нужна фабрика. Делфи создает их автоматически
Библиотеки DLL предоставляют услуги прикладным программам. ОС Windows состоит из 3х DLL
1/KERNEL 2/USER 3/GDI
Они не вып-ся сами по себе, а выз-ся программами.Подсоединяются на этапе выполнения программы.
Если несколько одновременно выполняемых приложений используют общую DLL, она загружается в памяти в
1 экземпляре. К DLL м обращаться из любых сред и программ, написанных на любых языках.
В дельфи DLL представлены в виде пакетов, кот содержат компоненты среды визуального
программирования.Пакеты служат для экспортирования DLL
При вызове библиотеки нет возможности указать ее расположение.Способы вызова:
1.статический: библиотека загружается в оперативную память вместе с использующими её
приложениями, и выгружается по завершении их работы. Объявление :
Implementation
<внешнее имя подпрограммы>; external "My.DLL"
2.динамический: осуществляет загрузку библиотеки, получение адреса требуемой ф-ции и
выгрузку библиотеки
Для обеспечения выполнения ф-ций интерфейса СОМ уст-ся в ОС. При установке приложения, использующего СОМ,в системный реестр записывается инф-я об используемых им СОМ-объектах, содержащая идентификатор класса, тип сервера и его полное имя. Когда клиент хочет использовать СОМ-объект, он обр-ся к библиотеке СОМ и вызывает метод CoCreateInstance, указывая GUIGы класса и интерфейса. Библиотека
обращается к системному реестру, находит инф-ю о сервере и запускает его. Сервер создает экземпляр класса и возвращает библиотеке указатель на запрошенный интерфейс, которая передает его клиенту. Интерфейс хар-ся адресом, указывающим на таблицу адресов реализаций методов, экспортируемых интерфейсом.
Взаимодействие клиента с сервером.
Если СОМ-сервер явл внутрипроцессорным, то сервер загружается в адресное пространство клиента. Указатель наserver непосредственно доступен.
Если сервер внепроцессорный, то нельзя передать клиенту указатель на интерфейс. В адресныхпространствах клиента и сервера создаются 2 объекта:Stub и Proxy
Похожие статьи:
|
|||
| Обновлено 16.03.2010 05:10 |
Сайт балтийского государственного технического университета ВОЕНМЕХ группы И373 это находка для студента военмеха! Кафедра И3 «Системы обработки информации и управления» обеспечивает подготовку студентов по математической, аппаратной и программной подсистемам в рамках ряда циклов. Обучение завершается комплексными дисциплинами специального цикла, формирующими у выпускников определенный подход к проектированию систем обработки информации и управления, впрочем, изучать современные технологии все-равно придется самим уже вне «песочницы». На сайте предоставлено много выполненных курсовых проектов, решенных контрольных, ответов на тесты, лабораторных, учебных материалов и пособий(методичек) с целью облегчения обучения. Все материалы структурированы по дисциплинам и по курсам. Желаю вам побольше терпения, сил и успехов в учебе!
С уважением, Шевцов А.Д.
Сайту крайне необходимы свежие материалы! Мы стараемся выложить как можно больше информации о вузе и прочих полезностей для успешной сдачи зачетов и экзаменов в военмехе.
Если у вас есть желание принять участие в развитии проекта а так же любые замечания или полезные файлы - свяжитесь с одним из администраторов, мы будем рады видеть вас в нашей команде и с радостью разместим отправленный нам ценный контент. При отправке ссылок или писем с файлами просьба оставлять комментарий - что за файл и куда его резместить.
По вопросам рекламы на сайте так же обращаться по указанным в разделе контактной информации телефонам.