- •Билет 1
- •3. Замещение методов и принцип подстановки.
- •Билет 2
- •1. Принцип Чёрча. Гипотеза Ворфа. Гипотеза Сапира-Ворфа. Формальные модели вычислений (модели Чёрча, Поста, Маркова, Тьюринга, Клини и другие).
- •2. Итераторы. Объекты-функции. Будущее ооп.
- •Билет 5
- •Билет 8
- •Понятие полиморфной переменной
- •3. Формы наследования. Порождение подкласса для комбинирования.
- •Формы наследования
- •Билет 19
- •Билет 20
- •Билет 21
- •Билет 22
- •3. Программные компоненты. Их разновидность. Основная целевая направленность.
- •Билет 23
- •1. Восстановление памяти. Указатели. Эффективное средство работы с динамической информации. Создание неизменяемого экземпляра объекта.
- •Билет 25
- •1. Наследование и принцип подстановки. Отношения: быть экземпляром и включать как часть.
- •Билет 26
- •3. Издержки наследования.
- •Билет 27
- •1. Противопоставление композиции и наследование. Преимущества и недостатки двух подходов.
- •Билет 28
- •Билет 29
- •Билет 30
- •3. Интерфейс и реализация.
Билет 2
1. Принцип Чёрча. Гипотеза Ворфа. Гипотеза Сапира-Ворфа. Формальные модели вычислений (модели Чёрча, Поста, Маркова, Тьюринга, Клини и другие).
Теория вычислимости и теория сложности вычислений трактует модель вычисления (англ. model of computation) не только как определение множества допустимых операций, использованных для вычисления, но также и относительных издержек их применения. Охарактеризовать необходимые вычислительные ресурсы — время выполнения, объём памяти, а также ограничения алгоритмов или компьютера — можно только в том случае, если выбрана определённая модель вычислений.
В модельно-ориентированной инженерии модель вычислений и её выбор дают ответ на вопрос, как ведёт себя система в целом, если известно поведение её отдельных частей.
Тезис Чёрча — Тьюринга — Дойча, в информатике и квантовой физике, известный также как CTD-принцип (по аббревиатуре отангл. Church, Turing, Deutsch), или как сильный тезис Чёрча — Тьюринга — более строгая в физическом смысле формулировкаэвристического вычислительного тезиса Чёрча — Тьюринга, предложенная Дэвидом Дойчем в 1985 году. Согласно тезису, универсальное компьютерное устройство способно моделировать любой конечный физический процесс, при этом аппаратклассической физики, существенным образом использующий понятия непрерывности и континуума, не позволяет моделировать всефизические процессы машиной Тьюринга, которая оперирует лишь с вычислимыми объектами. Дойч предположил, что квантовые компьютеры смогут превозмочь ограничения данного принципа, если алгебраические законы квантовой физики смогут стать теоретической базой, описывающей любые физические процессы.
2. Итераторы. Объекты-функции. Будущее ооп.
Итератор (от англ. iterator) — объект, абстрагирующий за единым интерфейсом доступ к элементам коллекции[1]. Итератор иногда также называют курсором, особенно если речь идет о базе данных. В Обероне он называется также бегуно́к и представлен как тип данных. В простейшем случае итератором в низкоуровневых языках является указатель.
Язык C++ широко использует итераторы в STL, поддерживающей несколько различных типов итераторов, включая 'однонаправленные итераторы', 'двунаправленные итераторы' и 'итераторы произвольного доступа'. Все стандартные шаблоны типов контейнеров реализуют разнообразный, но постоянный набор типов итераторов. Синтаксис стандартных итераторов сделан похожим на обычные указатели языка Си, где операторы * и -> используются для указания элемента, на который указывает итератор, а такие арифметические операторы указателя, как ++, используются для перехода итератора к следующему элементу.
Итераторы обычно используются парами, один из которых используется для указания текущей итерации, а второй служит для обозначения конца коллекции. Итераторы создаются при помощи соответствующих классов контейнеров, используя такие стандартные методы как begin() и end(). Функция begin() возвращает указатель на первый элемент, а end() — на воображаемый несуществующий элемент, следующий за последним.
3. Законность понятие относительной мощности языка программирования.
Мощность языка — это возможность не слишком сложными конструкциями решать достаточно сложные задачи. Вот две программы, делающие одно и то же. Они печатают количество слов в строке, которые содержатся в некотором словаре. При этом слова в строке могут быть в любом регистре.
Билет 3
1. Парадигмы программирования. Новая парадигма. Взгляд на мир с позиций ООП.
Паради́гма программи́рования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ. Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером[1].
2. Контейнеры. Использование традиционных подходов. Контейнеры в языках со строгим контролем типа данных.
3. Уведомление о замещении.
Билет 4
1. Способ видения мира при ООП. Агенты, обязанности, сообщения и методы. Обязанность и ответственность. Классы и экземпляры.
Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает свойства и методы, которые будут доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры используют для представления (моделирования) конкретных сущностей реального мира. Например, экземпляром класса стиральных машин может быть ваша стиральная машина, имеющая следующие свойства: компания-производитель «Вятка», наименование модели «Вятка-автомат», серийный номер изделия ВЯТ454647, емкость 20 л. В отличие от имени класса, имя экземпляра обычно начинается со строчной буквы.
Класс — разновидность абстрактного типа данных в объектно-ориентированном программировании (ООП), характеризуемый способом своего построения. Другие абстрактные типы данных — метаклассы, интерфейсы, структуры, перечисления, — характеризуются какими-то своими, другими особенностями.
Фундаментальной концепцией в ООП является понятие обязанности или ответственности за выполнение действий. Ваш запрос на поздравление родственников выражает лишь желаемый результат. Почта вольна сама выбирать средство для удовлетворения этого запроса. Полный набор обязанностей, связанных с определенным объектом, называют протоколом.
Агент (в АОП к программировании) — некоторая сущность, система, которая обладает свойством, помимо свойств объекта — существовать и объединять, необходимыми для взаимодействия с внешней средой.
2. Скрытое приведение типа данных при наследовании.
Приведе́ние ти́па (type conversion) — преобразование значения переменной одного типа в значение другого типа. Выделяют явное инеявное приведения типов.
3. Замещение в С++.
