- •Основні поняття Асемблера, принципи написання програм на Асемблері, їхні переваги та недоліки.
- •4. Команди цілочисельної арифметики Intel-сумісного мп. Арифметичні команди
- •Типи даних блоків cpu I fpu Intel-сумісного мп.
- •Вказівник
- •Команди умовних переходів, регістр прапорців та команди циклів.
- •Обробка даних в арифметиці з плаваючою комою (робота копроцесора fpu)
- •Заповнити таблицю за результатами роботи програми DemoFpu.
- •9. Основні технології програмування.
- •10.Сутність технології ооп, її переваги та недоліки. Ідеї ооп.
- •Принципи побудови об’єктної моделі.
- •Показники якості програмного забезпечення – внутрішні і зовнішні.
- •13. Сучасні об’єктно-орієнтовані мови програмування та їхні короткі характеристики.
- •14. Поняття класу. Відмінності класу від об’єкту. Секції класу.
- •15. Що таку інкапсулювання?
- •Синтаксис оголошення класу в Delphi.
- •17. Напишіть приклад опису простого класу в Delphi.
- •18. Методи класів Delphi та їхні модифікатори.
- •19*. Структура проекту в Delphi та його складові частини. Методика створення проекту.
- •19. Структура проекту в Delphi та його складові частини. Методика створення проекту.
- •20. Конструктори та деструктори. Їхнє призначення та правила використання.
- •21. Наведіть приклади використання конструкторів.
- •22. Поясніть призначення кожного із специфікаторів рівня доступу у Delphi.
- •23. Властивості, їхнє призначення, правила використання та синтаксис оголошення.
- •24. Успадкування. Його призначення, види та правила використання.
- •25.Метод класу, їхнє призначення та правила використання.
- •26.Віртуальні та динамічні методи, їхнє призначення та використання
- •27.Абстрактні методи.
- •28.Що таке поліморфізм. Види поліморфізму.
- •29.Ієрархія стандартних класів Delphi
- •30.Напишіть програму Sphere!
- •31. Повідомлення в Delphi.
- •33. Розкладення періодичних функцій в ряд Фур’є (теорія)
- •34. Опишіть методику програмування та складові частини проекту “Ряд Фур’є”
- •35.Виключні ситуації та їхня обробка в Delphi.
- •Опишіть етапи створення та тестування власних компонент у Delphi.
- •Gdi та принципи побудови графічних зображень у Delphi.
- •OpenGl – призначення, основні поняття та правила використання.
- •Поясніть принципи динамічного створення елементів інтерфейсу Delphi.
- •Динамічні масиви, синтаксис оголошення та правила використання.
33. Розкладення періодичних функцій в ряд Фур’є (теорія)
У
багатьох розділах фізики досліджують
коливні періодичні процеси, що описані
функцією
,
яка визначена для всіх дійсних значень
аргументуt
і має властивість
,де
– період коливань.
Перетворення
Фур’є здійснює перехід від
до функції іншого аргументу
,
де
.
Якщо аргументом є час, то
– лінійна частота. Перехід
називають прямим перетворенням Фур’є,
а
– зворотним перетворенням. Якщо функцію
задано у формі таблиці, наприклад,
отримано з експерименту, то використовують
дискретне
перетворення Фур’є.
Ряд
Фур’є дає змогу представити періодичний
процес
сумою гармонічних коливань, частоти
яких є кратні основній частоті
де
- кругова частота
Для визначення коефіцієнтів використаємо математичні перетворення і отримаємо:
k=1,2,3…
Ряд Фур’є можна записати по-іншому:
Набори
величин
залежать від
.
Їх називають відповідно, амплітудним
і фазовим спектром
функції
.
Графіки залежностей
від
є дискретними.
Примітки.1)
Якщо значення періоду
зростає то частота
спадає і при
дискреткретний спектр стає неперервним
і ряд Фур’є
переходить у інтеграл Фур’є.
2)Для парних функцій ряд містить тільки косинусні гармоніки, для немарних – тільки синусні.
34. Опишіть методику програмування та складові частини проекту “Ряд Фур’є”
Оскільки
у проекті потрібно обчислювати інтеграли,
скористаємось методом правих
прямокутників.
Позначимо через
крок дискретизації ф-ії на періоді TP.
Дискретизацію виконаємо шляхом
табулювання заданої функції, ввівши
проміжок al..bl,
точнітьEpsта
кількість точок графіку Ne.
Тоді
в масив
будуть записані значення аргументу
,
а в масив
- дискретні значення функції
.
Згідно методу правих прямокутників:
Частинна
сума
членів ряду (гармонік) набуде вигляду:
Для
оптимізації обчислень в алгоритмі
введено змінну КОМ
дійсного типу, у якій при обчисленні
та
поза цикл винесено значенняКОМ=
а при обчисленні
змінній КОМ
присвоюється
,
де
.
Результатом
роботи алгоритму є обчислення та
виведення на дисплей коефіцієнтів
,
амплітудного спектра
і
формування
значень масиву
,
які обчислено відповідно до ф-ли
=…
для точок
.
Алгоритм виконання лаб. роботи:
Отримати і запрограмувати досліджувану ф-ію як Pascal-функцію.
Запрограмувати Pascal-процедуру обчислення ряду Фур’є, вхідними параметрами є масиви
і число
,
а вихідним параметром
.Для різних значень з діапазону [3..20] і
з діапазону [100..600] побудувати графіки
залежностей
та
.Пояснити отримані результати.
Побудувати графік залежності
від
.
35.Виключні ситуації та їхня обробка в Delphi.
Виключення – це ситуація в програмі, яка вимагає спеціальної обробки. Наприклад ділення на 0. При виникнення такої ситуації в Delphi створює екземпляр деякого класу залежно від характеру помилки, що відбулась. Всі такі класи є спадкоємцями класу Exception, який визначено в модулі SysUtiles, що дозволяє Delphi їх розпізнавати. Механізм обробки виключень полягав в достроковому перериванні підпрограми або методу об’єкту в якому відбулась помилка, пошук обробника цього виключення. Якщо обробника не знайдено, то управління передається підпрограмі, що викликала підпрограму з винятковою ситуацією.
В Delphi визначено декілька ключових слів, які використовуються у фрагментах програми для обробки виключних ситуацій: try… except, raise, try… finally, at, on-do-else.
Блок обробки try… except намагається виконати заданий фрагмент програми, а у разі появи виключення – передає управління спец. обробни-кові, розташованому в секції except.
Try <фрагмент програми>
Except
On <клас виключення> do <обробник виключення>
Else <Обробник за умови>; end ;
Потенційно небезпечний фрагмент програми який може викликати переривання ставиться між ключовими словами try… except, якщо цей фрагмент виконався безпомилково, то решта конструкції задіяна не буде. Якщо в цьому фрагменті виникла виняткова ситуація, то система аналізує якого класу ця ситуація є. Якщо жоден з класів не підходить тоді виконується секція else. Якщо розділ else не використано і при цьому не знайдено обробник виключення, то виключення передається у підпрограму, що викликала дану і так далі відповідно до механізму.
Блок обробки Try…Except використовують у ситуаціях коли відомо, як саме потрібно реагувати на помилку, що відбулась, навіть якщо програма не намагалась встановити її тип.
Для генерування власного виключення використовують ключове слово raise.
Raise <екземпляр класу виключення>;
Коли реакція програми на помилку не так важлива, як коректне завершення фрагмента програми, що викликав цю помилку. Такі ситуації зазвичай пов’язані з необхідністю повертати ОС ресурси, виділені помилковому фрагменту програми. При чому повернення ресурсів повинне відбутися як у разі успішного так і у разі помилкового виконання фрагмента програми. Для реалізації такої поведінки програми використовують блок обробки try… finally.
Try <фрагмент програми1>
Finally < фрагмент програми2>
end ;
