- •1. За яких обставин виникають помилки часу виконання? Наведіть приклади
- •2. Яким чином виявляються та усуваються логічні помилки?
- •3. Переваги об’єктно-орієнтованого підходу до обробки виняткових ситуацій.
- •4. Яке призначення обробника виняткової ситуації? Типи підключення обробника
- •5. Які дії може виконувати обробник виняткової ситуації?
- •6. Призначення відлагодження програм та його зв’язок із тестуванням
- •7. Які помилки не виявляють інтерактивні засоби від лагодження?
- •8. Використання механізму стверджень у мові с#
- •9. Використання механізму стверджень у мові Java
- •10. Як застосовується ітератор для проходження по колекції?
- •11. Порівняйте застосування ітератора і циклу for-each для проходження по колекції.
- •12. Наведіть приклад реалізації інтерфейсу Comparable та використання реалізації у відсортованих колекціях
- •13. Як створюється і для чого використовується у каркасі колекцій компаратор?
- •14. Що розуміється під коректністю програмного забезпечення?
- •15. Як визначаються передумови у с# Code Contracts?
- •16. Як визначаються постумови у с# Code Contracts?
- •17. Які методи використовуються в посту мовах для перевірки значень, що повертаються, у с# Code Contracts.
- •18. Як визначаються інваріанти об’єктів у с# Code Contracts.
- •19. Які символи та правила можуть використовуватися в узгодженнях щодо вибору
- •20. Доцільність використання узгоджень щодо вибору позначень типів та об’єктів
- •21. Які узгодження використовуються для позначення простору імен, класів, методів, полів, властивостей, змінних у мові с#?
- •22. Які узгодження використовуються для позначення класів, методів, полів, змінних у мові
- •23. Які узгодження використовуються для позначення класів, методів, полів, змінних у мові с?
- •24. Які узгодження використовуються для позначення програмних об’єктів в угорській нотації?
7. Які помилки не виявляють інтерактивні засоби від лагодження?
Помилки, котрі можуть бути пропущені під час відладки інтерактивними засобами:
Проблемки з пам’яттю за рахунок змінення карти розподілу пам’яті у Release версії
Використання у коді неініціалізованих змінних (у режимі відладки вони мають одне, фіксоване значення, у Release версії – інше, часто випадкове)
Помилки синхронізації у багатопотоковому застосунку
Власні помилки компілятора – декотрі складні розрахунки можуть бути невірно оптимізовані компілятором
8. Використання механізму стверджень у мові с#
Ствердження у С#
Public static void Assert (bool condition) – перевіряє умову: якщо умова має значення невірно, виводить відповідне повідомлення
Public static void Assert (bool condition, string message) – виводить специфічне повідомлення
9. Використання механізму стверджень у мові Java
Ствердження (Assertions) – умова, що перевіряється під час виконання програми. Якщо ствердження вірно, то програма виконується, як і очікувалося, якщо невірно – у коді виникла помилка, програма перевирає своє виконання.
assert[логічний вираз]
assert[логічний вираз] : [вираз]
[логічний вираз] – описує припущення, яке має бути вірним
[вираз] – містить вираз, який перетворюється у рядок і виводиться у разі, якщо логічний вираз невірний.
Приклад у Java:
assert denominator !=0 : “denominator…”
10. Як застосовується ітератор для проходження по колекції?
Ітератор дозволяє проглядати уміст колекції послідовно, елемент за елементом. Позиції ітератора розташовані у колекції між елементами, тобто, якщо у колекції N елементів, то існує N+1 позицій ітератора.
List – ітератор може у обох напрямках рухатися.
11. Порівняйте застосування ітератора і циклу for-each для проходження по колекції.
For (int x:col) – перегляд елементів, для виведення, типу foreach
Ітератор дозволяє проглядати уміст колекції послідовно, елемент за елементом.
12. Наведіть приклад реалізації інтерфейсу Comparable та використання реалізації у відсортованих колекціях
Comparable визначає стандартний спосіб порівняння об’єкта одного й того ж класу – public int compareTo(T obj), що порівнює два об’єкти і повертає результат: нуль – значення еквівалентні; від’ємне значення – тей, що викликає менше; додатнє значення – навпаки; генерує виключення ClassCastException, якщо об’єкти, що порівнюються, несумісні.
Результат роботи compareTo() має бути договорено з результатом equals(): у кожному випадку, коли equals() повертає true, має повертати нуль.
Якщо клас реалізує інтерфейс Comparable у Java, то колекція об’єктів List чи Array може бути відсортована автоматично з використанням методів Collections.sort() Arrays.sort(). Об’єкти будуть відсортовані на основі природнього порядку, визначеного у методі CompareTo().
13. Як створюється і для чого використовується у каркасі колекцій компаратор?
Comparator – порядок об’єктів, створення компаратора; може бути переданий впорядкованій колекції при її створенні, і використовується для визначення порядку елементів у цій колекції. Метод compare() повертає нуль, якщо об’єкти еквівалентні; додатне значення – коли перший переданий параметр більше другого; від’ємне – у протилежному випадку.
