Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Это верно только для виртуальных методов.

Учреждение образования «Гомельский торгово-экономический колледж»

Белкоопсоюза

 

Рассмотрено на заседании цикловой комиссии «Информатики и программирования» Протокол № ____ от «____»_______________ 2011 г. Председатель __________________ Н.С. Васьковцова УТВЕРЖДАЮ Первый зам. директора по учебной работе   «____»__________________ 2011 г. _____________________ С.В. Сочнев

 

ОБЯЗАТЕЛЬНАЯ КОНТРОЛЬНАЯ РАБОТА №1

 

По дисциплине «Объектно-ориентированное программирование»

Для групп П-21, П-22, П-23

 

специальность:

2-40 01 01 «Программное обеспечение информационных технологий»

специализация:

2-40 01 01 35 «Программное обеспечение обработки экономической и деловой информации»

2-40 01 01 33 «Компьютерная графика»

 

Разработали преподаватели

О.Л. Иткина

Н.С. Васьковцова

 

 

Гомель, 2011


ПОЯСНИТЕЛЬНА ЗАПИСКА

Обязательная контрольная работа охватывает материал дисциплины «Объектно-ориентированное программирование»

Эта дисциплина изучается учащимися на втором курсе в объеме 30 часов.

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

Учащиеся должны:

· дать определения основным понятиям объектно-ориентированного программирования;

· понимать основные конструкции языка Object Pascal;

· описывать основные принципы объектно-ориентированных технологий с использованием конструкций языка Object Pascal.

Обязательная контрольная работа содержит 5 вариантов заданий. Приведены критерии оценивания по десятибалльной системе.

Работа должна быть выполнена и оформлена на проштампованном листе. На выполнение контрольной работы выделяется 45 минут.

 

Таблица оценочных критериев

по десятибалльной системе

 

Номера заданий Стоимость одного задания (баллы)
   
   
   
   
Итого:  

 

Выставление отметок выполняется в следующих интервалах:

 

 

Критерии оценок:

 

1 (один) 0 баллов   6 (шесть) 5 баллов
2 (два) 1 балл   7 (семь) 6 баллов
3 (три) 2 балла   8 (восемь) 7 баллов
4 (четыре) 3 балла   9 (девять) 8-9 баллов
5 (пять) 4 балла   10 (десять) 10 баллов

 

 


ВАРИАНТ №1

1. Выберите правильные утверждения.

Технология ООП по сравнению с тради­ционной позволяет создавать:

1) более простые по структуре программы;

2) более быстродействующие программы;

3) программы, допускающие более простую модификацию;

4) более короткие программы.

Выберите правильный ответ.

При использовании new в виде функции ее первым параметром является:

1) указатель на экземпляр объекта;

2) тип объекта;

3) экземпляр объекта;

4) тип указателя на объект.

Дайте определение класса. Класс - множество объектов, связанных общностью структуры и поведением. Класс — это множество объектов, имеющих одинаковую структуру.

Опишите принцип полиморфизма

• Полиморфизм:

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

ВАРИАНТ №2

Выберите правильные утверждения.

Преимуществами ООП являются:

1) возможность использования в новых программах ранее созданных объектов;

2) увеличение быстродействия программы;

3) простота использования;

4) легкость внесения изменений в программу.

Выберите правильный ответ

Какая процедура применяется для освобождения памяти из-под объектов?

1) Dispose;

2) Delete;

3) Done;

4) Free;

5) Close.

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

Опишите принцип наследования. Наследование - это такая иерархичность абстракций, в которой подклассы насле-дуют строение от одного или нескольких классов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Классы отражают наиболее общие, а подклассы более специализированные абстракции. Различают случаи простого и мно-жественного наследования. производный класс наследует всю структуру характеристик и поведение базового, однако может дополнять или модифицировать их. Механизм, позволяющий объектам класса наследовать характеристики (данные и мето-ды) более простых и общих типов (классов). - средство получения новых классов из суще-ствующих

ВАРИАНТ №3

Выберите правильные утверждения.

Инкапсуляция приводит к:

1) упрощению структуры программы;

2) уменьшению степени абстракции программы;

3) упрощению поиска ошибок;

4) упрощению внесения изменений в программу.

Выберите правильный ответ

Деструктор обязательно описывать:

1) для любых объектов;

2) для объектов, имеющих конструктор;

3) для динамических объектов;

4) для динамических полиморфных объектов.

Дайте определение метода Методы: Процедуры и функции, связанные с классом. Они определяют действия, ко-торые можно выполнять над объектом такого типа, и которые сам объект может выпол-нять.

Опишите порядок создания динамического объекта

Динамическое создание объектов

Для работы с динамическими объектами используется расширенный синтаксис процедур New и Dispose. Обе процедуры в этом случае содержат в качестве второго параметра имя конструктора или деструктора объекта:

New(P, Construct) или

Dispose(P, Destruct).

Где Р — указатель на переменную объектного типа, a Construct и Destruct — конструктор и деструктор этого типа.

Действие процедуры New в случае расширенного синтаксиса равносильно действию операторов

New(P);

Р^.Construct;

А вызов процедуры Dispose эквивалентен последовательности

Р^.Destruct; Dispose(P);

Динамические объекты. Деструкторы

Для выделения памяти под объекты используются процедура и функция new.

Например, если определены указатели:

Type

pmonstr = *monstr:

pdaemon = ^daemon; var pm: pmonstr; pd: pdaemon;

можно создать объекты с помощью вызовов:

new(pm); { или pm:= new(pmonstr); } new(pd); { или pd:= new(pdaemon); }

Обратите внимание, что при использовании new в форме процедуры параметром является указатель, а в функцию передается его тип. Так как после выделения памяти объект обычно инициализируют, в Паскале для удобства определены расширенные формы new с двумя параметрами. На месте второго параметра задается вызов конструктора объекта:

new(pm, initd, 1, 1, 1);

{ или

pm:= new(pmonstr, initCl. 1, 1, 1));

} '

new(pd, initd, 1, 1, 1, 1):

{или

pd:= new(pdaemon. initd, 1, 1, 1, D);

}

Для освобождения памяти, занятой объектом, применяется процедура Dispose:

Dispose(pm); При выполнении этой процедуры освобождается количество байтов, равное размеру объекта, соответствующего типу указателя. Следовательно, если на самом деле в указателе хранится ссылка на объект производного класса, который, как известно, может быть больше своего предка, часть памяти не будет помечена как свободная, но доступ к ней будет невозможен, то есть появится мусор. Второй случай появления мусора возникает при применении процедуры Dispose к объекту, поля которого являются указателями.

Для корректного освобождения памяти из-под полиморфных объектов следует использовать вместе с процедурой Dispose специальный метод — деструктор. Ему рекомендуется давать имя done, например:

destructor monstr.done:

Begin

end:

Для правильного освобождения памяти деструктор записывается вторым параметром процедуры Dispose:

Dispose(pm, done);

Это верно только для виртуальных методов.

Для простых объектов деструктор может быть пустым, а для объектов, содержащих динамические поля, в нем записываются операторы освобождения памяти для этих полей. В деструкторе можно описывать любые действия, необходимые для конкретного объекта, например закрытие файлов. Исполняемый код деструктора никогда не бывает пустым, потому что компилятор по служебному слову destructor вставляет в конец тела метода операторы получения размера объекта из VMT. Деструктор передает этот размер процедуре Dispose, и она освобождает количество памяти, соответствующее фактическому типу объекта. (Вызов деструктора вне процедуры Dispose память из-под объекта не освобождает)

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

ВАРИАНТ №4

1. Дано описание объектов:

type

А = object

У: integer: end:

В = object (A)

Z, Т: integer: end:

var Ы: В;

Укажите правильные способы обращения к полям объекта:

1) B.Z

2) bl.Y

3) Y.B

4) Ы.Т

5) Т.Ы

 

Выберите правильный ответ

Освобождает ли динамическую память деструктор с пустым телом?

1) Да.

2) Да, только для динамических объектов.

3) Да, только для объектов, имеющих конструктор.

4) Нет.

 

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

Опишите принцип инкапсуляции Инкапсуляция - это процесс разделения элементов объекта, определяющих его устройство и поведение. Некоторые параметры объекта могут быть локализованы внутри объекта и недо-ступны для прямого воздействия извне объекта. Например, во время движения объекта-автомобиля объект-водитель может воздействовать только на ограниченный набор органов управления (рулевое колесо, педали газа, сцепления и тормоза, рычаг переклю-чения передач) и ему недоступен целый ряд параметров, характеризующих состояние двигателя и автомобиля в целом – инкапсуляция. это принцип, согласно которому любой класс должен рассматриваться как чёрный ящик — пользователь класса должен видеть и использовать только ин-терфейсную часть класса и не вникать в его внутреннюю реализацию.


ВАРИАНТ №5

1. Выберите правильные утверждения:

При описании метода перед его именем указывается:

1) имя типа объекта;

2) имя экземпляра объекта;

3) имя поля объекта;

4) имя объекта-предка;

5) ничего не указывается.

 

Выберите правильный ответ

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...