- •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)
1.Охарактеризуйте розвиток структуризації у мовах програмування. Технології програмування.
Технологія програмування - це сукупність методів і засобів розробки (написання) програм і порядок застосування цих методів і засобів.
На ранніх етапах розвитку програмування, коли програми писалися у виді послідовностей машинних команд, яка-небудь технологія програмування була відсутня. Перші кроки в розробці технології полягали в представленні програми у виді послідовності операторів. Написанню послідовності машинних команд передувало складання операторної схеми, що відображає послідовність операторів і переходи між ними. Операторний підхід дозволив розробити перші програми для автоматизації складання програм – так звані складові програми.
Зі збільшенням розмірів програм стали виділяти їхні відособлені частини й оформляти їх як підпрограми. Частина таких підпрограм поєднувалася в бібліотеки, з яких підпрограми можна було включати в робочі програми і потім викликати з робочих програм. Це поклало початок процедурному програмуванню - велика програма представлявся сукупністю процедур-підпрограм. Одна з підпрограм являлася головною і з неї починалося виконання програми.
Процедурний підхід зажадав структурування майбутньої програми, поділу її на окремі процедури. При розробці окремої процедури про інші процедури було потрібно знати тільки їхнє призначення і спосіб виклику. З'явилася можливість переробляти окремі процедури, не торкаючись іншої частини програми, скорочуючи при цьому витрати праці і машинного часу на розробку і модернізацію програм.
Наступним кроком у поглибленні структурування програм стало так зване структурне програмування, при якому програма в цілому й окремих процедурах розглядалися як послідовності канонічних структур: лінійних ділянок, циклів і розгалужень. З метою підвищення структурності програми були висунуто вимоги до більшої незалежності підпрограм, підпрограми повинні зв'язуватися з їхніми програмами тільки шляхом передачі їм аргументів. Процедурне і структурне програмування торкнулися насамперед процесу опису алгоритму як послідовності кроків, що ведуть від вихідних даних до шуканого результату. Для вирішення спеціальних задач стали розроблятися мови програмування, орієнтовані на конкретний клас задач: на системи керування базами даних, імітаційне моделювання і т.д.
Модульне програмування – програмний продукт розглядається як сукупність взаємозв’язаних модулів.
Всі універсальні мови програмування, незважаючи на розходження в синтаксисі і використовуваних ключових словах, реалізують ті самі канонічні структури: оператори присвоювання, цикли і розгалуження. В усіх сучасних мовах присутні визначені (базові) типи даних (цілі і дійсні арифметичні типи, символьний і, можливо, рядковий тип), є можливість використання агрегатів даних, у тому числі масивів і структур (записів). Для арифметичних даних дозволені звичайні арифметичні операції, для агрегатів даних звичайно передбачена тільки операція присвоювання і можливість звертання до елементів агрегату. Разом з тим при розробці програми для рішення конкретної прикладної задачі бажана можливо велика концептуальна близькість тексту програми до опису задачі.