![]() |
![]() |
![]() |
![]() |
![]() |
Студенти часто запитують - "Сьогодні створено багато нових мов програмування,
чому ви пропонуєте починати вивчати програмування на Delphi (особливо ООП) та
ще на версії 7, коли існують (навіть у рамках
А тепер подивимося кількість підсистем (класів чи об'єктів) у нашому
"простому спортивному літачку Delphi7 Lite" -
Але важливо інше, на відміну від сучасних систем програмування (таких, як наприклад Pithon або Gо) Delphi забеспечує:
Ще одне важливе питання студентів - "Сьогодні найбільш популярними є програми написані для операційних систем Android та iOS, так чим нам допоможе Delphi версії 7, що створює програми лише для Windows (хай навіть останніх версій)?" Відповідь також проста:
Таким чином, мабуть ще зарано відносити Delphi до складу "історичніх музейних експонатів" ;) На цьому "літачку" ще можна добре політати :) Тому надаю вам SOURCE-тексти 213 проектів на Delphi, що включені до складу розділу "Лабораторний практикум". |
Що необхідно знати починаючи роботу з Delphi
Додаткові бібліотеки для програм Delphi
Вище вже зазначалося, якщо на вашому комп'ютері НЕ встановлено Delphi, то до папки з робочими файлами
прикладної програми необхідно додати деякі бібліотеки. В такому випадку, програма, що запущена,
видасть повідомлення про необхідну бібліотеку та завершиться. Типизацція даних в Delphi
Вище також зазначалося, що Delphi дуже суворо та детально відноситься до типізації даних.
Важливо підкреслити, що різноманітні операції набувають свого сенсу лише коли їм чітко відомі
об'єкти з якими їм належить працювати. Тому рекомендується в першу чергу ознайомитися з типами даних
в Delphi (23 - проекта в підрозділах: DYNARRAYs, ORDINAL, POINTERs, RECORDs, SETs). |
Лабораторні роботи з Delphi На цій сторінці лабораторні роботи представлені тематичними блоками у вигляді архівів 7zip SOURCE-текстів. Матеріал орієнтований початкові етапи освоєння системи Delphi (другий семестр першого року навчання). У деяких архівах також будуть збережені виконувані модулі. Як правило, це буде стосуватися підсумкових проектів у конкретному тематичному блоці. Оскільки матеріали ставляться до розширеного навчального процесу, всі SOURCE-тексти надмірно прокоментовані, тобто, основна сутність прикладів стає зрозумілою під час читання SOURCE-тексту. До речі, читання SOURCE-текстів є однією з найефективніших форм не лише навчання та самонавчання.
БЛОК №1. КОНСОЛЬНІ ПРОЕКТИ.
В рамках цього блоку представлені лабораторні роботи з номерами №1, №2, №3.
Основним завданням цього блоку є повторення основ мови PASCAL обсягом стандартної
шкільної програми, реалізоване з прикладу найпростіших алгоритмів. До таких
алгоритмів відносяться: пошук мінімуму і максимуму в масиві, обчислення функцій
рядами Маклорена, знаходження дійсних коренів рівняння методом дихотомії та інших.
Проекти складені з ілюстрацією консольних можливостей реалізації діалогу із
кінцевим користувачем. Кількість кроків у діалогах є хорошим обгрунтуванням
початку проектів типу Application.
БЛОК №2. НАЙПРОСТІШІ APPLICATION - ПРОЕКТИ. Основне завдання блоку, це ознайомлення з компонентами Delphi та основними прийомами програмування. Структурно блок вкючає:
БЛОК №3. ГРАФІКА У DELPHI.
Графіка Windows є основним інструментарієм для побудови графічних інтерфейсів на кінцевого
користувача. У Delphi графіка досить щільно пов'язана з програмним інтерфейсом
|
БЛОК №4. МАСИВИ, ЗАПИСИ, ПОКАЗЧИКІ ТА ФАЙЛИ.
Динамічні структури є основним видом представлення даних у сучасному програмуванні. У нашому
лабораторному практикумі ми розглянемо (лабораторні роботи №12 - №14) відповідно основні
прийоми роботи з динамічними масивами, записами, з покажчиками різних видів, а також основні
прийоми роботи з текстовими та бінарними файлами.
БЛОК №5. ВСТУП У КЛАСИ. Розробка своїх класів, це важлива складова технології програмування. Основною властивістю будь-якої технології є можливість створювати уніфіковані елементи на базі яких здійснюються варіантне складання (виготовлення) кінцевого продукту. Класи надають усі можливості для реалізації такого підходу. У рамках цього блоку послідовно розглядаються основні можливості побудови класів:
БЛОК №6. ВСТУП В МЕТАКЛАСИ І ПОТОКИ. Метакласи, це особливий клас інструментів, який дозволяє працювати з типами, як ми раніше працювали з об'єктами або даними звичайних типів. У певному сенсі такі можливості ставляться вже до системного програмування. Однак прикладному програмісту вони виявляються дуже корисними при роботі з компонентами, які створюються в RunTime і можуть ефективно використовуватися в багатопотокових додатках. До складу цього блоку входять:
|
Роботи студентів, що представлені у цьому розділі, виконувались, як правило, у рамках дипломних проектів. Основною метою цих робіт було дослідження студентами SOURCE-текстів готових програм та внесення до них доповнень або налаштувань відповідно до поставлених завдань. Враховуючи, що профіль підготовки студентів кафедрою електротехніки та світлотехніки досить далекий від програмування, завдання на доповнення чи налаштування були дуже скромними. Незважаючи на це деякі студенти виконували досить цікаві розширення або модифікації наданих їм програм. За профілем світлотехніки основними завданнями були завдання з обробки зображень. По профілю електротехніки ставилися завдання з розрахунку електричних ланцюгів чи спектрального аналізу електричних сигналів. Нижче наведено теми робіт та образи екранів програм, які досліджувалися та доопрацьовувалися студентами. 2009-2013 роки
2013-2014 роки
|
Стартові програми Як згадувалося, роботи студентів використовували готові (стартові) програми. Усі стартові програми представлені SOURCE-текстами (папки SOURCE) та готовими до виконання файлами (папки READY) відповідно в складі кожної програми. Якщо на вашому комп'ютері не встановлено Delphi, то додайте в паки READY додаткові бібліотеки (rtl70.bpl, vcl70.bp, vcljpg70.bpl, GDIPLUS.DLL). Посилання на ці бібліотеки наведено в розділі «Анотація» на цій сторінці.
|
Роботи студентів, що представлені у цьому розділі, виконувались, як правило, у рамках дипломних проектів. Основною метою цих робіт було дослідження студентами SOURCE-текстів готових програм та внесення до них доповнень або налаштувань відповідно до поставлених завдань. Враховуючи, що профіль підготовки студентів кафедрою аерокосмічних систем управління досить далекий від професійного програмування, зауважимо що окремі студенти виконували досить цікаві розширення або модифікації наданих їм програм. Нижче наведено теми робіт та образи екранів програм, які досліджувалися та доопрацьовувалися студентами. 2017 рік.
2018 рік.
2020 -2021 роки.
|
Для студентів, які опановують управління сучасними технічними об'єктами (особливо об'єктами, розподіленими у просторі), важливо мати знання з архітектури розподілених комп'ютерних мереж та систем. До оптимальних архітектурних рішень для керування технічніми об'єктами можна віднести ізольовані локальні комп'ютерні мережі (тобто, мережі без виходу інтернет) і клієнт – серверне програмне забезпечення. У такій архітектурі ізоляція мережи значно знижує ризики зовнішнього втручання в систему, сервери виступають у ролі інформаційно-вимірювальних та керуючих підсистем, а клієнти реалізують задачі відображення інформації для персоналу та управління персоналом як підсистемами, так і системою загалом. Стартові системи Client-Server Як згадувалося, роботи студентів використовували готові (стартові) програми. Усі стартові програми представлені SOURCE-текстами (папки SOURCE) та готовими до виконання файлами (папки READY) відповідно в складі кожної програми. Якщо на вашому комп'ютері не встановлено Delphi, то додайте в паки READY кліенту та серверу додаткові бібліотеки (rtl70.bpl, vcl70.bp, vcljpg70.bpl, qtintf70.dll). Посилання на ці бібліотеки наведено в розділі «Анотація» на цій сторінці.
Утіліти та індикатори які не увійшли до проекту
|
Майже всі програми, представлені на цій сторінці, розроблялися мною для навчального процесу. Деякі з них, наприклад програми обробки зображень або клієнт-серверна група згодом набули самостійного значення. Однак кожен програміст, крім програм для зовнішнього світу, пише щось і для себе. У цьому розділі представлені невеликі програми, розроблені мною для полегшення своєї повсякденної діяльності та діяльності інших викладачів. Всі програми цього розділу представлені в архівах SOURCE-текстами (папки SOURCE) та файлами .EXE (папки READY). До папок READY додано всі необхідні бібліотеки.
MiniCalc При підготовці різних методичних матеріалів з покроковою ілюстрацією розрахунків
виявилося, що електронні таблиці або традиційні калькулятори недостатньо зручні, оскільки під час
виконання операцій їх доводиться документувати в іншому додатку та вручну. Калькулятор,
наведений нижче, веде автоматичне документування виконуваних операцій у вбудованому блокноті.
Більше того, по ходу виконання ці операції можна додатково коментувати, а результати їх
виконання копіювати у вхідні регістри калькулятора.
Calendar У Національному авіаційному університеті розклад занять для студентів циклічно
повторюється кожні два тижні. При цьому за тижнями закріплюються номери перший та другий. Зрозуміло,
що питання – «який сьогодні тиждень?» є досить популярним. Крім того, щороку доводиться підбирати
зручний календарик і вручну проставляти номери цих тижнів. Ну якщо цю задачу автоматизувати,
то виявилося корисним доповнити її нотатками, які можна прикріплювати і редагувати для будь-якого
дня. |
DocCounter Під час підготовки різних видів звітів часто необхідно вказати кількість файлів
певного типу, наприклад, кількості розроблених моделей, проектів або графічної інформації. Ручний
підрахунок цієї інформації, як правило, є досить незручним. У цьому сенсі, автоматичний
підрахунок файлів із заданим розширенням у піддереві обраної директорії позбавляє не тільки
рутинної роботи, але усуває також помилки підрахунку.
Tickets Особливий головний біль викладачеві завдає складання питань для квитків на іспити
та інші залікові роботи. Це обумовлено не тільки відстеженням розподілу переліку питань дисципліни
по квитках. Програма, яка автоматизує цей процес, в один клік дозволяє згенерувати комплекти
квитків, що не повторюються, складені з одного, двох або трьох тематичних переліків питань
дисципліни. У своїй практиці я закріплював номер квитка за номером студента у списку групи та
за хвилину до початку іспиту, виконавши генерацію квитків, розсилав список квитків локальною
мережею або мітингом кожному студенту.
Presentation Програма для конструювання та демонстрації презентацій та циклічного шоу слайдів. Ви
запитаєте - "Навіщо, якщо є PowerPoint?" Відповідь мені підказала ситуація, коли для
демонстрації була доступна лише більш рання версія PowerPoint, а виконання зворотної
сумісності розвалило презентацію в брязкіт. Переживши дуже незручну ситуацію, я твердо вирішив,
що тепер для презентацій використовуватиму тільки Portable – інструментарій, а для
надійності ще й власний :). |