Модульне програмування 2

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

Введення
1. Теоретична частина
1.1 Модульне програмування
1.1.1 Процедури і функції
1.1.2 Модулі
1.1.3 Відкриті масиви та рядки
1.1.4 нетипізований параметри
1.2 Об'єктно-орієнтоване програмування
Висновок
Список літератури

Введення

На зорі розвитку програмування (в історичному сенсі це було зовсім недавно) комп'ютерна програма розглядалася як результат наукової творчості та мистецтва. Програмістів було зовсім небагато, а їх праця вважався схоже на чаклунство. В даний час ситуація змінилася: до програми підходять до результату складного технологічного процесу, а програмісти - це перш за все справжні професіонали своєї справи, майстерні, тобто кваліфіковані, майстри.
У курсовій роботі поставлено завдання розглянути в теоретичній частині розробку програмних засобів для вирішення економічних завдань, а саме розглянути модульне і об'єктно-орієнтоване програмування, розглянути функції та призначення кожного з типу програмування. У практичній частині поставлені такі завдання:
1. Побудувати таблиці за наведеними даними.
2. Виконати розрахунок відхилення фактичних показників від планових в абсолютній і відносній формі, підвести підсумки.
3. Результати представити у вигляді консолідованої таблиці.
4. Сформувати і заповнити форму зведеної відомості.
5. Результати представити в графічному вигляді.
Об'єктом вивчення є модульне і об'єктно-орієнтоване програмування.


1. Теоретична частина

1.1 Модульне програмування

Великі програми зазвичай розробляють і налагоджують по частинах. Доцільно при цьому, кожна така частина, звана підпрограмою, була оформлена так, щоб її можна було використовувати при вирішенні аналогічної підзадачі в тій же програмі чи навіть при вирішенні інших завдань. У Borland Pascal реалізовані два типи підпрограм: процедури і функції.

1.1.1 Процедури і функції

Процедури і функції являють собою відносно самостійні фрагменти програм, відповідним чином оформлені і обладнані ім'ям (програмні блоки). За правилами Borland Pascal програмні блоки - такі ж ресурси, як типи і змінні. Відповідно, вони також повинні бути описані перед використанням у розділі описів програмного блоку, який їх використовує (основної програми або викликає підпрограми). Кожен блок має таку ж структуру, як основна програма, тобто включає заголовок, розділ описів і розділ операторів, але закінчується не крапкою, а крапкою з комою.
Тема блоку визначає форму виклику програми. У розділі описів блоку оголошують внутрішні локальні ресурси блоку (змінні, типи, внутрішні підпрограми). Розділ операторів містить інструкції підпрограми в операторних дужках begin ... end.
Заголовки процедур і функцій описуються по-різному. На відміну від процедури функція завжди повертає в точку виклику скалярний значення, адреса або рядок. Тип повертається результату описується в заголовку функції.
Дані для розробки процедури і функції отримують з причини, що їх основної програми. Для розміщення робочих полів підпрограми можуть оголошувати нові типи і змінні у власному розділі описів. Результати ж вони зазвичай мають повертати отримала програмі або підпрограмі.
З основної програми дані можуть бути отримані:
· Неявно - з використанням глобальних констант і змінних;
· Явно - через параметри.
Неявна передача даних у підпрограми. Кожній підпрограмі доступні всі ресурси програмного блоку, в розділі описів якого ця підпрограма оголошена. Ресурси ж основної програми доступні в будь-якій підпрограмі. Вони отримали назву глобальних.
У свою чергу локальні ресурси, оголошені в розділі опису підпрограми, з програмного блоку, в розділі опису якого вона визначена, не доступні. У тому випадку, якщо в підпрограмі оголошується ресурс, ім'я якого збігається з ім'ям глобального ресурсу, відповідний глобальний ресурс в підпрограмі стає не доступним, «перекривається».
Передача даних через параметри. Список параметрів описується в заголовку підпрограми. Параметри, вказані в цьому списку, отримали назву формальних, так як для їх розміщення не відводиться пам'ять. При зверненні до підпрограми для кожного параметра має бути зазначено фактичне значення - літерал, константа або змінна того ж типу, що й формальний параметр. Невідповідність типів і кількості формальних і фактичних параметрів виявляється компілятором (або компонувальником, якщо виклик підпрограми відбувається з іншого модуля). Порушення порядку проходження фактичних параметрів, якщо це порушення не пов'язане з розбіжністю кількості параметрів або їх типів, призводить до порушення логіки роботи програми і часто може бути виявлено тільки при тестуванні програми.
У Borland Pascal параметри в підпрограму можуть передаватися трьома способами:
· Як значення - у підпрограму передаються копії значень параметрів, і ніякі зміни цих копій не повертаються в зухвалу програму;
· Як змінні - у програму передаються адреси фактичних параметрів, відповідно всі зміни цих параметрів в підпрограмі насправді відбуваються зі змінними, переданими в якості фактичних параметрів; такі параметри при описі позначаються службовим словом var; як фактичних значень параметрів - змінних не можна використовувати літерали ;
· Як змінюються змінні (іменовані константи) - в підпрограму, так само як і в попередньому випадку, передаються адреси фактичних параметрів, але при спробі змінити значення параметра компілятор видає повідомлення про помилку; такі параметри при описі позначаються службовим словом const.
Виклик процедур і функцій. І процедура, і функція, використовуючи параметри - змінні, можуть змінювати значення змінних основної програми. Але як зазначалося вище, функція відрізняється від процедури тим, що крім зміни значень параметрів-змінних завжди повертає в точку виклику скалярний значення, рядок або покажчик. Тому в тілі функції обов'язкова наявність спеціальної змінної з ім'ям функції, якої повинно присвоюватися значення. Саме це значення і буде повернута до місця виклику функції в якості його результату. Виклик функції, таким чином, можна здійснювати в складі виразів скрізь, де можливе використання виразів (в операторі присвоювання, в операторі виведення і т.д.), наприклад:
<Мінлива>: = <ім'я функції>; (<фактичні параметри>).
Процедура ж повинна викликатися окремим оператором, що складається з імені процедури і списку фактичних параметрів.
Виклик процедури і функції по-різному зображується на схемі алгоритму: виклик функції - в блоці «процес» або блоці виведення, а для виклику процедури використовується спеціальний блок «зумовлений процес». Схеми алгоритмів ж самих підпрограм в обох випадках оформлюються окремо, причому замість слова «початок» вказують ім'я підпрограми, а замість слова «кінець» - вказують слово «повернення» або «return».

1.1.2 Модулі

При розробці великих програм доцільно частину підпрограм і інших ресурсів, таких, як змінні, константи, описи типів, збирати разом і компілювати окремо від основної програми у вигляді бібліотек ресурсів або модулів.
Модуль - це автономно компільовані колекція програмних ресурсів, призначена для використання іншими модулями і програмами.
Всі ресурси модуля діляться на дві групи: зовнішні - призначені для використання іншими програмними одиницями, і внутрішні - робочі ресурси даного модуля.
Структура модуля виглядає наступним чином:
Unit <ім'я модуля>
Interface
<Інтерфейсна секція>
[Begin
<Секція ініціалізації>]
End.
Ім'я модуля повинно співпадати з ім'ям файлу, в якому він міститься. Результат компіляції модуля поміщається у файл з тим же ім'ям і розширенням. Tpu.
Примітка. Середа мови Borland Pascal передбачає три режими компіляції програми, що використовує модулі:
· Compile - Компілюється тільки основна програма, всі модулі повинні бути попередньо відкомпілювалися в файли <ім'я модуля>. Tpu і розміщені або в поточному каталозі, або в одному з каталогів, зазначених як джерела файлів. Tpu в настройках середовища;
· Make - модулі, для яких не виявлені файли. Tpu, компілюються з відповідних файлів. Pas, які повинні знаходитися в поточному каталозі або в каталогах, зазначених у налаштуваннях середовища в якості джерел вихідних файлів модулів;
· Build - всі раніше відкомпілювалися модулі. Tpu ігноруються і всі модулі компілюються з своїх вихідних файлів заново.
У процесі налагодження модулів доцільно використовувати режим Build, а при налагодженні програми - режим Compile
Інтерфейсна секція містить оголошення ресурсів (у тому числі заголовки підпрограм), до яких можливі звернення ззовні.
Секція реалізації містить опис підпрограм, оголошених в інтерфейсній секції, та опис внутрішніх ресурсів модуля (локальних змінних, типів, підпрограм). Звернення до цих ресурсів можливо тільки з підпрограм, описаних в тому ж модулі.
Секція ініціалізації містить оператори, які виконують такі дії, необхідні для нормальної роботи процедур модуля (наприклад, відкриваються файли, ініціалізували деякі змінні і т.п.). Оператори секції ініціалізації виконуються один раз (при підключенні модуля) до початку виконання основної програми. Ця секція в модулі може бути відсутнім.
Програма, яка використовує ресурси декількох модулів, повинна в області описів містити специфікацію використовуваних модулів:
Uses <ім'я модуля 1>, <ім'я модуля 2>,
У специфікації Uses необхідно вказувати тільки ті модулі, ресурси яких дана програмна одиниця (програма або модуль) використовує безпосередньо. Якщо модуль використовує інші модулі, то їх підключення вже описано в ньому. Секції ініціалізації під'єднуваних модулів виконуються в порядку їх підключення.
У вигляді модулів у Borland Pascal реалізовані бібліотеки підпрограм, використання яких істотно спрощує розробку програм.
Разом з системою програмування на Borland Pascal поставляються наступні бібліотеки:
* System - основна бібліотека - містить опис всіх стандартних процедур і функцій, таких, як математичні функції, функції перетворень, процедури і функції обробки рядка і т.п. Ресурси даної бібліотеки доступні будь-якій програмі без спеціальної вказівки.
* Crt - бібліотека керування екраном в текстовому режимі - містить опис змінних, констант і процедур і функцій, які забезпечують управління екраном, клавіатурою і динаміком.
* Graph - бібліотека керування екраном в графічному режимі - містить опис змінних, констант і процедур і функцій, які забезпечують управління екраном в графічному режимі.
* Dos - бібліотека організації взаємодії з операційною системою MS DOS - містить опис процедур і функцій, які забезпечують доступ до функцій операційної системи.
Поставляються разом з описаними модулі Turbo3, Printer, Graph3, Overlay застаріли і практично не використовуються.
При розробці власних бібліотек програмісти прагнуть створювати підпрограми, що мають широку область застосування, для чого використовують спеціальні засоби оголошення параметрів: відкриті масиви і рядки, нетипізовані параметри та параметри процедурного типу.

1.1.3 Відкриті масиви та рядки

За правилами Borland Pascal розмірність будь-якого масиву, переданого як параметр, повинна бути визначена. Отже, без використання спеціальних засобів застосування процедур і функцій, що мають параметри-масиви, істотно обмежується. Щоб зняти обмеження розмірності для параметрів - одночасних масивів, можна використовувати відкриті масиви.
Відкритий масив - це конструкція опису типу масиву без вказівки типу індексів.
Таке визначення можливо тільки при описі формальних параметрів підпрограми. Застосовуючи відкриті масиви, слід пам'ятати, що індекси параметрів, описаних як відкриті масиви, завжди починаються з нуля. Реальна кількість елементів фактичного параметра масиву можна визначити двома способами. По-перше - передати через додаткові параметри, по-друге - використовувати спеціальні функції.
High (<ідентифікатор масиву>) - для звичайного масиву повертає верхню межу індексу масиву, для відкритого - максимальне значення індексу.
Low (<ідентифікатор масиву>) - для звичайного масиву повертає нижню межу індексу масиву, для відкритого - нуль.

1.1.4 нетипізований параметри

У Borland Pascal допускається використовувати параметри, тип яких не вказаний. Такі параметри можуть передаватися в підпрограму тільки за посиланням, так як в цьому випадку в підпрограму реально передається адреса параметра.
Безумовно, для того щоб підпрограма могла виконувати будь-які дії з цим параметром, вона повинна якось призначити йому тип.
Для приведення нетипізовані параметри до певного типу можна використовувати:
Ø Автовизначення перетворення типів;
Ø Накладене опис змінної певного типу.
При автовизначенням перетворення типів тип вираження вказують явно, наприклад:
Procedure Proc (Var: а);
b: = Integer (a) + 10;
Для накладення змінної певного типу використовують опис з absolute, наприклад:
Procedure Proc (Var: а);
Var r: real absolute a;

При цьому змінна r виявляється в пам'яті розміщеної у тому ж місці, що і нетипізовані параметри а, і, відповідно, будь-яка зміна r призведе до зміни а.

1.2. Об'єктивно-орієнтоване програмування

Сучасна технологія розробки програмних продуктів, в тому числі і операційної системи Windows, базується на концепції об'єктно-орієнтованого програмування, в якій витримується єдиний підхід до даних і програм. В основі всього лежить поняття об'єкту, який об'єднує в собі як алгоритми, так і дані, що обробляються цими алгоритмами. У результаті спрощується не тільки розробка програм, але і технологія роботи користувача, з яким надається можливість при роботі в інтерактивному (діалоговому) режимі застосовувати наочні графічні інструменти і різні підказки.
Об'єктно-орієнтоване програмування стало надзвичайно популярним в останні роки. Воно визначає нове розуміння процесу обчислення, а також те, як можна структурувати інформацію всередині комп'ютера.
Формалізованої основою ООП є модель з низкою базових категорій:
· Абстрагування - процес виділення найбільш істотних характеристик деякого об'єкта, які відрізняють його особливості при подальшому аналізі та використанні. При цьому абстрагування концентрує увагу на зовнішніх особливостях об'єкта, дозволяючи в значній мірі ігнорувати деталі реалізації цих особливостей. Саме вибір ефективного набору абстракцій для конкретної предметної області і є головне завдання ООП.
· Інкапсуляція - процес поділу всіх, що становлять об'єкт елементів, на дві категорії, що визначають його внутрішню організацію та зовнішню поведінку. Інкапсуляція дозволяє ізолювати зовнішній інтерфейс об'єкту (доступний для взаємодії з іншими об'єктами) від внутрішньої реалізації об'єкта. При цьому інкапсуляція дозволяє зв'язати структури даних з функціями (методами), призначеними для маніпулювання цими даними, і приховати їх від зовнішнього середовища.
· Модульність - властивість системи, що визначає можливість її декомпозиції на ряд слабо пов'язаних між собою модулів. Спільно з інкапсуляцією модульність створює бар'єри між абстракціями.
· Ієрархія - розташування (упорядкування) абстракцій по ряду рівнів. У рамках складних систем основними видами ієрархічних структур є
· Структура класів (ієрархія по номенклатурі введених класів) і структура об'єктів (ієрархія по складу).
Абстрагування і інкапсуляція є взаємодоповнюючими операціями: абстрагування акцентує вплив на зовнішніх особливостях об'єкта, а інкапсуляція (чи, інакше, обмеження доступу) не дозволяють об'єктам-користувачам розрізняти внутрішній устрій об'єкта. Такий підхід дозволяє програмісту не знати приватних деталей реалізації програмної системи і програмувати, використовуючи об'єкти із закритою внутрішньою організацією. Інкапсуляція передбачає введення нового механізму структурування та оптимізації даних - класу.
Крім описаних основних обов'язкових категорій об'єктної моделі, в ряді випадків, важливе значення мають три додаткових категорій:
· Типізація - обмеження, що накладається на клас об'єктів і перешкоджає взаємозамінності різних класів (використання об'єктів одного класу замість іншого);
· Паралелізм - властивість об'єктів перебувати в активному або пасивному стані і, відповідно, можливість відрізняти один від одного активні і пасивні об'єкти;
· Стійкість - властивість об'єктів існувати в часі (поза залежністю від породив даний об'єкт процесу) та / або в просторі (при переміщенні об'єкта з області, в якій він був створений, в іншу область).
До концептуальним поняттям в ООП належать об'єкти та класи.
Об'єкт визначається як відчутна реальність (предмет або явище), що характеризується певною поведінкою. Об'єкт описується станом, поведінкою і індивідуальністю. Об'єкти зі схожою структурою і поведінкою входять до спільного для них клас. Стан об'єкта визначається переліком всіх можливих властивостей цього об'єкта і поточними значеннями кожного з цих властивостей. Поведінка об'єкта характеризується його впливом на інші об'єкти і зміною власного стану в результаті дій з боку інших об'єктів. У ООП операції, що виконуються над об'єктом, називають методами; вони є складовою частиною визначення класу. У випадку об'єктом може бути і константа, і змінна, і процедура, і процес.
Клас визначається як безліч об'єктів, що володіють внутрішніми властивостями, притаманними будь-якому об'єкту класу і проявляються в спільності структури та поведінки. При цьому специфікація (визначення) класу проводиться шляхом визначення його внутрішніх властивостей, що грають роль классообразующих ознак. Визначення класів і об'єктів є однією з найбільш складних завдань в об'єктно-орієнтованому проектуванні.
Важливе значення для класів мають властивості наслідування та поліморфізму.
Спадкування означає створення нових, похідних класів за допомогою використання даних і функцій від одного або кількох раніше визначених класів. Успадкування дозволяє розробляти складні класи, просуваючись від загального до конкретного.
Поліморфізм (многоформенность) означає можливість приналежності класу одночасно більш ніж одного типу. Однак при цьому передбачається, що в рамках різних типів ієрархічної структури клас має можливість кілька різним чином проявляти себе.
Об'єктно-орієнтована система в найбільшій мірі відображає можливість її подальшої еволюції. Успадкування та поліморфізм дозволяють створювати нові похідні класи на основі базових класів. При цьому нащадки успадковують характеристики батьківських класів і додають необхідні власні структури даних і методи. Подібний підхід, при якому наново описуються лише різницю і уточнення, дозволяє в значній мірі скоротити час і зусилля, потрібні на розробку нових програм.
Об'єктно-орієнтований підхід, як і інші концептуальні рішення в процесі розвитку технології програмування, з'явився відповіддю на пошук шляхів зниження вартості розробки ПЗ. Практика програмування останніх років показує, що вдале застосування механізмів ООП дозволяє побудувати безліч об'єктів різних класів, які багаторазово можуть бути використані без будь-якої доробки при виконанні багатьох проектів різної складності, що знижує витрати на їх реалізацію.
У цілому об'єктно-орієнтований підхід до розробки програм інтегрує в собі як методи структуризації управління, так і структуризації даних.
Об'єктно-орієнтовані мови програмування характеризуються наявністю механізму, що реалізує ставлення клас-підклас, пов'язаного з використанням можливості наслідування властивостей.
Як переваги ОПП відзначають:
· Підвищення рівня уніфікації розробки і можливість повторного використання не тільки програм, але і проектів, що веде до створення середовища розробки та переходу до складного створення ПЗ (перехід від безпосереднього програмування до проектування);
· Природність об'єктної моделі, орієнтованої на людське сприйняття світу, а не на комп'ютерну реалізацію;
· Зменшення ризику створення надмірно складних систем ПЗ, оскільки спочатку підхід передбачає еволюційний шлях розвитку системи в часі на базі вихідних, щодо нескладних підсистем.
До основних недоліків ООП відносять значні початкові витрати і деяке зниження продуктивності функціонування ПЗ. Ефект від застосування ООП починає позначатися після розробки декількох проектів і накопичення повторно використовуваних компонентів. При цьому слід мати на увазі і значні психологічні труднощі, пов'язані з переходом до ООП.
Фактично, основна відмінність між об'єктно-орієнтованим і «звичайним» програмуванням полягає в тому, що при звичайному програмуванні програмісти обмежені вбудованими абстракціями, в той час як при використанні об'єктно-орієнтованого програмування вони можуть визначати свої власні абстракції. Об'єктно-орієнтоване проектування - справа надзвичайно складна. Необхідний великий досвід і здоровий глузд, щоб вирішити, що ж заслуговує на те, щоб стати об'єктом. У цілому ООП використовує в якості основної конструкції не тільки абстрактний тип даних, воно є більш загальним в цілому і тягнеться до абстрагування зовнішніх пристроїв, моделей реального світу і т.д.
Слід зазначити, що інтегрований пакет програм MS Office також побудований на основі об'єктно-орієнтованого програмування, і його можна розглядати як сімейство класів і об'єктів.


Висновок

Великі програми зазвичай розробляють і налагоджують по частинах. Доцільно при цьому, кожна така частина, звана підпрограмою, була оформлена так, щоб її можна було використовувати при вирішенні аналогічної підзадачі в тій же програмі чи навіть при вирішенні інших завдань. У Borland Pascal реалізовані два типи підпрограм: процедури і функції.
Модуль - це автономно компільовані колекція програмних ресурсів, призначена для використання іншими модулями і програмами.
Всі ресурси модуля діляться на дві групи: зовнішні - призначені для використання іншими програмними одиницями, і внутрішні - робочі ресурси даного модуля.
Сучасна технологія розробки програмних продуктів, в тому числі і операційної системи Windows, базується на концепції об'єктно-орієнтованого програмування, в якій витримується єдиний підхід до даних і програм. В основі всього лежить поняття об'єкту, який об'єднує в собі як алгоритми, так і дані, що обробляються цими алгоритмами. У результаті спрощується не тільки розробка програм, але і технологія роботи користувача, з яким надається можливість при роботі в інтерактивному (діалоговому) режимі застосовувати наочні графічні інструменти і різні підказки.
Об'єктно-орієнтоване програмування стало надзвичайно популярним в останні роки. Воно визначає нове розуміння процесу обчислення, а також те, як можна структурувати інформацію всередині комп'ютера.

Список літератури
1. Бадд Тімоті Об'єктно-орієнтоване програмування в дії / [Пер. з англ. А Берднокова; Гол. ред. В. Усманов]. - СПб: Питер, 1997. - 460 с.: Іл.
2. Басс Льон Архітектура програмного забезпечення на практиці [пер. з англ.] / Л. Басс 2-е - вид. - СПб: Питер, 2006. - 574 с.
3. Боровцем Є.Г. Введення в об'єктно-орієнтоване програмування.: Учеб. посібник з курсу «Технологія програмування для студентів спеціальностей 2204» - «Програмне забезпечення обчислювальної техніки» / Держ. кім. Ріс. Федерації з вищої освіти, Алт. держ. техн. ун-т ім. І.І. Ползунова. - Барнаул: Изд-во АлтГТУ, 1996. - 79 с.
4. Бутаков С.В. Високорівневі методи інформатики та програмування. Учеб. посібник. : Міністерство освіти і науки Російської Федерації, Федеральне агентство з освіти, Алт. академія економіки і права - Барнаул: вид-во ААЕП, 2005. - 72с.
5. Іванова Г.С. Основи програмування [Учеб. для вузів] 2-е - вид. перераб. і доповнено. - М.: вид - во МГТУ ім. Н.Е. Баумана, 2002. - 415 с. мул.
6. Непейвода М.М. Стилі і методи програмування курс лекцій: навч. посібник: М.: 2005. - 316 с.: Іл.
7. Окулов С.М. Основи програмування. М.: Лабораторія базових значень 2002. - 424 с.
8. Пол Айра Об'єктно-орієнтоване програмування на С + + / Пер. з англ. Д. Ковальчука. - 2-е - вид. - М; СПб: БІНОМ; Невський діалект 1999. - 461 с.
9. Солодкий О.Г. Основи програмування: збірник задач; М-во освіти і науки Рос. Федерації з освіти, Алт. акад. економіки і права. - Барнаул: Вид. ААЕП, 2005. - 83 с.
10. Хореїв П.Б. Технології об'єктно-орієнтованого програмування; навч. посібник; - М.: Academia, 2004. - 447 с.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
49.3кб. | скачати


Схожі роботи:
Модульне програмування
Модульне програмування Turbo Pascal
Основні поняття математичного програмування Побудова моделі задачі лінійного програмування
Програмування мовою С з використанням об єктно орієнтованого програмування
Програмування мовою С з використанням обєктно-орієнтованого програмування
Програмування
Програмування в СІ
Програмування
Програмування інтерфейсу
© Усі права захищені
написати до нас