- •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)
51). Роз’ясніть поняття модуля як програмного еквівалента класу об’єктів.
. Модульне програмування — парадигма програмування, основна ідея полягає в:
реалізації обчислювальних процесів у вигляді окремих програмних одиниць - модулів; звертанні до цих модулів в інших програмах з передачею даних, необхідних для обчислювального процесу. Модульне програмування дозволяє зменшити обсяг вихідних текстів програм, зробити їх більш прозорими, прискорити написання і тестування програм, зменшити витрати на супровід (експлуатацію) програм.
Модуль - це окрема функціонально-закінчена програмна одиниця, що структурно оформляється стандартним чином стосовно компілятора й стосовно об'єднання її з іншими аналогічними одиницями та призначена для вирішення однієї або групи подібних задач.
Головна ідея полягає в забезпеченні доступу до даних, не залежному від їх конкретного представлення. Самі дані і програми їх обробки вбудовуються (інкапсулюються) в окремій одиниці програми.
Модуль – як програмний еквівалент класів
Оскільки дані є річчю, що хочуть сховати, поняття приховування даних розширюється до поняття приховування інформації, тобто імен змінних, констант, функцій і типів, що теж можуть бути локальними в модулі. Хоча мова С++ і не призначалася спеціально для підтримки модульного програмування, класи підтримують концепцію модульності.
Фактично модулі програм можна вважати класами C++. Вони містять власні змінні і функції. Якщо код написаний правильно, класові не потрібна зовнішня підтримка.
Узявши ваш клас, будь-який додаток може використовувати надані їм можливості, знаючи тільки як правильно звертатися до функцій (через використання прототипів функцій). Для виклику функції класу досить створити екземпляр класу і звернутися до необхідної функції:
cClass MyClass; // Створення екземпляра класу
MyClass.Function1(); // Виклик функції класу
Щоб досягти справжньої модульності ваш код повинен захищати свої дані. Зробити це просто — у C++ досить додати до оголошення перемінних класифікатор protected ( extern –внутріші дані).
Щоб надати доступ до цим перемінним класу ви повинні написати відкриті функції, що будуть використовуватися поза вашим кодом - public (internal – зовнішні дані).
52). Розясніть основні концепції модульного програмування.(додатково у 51)
Основні концепції модульного програмування:
кожний модуль реалізує єдину незалежну функцію;
кожний модуль має єдину точку входу й виходу;
розмір модуля, по можливості, повинен бути мінімізований;
кожний модуль може бути розроблений і закодований різними членами бригади програмістів і може бути протестований окремо;
вся система побудована з модулів;
модуль не повинен давати побічних ефектів;
кожний модуль не залежить від того, як реалізовані інші модулі.
1 використовується також як символьний тип
