Автор: Пользователь скрыл имя, 02 Ноября 2012 в 23:08, контрольная работа
Работа содержит ответы на вопросы для зачета про "Информатике"
Контекстное меню в операционной системе Windows ХР………………… 3
Форматирование абзаца в текстовом процессоре MS WORD…..…………4
Типы функций в табличном процессоре МS EXCEL……………………… 7
Создание таблицы с помощью мастера в СУБД МS АССЕSS……………. 9
Объектно-ориентированное программирование…………………………. 10
В отличие от типа «запись», объектный тип содержит не только поля, описывающие данные, но также процедуры и функции, описания которых содержится в описании объекта. Эти процедуры и функции называют методами.
Методам объекта доступны его поля. Следует отметить, что методы и их параметры определяются в описании объекта, а их реализация даётся вне этого описания, в том мест программы, которое предшествует вызову данного метода.
В описании объекта фактически содержаться лишь шаблоны обращения к методам, которые необходимы компилятору для проверки соответствия количества параметров и их типов при обращении к методам. Вот пример описания объекта[1]:
Type
Location = object
X,Y: Integer;
Procedure Init(InitX, InitY: Integer);
Function GetX: Integer;
Function GetY: Integer;
End;
Здесь описывается объект, который может использоваться в дальнейшем, скажем, в графическом режиме и который предназначен для определения положения на экране произвольного графического элемента. Объект описывается с помощью зарезервированных слов object…end, между которыми находиться описание полей и методов. В нашем примере объект содержит два поля для хранения значений графических координат, а так же для описания процедуры и двух функций - это методы данного объекта. Процедура предназначена для задания первоначального положения объекта, а функция – для считывания его координат.
Инкапсуляция
Инкапсуляция является важнейшим
свойством объектов, на котором строится
объектно-ориентированное
Инкапсуляция и является средством организации доступа к данным только через соответствующие методы.
В нашем примере описание
объекта процедура
Наследование
Наследование – это
ещё одно базовое понятие
Пример описания объекта-
Tipe
Point = object(Location)
Visible: Boolean;
Procedure Int(IntX, IntY: Integer);
Procedure Show;
Procedure Hide;
Function IsVisible: Boolean;
Procedure MoveTo(NewX, NewY: Integer);
End;
Наследником здесь
является объект Point, описывающий
графическую точку, а
Объект-родитель может
быть уже в составе
В чём привлекательность наследования? Если некий объект был уже определён и отлажен, он может быть использован и в других программах. При этом может оказаться, что новая задача отличается от предыдущей, и возникает необходимость некоторой модификации как данных, так и методов их обработки. Программисту приходится решать дилемму – создания объектов заново или использовать результаты предыдущей работы, применяя механизм наследования. Первый путь менее эффективен, так как требует дополнительных затрат времени на отладку и тестирование. Во втором случае часть этой работы оказывается выполненной, что сокращает время на разработку новой программы. Программист при этом может и не знать деталей реализации объекта- родителя.
В нашем примере к объекту, связанному с определением положения графического элемента, просто добавилось новое поле, описывающее признак видимости графической точки, и несколько новых методов, связанных с режимом отображения точки и её преобразованиями.
6. Виртуальные методы
Наследование позволяет создавать иерархические, связанные отношениями подчинения, структуры данных. Следует, однако, заметить, что при использовании этой возможности могут возникнуть проблемы. Предположим, что в нашей графической программе необходимо определить объект Circle, который является потомком другого объекта Point:
Type
Circle = object (point)
Radius: Integer;
Procedure Show;
Procedure Hide;
Procedure Expand(ExpandBy: Integer);
Procedure Contact(ContactBy: Integer);
End;
Новый объект Circle соответствует окружности. Поскольку свойства окружности отличаются от свойств точки, в объекте-наследнике придется изменять процедуры Show и Hide, которые отображают окружность и удаляют её изображение с экрана. Может оказаться, что метод Init (см. предыдущий пример) объекта Circle, унаследованный от объекта Point, также использует методы Show и Hide, впредь во время трансляции объекта Point использует ссылки на старые методы. Очевидно в объекте Circle они работать не будут.
Можно, конечно, попытаться
«перекрыть» метод Init. Чтобы это
сделать, нам придётся
Для решения этой проблемы используется виртуальный метод. Связь между виртуальным методом и вызывающими их процедурами устанавливается не во время трансляции (это называется ранним связанием), а во время выполнения программы (позднее связание.
Чтобы использовать виртуальный метод, необходимо в описании объекта после заголовка метода добавить ключевое слово virtual. Заголовки виртуальных методов родителя и наследника должны в точности совпадать.
Инициализация экземпляра
объекта, имеющего виртуальные
методы, должна выполняться с
помощью специального метода
– конструктора. Конструктор обычно
присваивает полям объекта
Конструктор выполняет
действия по подготовке
У каждого объектного типа имеется своя собственная таблица виртуальных методов, что позволяет одному и тому же оператору вызывать разные процедуры. Если имеется несколько экземпляров объектов одного типа, то недостаточно вызвать конструктор для одного из них, а затем просто скопировать этот экземпляр во все остальные. Каждый объект должен иметь свой собственный конструктор, который вызывается для каждого экземпляра. В противном случае возможен сбой в работе программы.
Заметим, что конструктор
или деструктор, могут быть «пустыми»,
то есть не содержать
Динамическое создание объектов
Переменные объектного
типа могут быть динамическими,
Dispose. Обе процедуры в
этом случае содержат в
New(P, Construct) или
Dispose(P, Destruct)
Где P – указатель на переменную объектного типа, а Construct или
Destruct – конструктор и деструктор этого типа.
Действие процедуры
New в случае расширенного
New(P);
P^.Construct;
Эквивалентом Dispose является следующее:
P^Dispose;
Dispose(P)
Применение расширенного синтаксиса не только улучшает читаемость исходного кода, но и генерирует более короткий и эффективный исполняемый код.
Полиморфизм
Полиморфизм заключается
в том, что одно и то же
имя может соответствовать
Следующий вопрос, связанный с использованием объектов, заключается в совместимости объектных типов. Полезно знать следующее. Наследник сохраняет свойства совместимости с другими объектами своего родителя. В правой части оператора присваивания вместо типов родителя можно использовать типы наследника, но не наоборот. Таким образом, в нашем примере допустимы присваивания:
Var
Alocation : Location;
Apoin : Point;
Acircle : Circle;
Alocation :=Apoint
Apoint := Acrcle;
Alocation := Acircle;
Дело в том, что наследник может быть более сложным объектом, содержащим поля и методы, поэтому присваиваемые значения экземпляра объекта- родителя экземпляру объекта-наследника может оставить некоторые поля неопределёнными и, следовательно, представляет потенциальную опасность. При выполнении оператора присвоения копируются только те поля данных, которые являются общими для обоих типов.
Список используемой литературы
Задача 1. Определить объем текстового выражения в символах, битах, байтах, килобайтах. Компьютерная графика: Photoshop.
Компьютерная_графика:_
Символов =32
1 Байт = 1 печатному знаку, то есть символу Þ 32 Байта
1 Байт = 8Бит Þ 8*32=256, Þ256 Бита
1Кбайт =210 Байт Þ Кбайт = = =0,03125
Ответ: 32 символа; 32 Байта; 256 Бита; 0,03125 Кбайт.
Информация о работе Контекстное меню в операционной системе Windows