- •1.Охарактеризуйте розвиток структуризації у мовах програмування. Технології програмування.
- •2. Охарактеризуйте особливості та переваги об’єктно-орієнтованого програмування, використовуючи його базові поняття та терміни.
- •3.Охарактеризуйте такі поняття об’єктно-орієнтованої парадиґми, як клас, об’єкт, повідомлення та метод.
- •Означте такі базові властивості об’єктно-орієнтованого програмування як абстрагування, наслідування, інкапсуляція та поліморфізм.
- •Охарактеризуйте поняття абстрагування при створенні класу об’єктів. Проаналізуйте відмінності між поняттям класу та об'єкту.
- •6. Специфікація представлення та функціональна специфікація класів.
- •8.Опишіть такий агрегатний тип даних як масив. Приклади
- •10.Охарактеризуйте поняття ідентифікації об’єктів. Проаналізуйте способи ідентифікації об’єктів.
- •11. Об'єкти з точки зору концепцій інкапсуляції і абстракції.
- •12. Проаналізуйте структуру опису та реалізації класу: компоненти-дані і компоненти-функції.
- •13. Проаналізуйте особливості доступу до компонентів об’єкта (використання специфікаторів public, private, protected).
- •14. Ініціалізація об’єктів (конструктори). Опис конструкторів та порядок їх виклику.
- •15. Опишіть процес руйнування об’єкта (деструктори).
- •21).Охарактеризуйте віртуальні функції. Приклади.
- •Проаналізуйте поняття «час життя» об'єкта та його «область видимості».
- •23).Класи пам’яті. Використання автоматичної, статичної та динамічної пам’яті для розміщення об’єктів.
- •24). Розкрийте суть проблеми "висячих" посилань і “сміття”.
- •1)Цілі, 2)раціональні (із плаваючою крапкою),3) символьні;4) рядкові.
- •1) Константи цілого типу
- •2) Константи раціонального типу
- •3) Символьні константи
- •Керуючі коди
- •4) Рядкові константи
- •Перераховуваний тип
- •30. Охарактеризуйте особливості inline-функцій та inline-методів класів.
- •33. Опишіть такі аґреґатні типи даних, як структура і об’єднання, їх основні відмінності.
- •34. Охарактеризуйте поняття вказівника і посилання. Їх основні відмінності.
- •Типові обмеження та помилки програмування при роботі з посиланнями.
- •35. Ініціалізація вказівників. Операції над ними.
- •Операції з вказівниками.
- •Типові помилки програмування при роботі з вказівниками.
- •36. Охарактеризуйте зв'язану організацію пам'яті та використання вказівників у програмах.
- •37.Дайте аналіз динамічним структурам об’єктів на прикладі асоціативних структур даних.
- •38.Проаналізуйте такі динамічні структури об’єктів як лінійні списки.
- •39Дайте оцінку такій динамічні структури об’єктів як черги, стеки та деки.
- •40.Опишіть та дайте приклади використання зв’язаної організації пам’яті для реалізації рекурсивних структур.
- •48). Використання маніпуляторів при вводі-виводі даних.( незнайдено повністю)
- •49). Способи форматування даних при використанні потоків.
- •51). Роз’ясніть поняття модуля як програмного еквівалента класу об’єктів.
- •52). Розясніть основні концепції модульного програмування.(додатково у 51)
33. Опишіть такі аґреґатні типи даних, як структура і об’єднання, їх основні відмінності.
Структура - це складовою тип даних, який складається з елементів різних типів. Оголошення структури слід розглядати як оголошення типу.
Зауваження. В C + + структури містять в собі не тільки дані, але і код і відносяться до засобів об'єктно-орієнтованого програмування. В даному розділі об'єктні властивості структур не розглядаються.Приклад. Оголошення структури, яка зберігає відомості про журнал: назва, рік, номер.
struct magazin
{char * tittle;
int year;
int number;
};
Нижче визначена і инициализирована мінлива структура
mag.magazin mag = {"Nature", 3, 1995);
Доступ до елементів структури здійснюється по складеному імені:
імя_структури.імя_елемента.
Тут точка позначає оператор вибору, а складене ім'я дає ще один приклад адресного вираження.
Якщо є вказівник на структуру, то доступ до елемента возмо ¬ жен за допомогою операції непрямого вибору:
указатель_на_структуру-> імя_елемента.
Стрілка, складена з двох символів, позначає оператор непрямого вибору.
Структури можна привласнювати, передавати у вигляді параметрів функції, повертати у вигляді результату функції. Структури не можна порівнювати операціями ==, / =, <,> і т.п. Структури, як і масиви, можна ініціалізувати списком значень.
Приклад. Робота зі структурою magazin.
/ / Оголошення і ініціалізація
magazin * pm, m = ("Nature", 2000, 4};
/ / Доступ до елементівcout «m.tittle« "" «m.number« endl;
/ / Одна структура у вільній пам'яті
* Pm = new magazin;
* Pm = m;pm-> tittle = "Nature";
delete pm;
/ / Масив структур у вільній пам'яті
pm = new magazin [10];
pm [0]. tittle = "Природа";
delete [] pm;
Об'єднання C + + дуже схожі на структури, за винятком того, як C + + зберігає їх у пам'яті, крім того, об'єднання може зберігати значення тільки для одного елемента в кожен момент часу.
Об'єднання являє собою структуру даних, подібну структурі C + +, і складається з частин, які називаються елементами.
Об'єднання визначає шаблон, за допомогою якого програми далі оголошують змінні.
Для звернення до певного елементу об'єднання ваші програми використовують оператор C + + точку.
Щоб змінити значення елемента об'єднання всередині функції, ваша програма повинна передати змінну об'єднання у функцію за допомогою адреси.
Анонімне об'єднання є об'єднання, у якого немає імені (тега).
Як ви дізнаєтеся, об'єднання дуже схожі на структури C + +, проте спосіб, за допомогою якого C + + зберігає об'єднання, відрізняється від способу, за допомогою якого C + + зберігає структури.
Усередині ваших програм об'єднання C + + дуже схожі на структури. Наприклад, наступна структура визначає об'єднання з ім'ям distance, що містить два елементи:
union distance
{
int miles;
long meters;
};
Як і у випадку зі структурою, опис об'єднання не розподіляє пам'ять. Натомість опис надає шаблон для майбутнього оголошення змінних. Щоб оголосити змінну об'єднання, ви можете використовувати будь-який з таких форматів:
union distance
{
union distance
{
int miles; int miles;
long meters; long meters;
} japan, germany, franee;
};
distance japan, germany, franee;
Як бачите, дане об'єднання містить два елементи: miles і meters. Ці оголошення створюють змінні, які дозволяють вам зберігати відстані до зазначених країн. Як і для структури, ваша програма може присвоїти значення будь-якого елементу. Однак на відміну від структури значення може бути присвоєно лише одному елементу в кожен момент часу. Коли ви оголошуєте об'єднання, компілятор C + + розподіляє пам'ять для зберігання самого великого елемента об'єднання. У разі об'єднання distance компілятор розподіляє достатньо пам'яті для зберігання значення типу long
