- •1. Аналіз класів пам’яті змінних
- •2. Аналіз класів пам’яті функцій.
- •3. Концепція типу у мові програмування. Аналіз відомих методів типізації
- •4. Вільні масиви в мові програмування Сі, їх призначення та відмінність від звичайних. Навести приклади опису та застосування.
- •7, 26. Правила формування атрибутів доступу до членів похідного класу в залежності від атрибуту доступу базового класу та заданого атрибуту у списку спадкування.
- •8, 27. Вказівники та динамічна пам’ять. Аналіз методів виділення та звільнення динамічної пам’яті
- •9, 28. Аналіз методів передачі параметрів до підпрограм через локальні та нелокальні середовища
- •10. Зв’язний список та наскрізний прохід по зв’язному списку. Операції над зв’язними списками. Додавання та вилучення елементів у зв’язному списку. Навести приклади.
- •11. Структури даних. Типові статичні та динамічні структури даних. Доступ до даних.
- •12. Аналіз методів подання графів у вигляді динамічних та статичних структур даних. Матриця суміжності
- •13. Парадигма об’єктно-орієнтованого програмування та основні його принципи, їх зміст.
- •14. Порівняльний аналіз статичних та віртуальних методів в об’єктно-орієнтованому програмуванні, їх особливості. Призначення та правила формування конструкторів та деструкторів.
- •15. Правила віртуалізації методів в ооп.
- •16. Поняття технології створення програмного забезпечення та основні технологічні етапи. Приклади технологій.
- •17. Взаємозв’язок імен масивів та вказівників в мові програмування Сі. Операції над вказівниками. Приклади для одно- та двомірних масивів.
- •18. Контейнерні класи та їх призначення
- •19, 29. Вкладені класи та їх призначення.
- •20. Локальні класи та їх призначення
- •23. Абстрактні типи даних, правила і засоби їх формування.
- •30. Математичні моделі біполярного транзистора програми Spice
- •31. Алгоритм розрахунку перехідної характеристики програми Spice
- •32. Алгоритм розрахунку режиму за постійним струмом програми Spice
- •34. Поняття об’єкту в мові vhdl
- •35. Поняття сигналу в мові vhdl. Драйвер сигналу
- •36. Модель дискретного часу в мові vhdl.
- •37. Модель польового транзистора програми Spice
- •38. Архітектурне тіло та об’єкт в мові vhdl
- •39. Призначення та можливості програми spice
- •40. Оператор процесу в мові vhdl
- •41. Створення структурного опису цифрової системи мовою vhdl
- •42. Змінні та сигнали в мові vhdl
- •43. Присвоювання сигналу в мові vhdl
- •44. Планування транзакцій та драйвер сигналу в мові vhdl
- •45. Розрахунок амплітудно-частотної характеристики в програмі Spice.
- •46. Послідовні та паралельні оператори мови vhdl
- •47. Створення примірників компонентів та опис топології цифрового пристрою мовою vhdl
- •48.Опис рівня регістрової передачі мовою vhdl
- •49. Вхідна мова програми Spice
- •50. Модель Еберса-Мола біполярного транзистора
- •51. Модель Гумеля-Пуна біполярного транзистора
- •52. Інерційна та транспортна затримки в мові vhdl
- •53. Принципи роботи системного інтерфейсу isa (8 біт).
- •54. Стандарти систем автоматизації, побудованих на основі системних інтерфейсів.
- •55. Інтерфейс hs-488 ( швидкісний канал спільного користування).
- •57, 66, 70, 71.Канал спільного користування. Структура магістралі. Робота шини. Реалізація інтерфейсу.
- •58, 73. Приладовий інтерфейс (канал загального користування). Адресування приладів на магістралі. Алгоритми обміну інформацією в магістралі.
- •59. Приладовий інтерфейс (канал загального користування). Пошук джерела сигналу “запит на обслуговування”. Послідовне опитування.
- •60. Приладовий інтерфейс (канал загального користування). Пошук джерела сигналу “запит на обслуговування”. Паралельне опитування
- •64. Основні принципи перетворення сигналів. Дискретизація сигналів. Цифро-аналогові перетворювачі.
- •67, 72. Основні принципи перетворення сигналів. Дискретизація сигналів. Цифро-аналогові перетворювачі.
- •65, 68, 69. Аналогово-цифрове перетворення. Принципи роботи. Реалізація інтерфейсу з ibm pc. Реалізація систем збору інформації
15. Правила віртуалізації методів в ооп.
Віртуальний метод (віртуальна функція) - в об'єктноорієнтованому програмуванні метод (функція) класу, який може бути перевизначений в класах-спадкоємцях так, що конкретна реалізація методу для виклику буде визначатися під час виконання. Таким чином, необов'язково знати точний тип об'єкта для роботи з ним черезвіртуальні методи: достатньо лише знати, що об'єкт належить класу або спадкоємцю класу, в якому метод оголошений.
Віртуальні методи - один зи найважливіших прийомів реалізації поліморфізму. Вонидозволяють створювати загальний код, який може працювати як з об'єктами базового класу, так і з об'єктами будь-якого його класу-спадкоємця. При цьому базовий клас визначає спосіб роботи з об'єктами і будь-які його спадкоємці можуть надавати конкретну реалізацію цього способу.
Базовий клас може не надавати реалізації віртуального методу, а лише декларувати його існування. Такі методи без реалізації називаються абстрактними. Для кожного класу, що має хоча б один віртуальний метод, створюється таблиця віртуальних методів. Кожен об'єкт зберігає вказівник на таблицю свого класу. Для виклику віртуального методу використовується такий механізм: з об'єкта береться вказівник на відповідну таблицю віртуальних методів, а з неї, з фіксованим зсувом, - вказівник на реалізацію методу, використовуваного для даного класу. При використанні множинного спадкування або інтерфейсів ситуація дещо ускладнюється за рахунок того, що таблиця віртуальних методів стає нелінійною. Приклад C++:
class Ancestor
{
public:
virtual void function1 () { cout << "Ancestor::function1()" << endl; }
void function2 () { cout << "Ancestor::function2()" << endl; }
};
class Descendant : public Ancestor
{
public:
virtual void function1 () { cout << "Descendant::function1()" << endl; }
void function2 () { cout << "Descendant::function2()" << endl; }
};
Descendant* pointer = new Descendant ();
Ancestor* pointer_copy = pointer;
pointer->function1 ();
pointer->function2 ();
pointer_copy->function1 ();
pointer_copy->function2 ();
Буде виведено:
Descendant::function1()
Descendant::function2()
Descendant::function1()
Ancestor::function2()
16. Поняття технології створення програмного забезпечення та основні технологічні етапи. Приклади технологій.
Технологія програмування – сукупність узагальнених і систематизованих знань про оптимальні способи проведення процесу програмування , що забезпечує у певних умовах одержання програмної продукції із заданими властивостями. Технологія програмування у загальному випадку залежить від подальшого використання створених застосувань. Для систем АНД можна виділити такі етапи створення ПЗ:
розробка, узгодження та затвердження ТЗ на створюваний програмний комплекс;
створення детальних специфікацій програмного комплексу з визначенням структури даних, складу модулів, їх інтерфейсні частини, алгоритмів реалізації, а також мови реалізації проекту, версії;
обґрунтування необхідної технології розробки;
написання програмного комплексу;
визначення кількості та складу комплекту тестів для створюваного комплексу та його написання. У загальному випадку для складної системи обсяг тестів може перевищувати обсяг програмного комплексу як такого;
налагоджування та тестування ПЗ;
створення необхідної програмної документації;
верифікація ПЗ – здійснення перевірки ПЗ на кожному етапі проектування системи АНД на предмет виконання вимог, сформульованих на попередньому етапі;
атестація та валідація ПЗ – здійснення тестування та оцінки інтегрованої системи АНД (апаратного та програмного забезпечення) на предмет відповідності функціональним вимогам, а також вимогам до інтерфейсу та продуктивності;
проведення попередніх випробувань створеного програмного комплексу;
проведення міжвідомчою комісією його приймальних випробувань;
створення та затвердження технічних умов на програмний проект;
сертифікація створеного ПЗ.
Деякі етапи можуть бути відсутні, або навпаки – введені додаткові.
Приклади технологій:
модульне програмування – полягає у декомпозиції задачі на сукупність модулів. Модуль є окремою функціонально завершеною програмною одиницею.
структурне програмування – полягає у фіксації припустимих керуючих структур, за допомогою яких записується будь-який алгоритм на рівні проектування. Найбільш розповсюджені структури: лінійна (композиція операторів), вибору та циклічна. Дозволяється необмежене та рекурсивне вкладення структур.
спадне програмування – вихідний алгоритм записується у вигляді ієрархічної схеми, елементи якої описуються природною мовою. Опис моделюється або інтерпретується командами нижчого рівня аж до операторів мови програмування.
багаторівневе структурне програмування поєднує спадне і структурне програмування.
швидке створення застосувань (RAD) – характерний ітеративний цикл,завдяки якому програмісти за мірою набування застосуванням певної форми запитуються запитують і реалізують у програмному продукті погоджені із замовником вимоги.