програми на залік

написання програм на залік

програми на залік

Написання програм — об’єктно чи структурно?

Пишучи програми на залік, ми часто мусимо порадити клієнтові, чи має програма бути написана об’єктно чи структурно. Звісно, найважливіше в цьому випадку — те, у який спосіб Ви вчилися програмувати на заняттях, для яких замовляється програма...
Тож насправді це Ви повинні сказати нам, яким має бути програма на залік, яку ми маємо для Вас написати, і оскільки це дуже важливо, радимо переконатися в цьому, адже помилкове рішення в цьому питанні може призвести до незадовільної оцінки за залік.
Якщо ж викладач залишає студентам вільні руки в цьому питанні, то, щиро кажучи, відповідь можна звести до одного слова — об’єктно. Але почнемо з початку, тобто з визначень:
Структурне програмування є розвитком концепції процедурного програмування, тобто це методологія написання програм, основою якої є ієрархічний поділ коду на модулі, які взаємодіють між собою через чітко визначені інтерфейси. Дані, процедури й функції безпосередньо не пов’язані між собою, а команди виконуються послідовно. Основою структурного програмування є умовні оператори та цикли, натомість будь-які стрибки (переходи), що є пережитком лінійного програмування, вважаються (і слушно) поганим тоном, адже псують читабельність вихідного коду та ускладнюють його аналіз.
Своєю чергою об’єктно-орієнтоване програмування — це методика написання комп’ютерних програм, що визначає програми за допомогою об’єктів, які поєднують дані та поведінку програми (визначену у вигляді процедур і функцій, які в об’єктно-орієнтованому програмуванні називаються методами). Програма подається як сума таких об’єктів, які взаємодіють між собою для виконання поставлених перед програмою завдань. Це дає змогу ефективно писати великі проєкти командами програмістів шляхом складання їх із взаємодіючих між собою об’єктів, що відповідають за окремі елементи програмного забезпечення.
На цьому все щодо об’єктивних визначень, а тепер час для (мабуть, зовсім не об’єктивних) думок: Отже, на мою думку. Попри те, що об’єктно-орієнтоване програмування накладає на програміста певний режим і обмеження, які часто відлякують молодих адептів програмування від його вивчення, витрата трохи часу на ознайомлення з принципами об’єктно-орієнтованого програмування несе з собою незаперечні переваги.

написання програм на залік

Які саме? — можна було б перелічувати довго, тож назву лише ті, що здаються мені найважливішими: по-перше, кожну добре написану об’єктно програму можна використовувати й надалі, переносячи визначені в ній класи до іншого застосунку. По-друге, легше локалізувати помилку, а також легше зрозуміти програму, написану самостійно деякий час тому. По-третє, значно простіше змінювати код програми — на відміну від структурного програмування, де часто, щоб виправити чи змінити невеличкий фрагмент програмного забезпечення, довелося б редагувати багато фрагментів вихідного коду, попередньо витрачаючи багато часу на те, щоб з’ясувати, що мали на увазі, пишучи саме так, а не інакше. (повірте мені, що навіть самостійно написані програми через кілька місяців, а тим більше років здаються нам зовсім чужими й часто також незрозумілими)
Надзвичайно важливими видаються можливості, що випливають з об’єктного підходу до даних і об’єктного написання програм для цілих команд програмістів — людей, які в реальному світі часто навіть не знайомі між собою, але разом створюють величезні застосунки, спілкуючись лише через описи інтерфейсів методів певного класу, без потреби вникати в те, що відбувається всередині. Ще однією перевагою об’єктно-орієнтованого програмування є те, що код є читабельним і зрозумілим: достатньо поглянути на файл визначень, і за мить ми знаємо, за що відповідає даний клас чи метод,
Інакше виглядає ситуація у випадку структурного програмування: передусім надзвичайно важко отримати читабельний код у великих застосунках; по-друге, раз написаний код не придатний до повторного використання, адже пристосування його до інших цілей найчастіше потребує великої кількості виправлень у багатьох різних місцях. Через це програма, написана структурно, зазвичай уже не стане в пригоді — програмістові зазвичай потрібно менше часу, щоб написати новий клас з нуля, ніж щоб нескінченно копирсатися в старому коді.
Попри ці очевидні факти у наших вишах значно частіше вчать структурного програмування, і від студентів очікують програм на залік, написаних саме так. Звісно, це не стосується інформатичних напрямів, де об’єктне програмування вже є стандартом, однак на напрямах, не пов’язаних безпосередньо з інформатикою, воно досі залишається рідкістю.
Завершуючи цю статтю, хотів би висловити надію, що ці кілька слів, які я написав, переконають Вас вивчити об’єктно-орієнтоване програмування. Я не маю ілюзій щодо того, що вичерпав тему — я торкнувся лише частини питань і описав лише невеликий фрагмент переваг об’єктно-орієнтованого програмування; їх набагато більше, і Ви переконаєтеся в цьому під час роботи з конкретними завданнями (особливо якщо доведеться працювати в групах).

Інші матеріали про написання комп’ютерних програм