Читайте также:
|
|
Матеріали лекцій
з дисципліни «Програмування»
для студентів ІІ курсу спеціальності «Прикладна математика»
Модуль 1
Програмна технологія Microsoft.Net. Класи, ієрархії класів та узагальнення.
Ужгород-2012
Програма модуля
№ | Тема | Кількість годин |
Програмна технологія Microsoft.Net Вступ.Загальна характеристика платформи.Net Framework. Єдине середовище виконання CLR. Єдина система типів CTS. Бібліотека базових типів BCL. Розбір найпростішої програми на мові С#. Загальна структура програми на мові C#/ Створення.NET-додатків з використанням csc.exe. Створення.NET-додатків на мові C# з використанням IDE Visual С# 2010 Express. | ||
Класи в C# Вступ. Синтаксис опису класу. Поля класу (статичні поля, константи, поля доступні тільки для читання). Методи класу (статичні методи, передача параметрів типів-значень та посилальних типів, методи зі змінною кількістю параметрів, рекурсивні методи, перевантаження методів). Властивості та індексатори. Конструктори (створення та ініціалізація об’єктів). Деструктор. Перевантаження операцій (перевантаження унарних та бінарних операцій, операції приведення до інших типів). Частинні випадки класу (структура, перелік). Структура «Раціональне число». | ||
Основні засоби розробки класів у C# Вступ. Успадкування (базова та власна частина похідного класу, доступ до базової частини похідного класу, успадкування та конструктори, заборона успадкування). Поліморфне успадкування (простий та складний поліморфізм). Агрегація та композиція. Абстрактні класи. Інтерфейси (визначення, неявна та явна реалізація, доступ до функціональних можливостей, приклад реалізації підтримки стандартного інтерфейсу бібліотек середовища.NET). | ||
Узагальнення Поняття узагальнених класів. Обмеження (constraints) для параметрів типів. Узагальнені методи. Узагальнені інтерфейси. Недолік обмеження операцій. |
Тема 1
Програмна технологія Microsoft.Net.
Вступ
На початковому етапі розвитку комп’ютерної техніки та програмування в центрі уваги були обчислювальні задачі. При цьому центральним поняттям було поняття алгоритму – інструкція на виконання чіткої послідовності дій, яка перетворює вхідні дані у результат. Програма була засобом реалізації деякого алгоритму. Поступово обчислювальні задачі ставали все складнішими. Це призвело до зміни підходів у програмуванні. Програми доводилося розділяти на усе більш дрібні фрагменти, які вирішували конкретні підзадачі. Основою для цього стала процедурна (функціональна) декомпозиція. Програма, таким чином, перетворилася в сукупність процедур, кожна з яких є скінченою послідовністю дій, спрямованих на розв’язок окремої підзадачі. Окремо виділялася головна процедура, що визначає процес розв’язку основної задачі шляхом виклику в певному порядку окремих процедур. Такий підхід у методології створення програм назвали структурним програмуванням. Одна з основних особливостей такої методології полягала в тому, що з’явилася можливість створювати модулі та бібліотеки підпрограм (процедур), які можна було б використовувати повторно в різних проектах або в рамках одного проекту. Період найбільшої популярності ідей структурного програмування припав на кінець 1970-х – початок 1980-х років.
У 1980-і роки, коли масове поширення отримали персональні комп’ютери, обчислювальні й розрахунково-алгоритмічні задачі стали займати другорядне місце. Комп’ютер перестав сприйматися в якості простого обчислювача, він перетворився у засіб розв’язання різних прикладних задач обробки та маніпулювання даними. На перший план вийшли завдання організації простої та зручної людино-машинної взаємодії, розробка програм зі зручним графічним інтерфейсом, створення автоматизованих систем керування та ін. При розв’язанні цих задач принципи структурного програмування стали неефективними, оскільки в процесі розробки таких додатків часто могли змінюватися функціональні вимоги, що ускладнювало процес створення програмного забезпечення. Також збільшувалися розміри програм, що вимагало залучення великої кількості програмістів і додаткових ресурсів для організації їх погодженої роботи. Саме в цей час ключовим при розробці програм став об’єктно-орієнтований підхід (ООП), який заснований на використанні в програмах набору моделей об’єктів, що описують предметну область розв’язуваної задачі (такі моделі називають об’єктними, або об’єктно-інформаційними). Згідно з об’єктно-орієнтованим підходом будь-яка програма є набором взаємодіючих одного з одним об’єктів, які мають стан і поведінку.
У теорії програмування ООП визначається як технологія створення складного програмного забезпечення, яка заснована на представленні програми у вигляді сукупності об’єктів, кожен з яких є екземпляром певного типу (класу), а класи утворюють ієрархію із успадкуванням властивостей.
Процес представлення предметної області задачі у вигляді сукупності функціональних елементів (об’єктів), що обмінюються у процесі розв’язання задачі вхідними впливами (повідомленнями), називається об’єктною декомпозицією.
Об’єктна декомпозиція може застосовуватися багаторазово, або бути багаторівневою. Це означає, що кожен об’єкт може так само розглядатися як система, яка складається з об’єктів, які взаємодіють один з одним. При багаторівневій декомпозиції на кожному рівні ми одержуємо об’єкти з більш простою поведінкою, що дозволяє розробляти системи підвищеної складності по частинах. Взаємодія об’єктів здійснюється шляхом передачі повідомлень: кожен об’єкт, отримавши деякий вхідний вплив у процесі розв’язання задачі, виконує заздалегідь визначені дії (наприклад, може виконати деякі обчислення, або намалювати графік та у свою чергу впливати на інші об’єкти). Отже, процесом розв’язання задачі керує послідовність повідомлень. Передаючи ці повідомлення від об’єкта до об’єкта, система виконує необхідні дії.
Кожен виділений у результаті об’єктної декомпозиції об’єкт предметної області відповідає за виконання деяких дій, що залежать від отриманих повідомлень та структурних характеристик (параметрів) самого об’єкта. Сукупність значень структурних характеристик об’єкта називають його станом, а сукупність реакцій на повідомлення − його поведінкою. Структурні характеристики стану та елементи поведінки об’єктів визначаються умовою задачі.
Об’єктну декомпозицію предметної області задачі продемонструємо на прикладі розробки програми дослідження елементарних функцій.
Приклад. Розробити програму дослідження елементарних функцій, яка для функцій , , , , виконує наступні дії:
• будує таблицю значень функції на заданому відрізку із заданим кроком;
• визначає корені функції на заданому відрізку;
• визначає максимум і мінімум функції на заданому відрізку.
Програми такого роду зазвичай взаємодіють із користувачем через меню. У даній програмі буде використано два меню: меню функцій, в якому користувач буде вибирати конкретну функцію, і меню операцій, у якому користувач буде вибирати конкретне завдання. Меню функцій (мал. 1, а) повинне виводитися на екран при запуску програми. Після введення номера функції на екрані повинне з’явитися меню операцій (мал. 1, б). Увівши номер операції, користувач повинен побачити на екрані запит на введення даних, необхідних для виконання цієї операції (мал. 1, в, г, д). Задавши дані, користувач повинен одержати на екрані результати. Після аналізу результатів користувач повинен нажати будь-яку клавішу, щоб повернутися в меню операцій. Далі користувач може вибрати іншу операцію, а може повернутися в меню функцій, якщо вибере операцію 4 (вихід). Повернувшись у меню функцій, користувач може вибрати іншу функцію або вийти із програми.
Мал. 1. Стани інтерфейсу програми дослідження функцій:
а − меню функцій; б − меню операцій; в, г, д − оформлення операцій
В основу нашої об’єктної декомпозиції покладемо стани інтерфейсу програми, тобто будемо вважати, що кожний стан інтерфейсу − це стан деякого об’єкта системи.
Станів інтерфейсу програми п’ять, відповідно, одержуємо п’ять об’єктів. Назвемо ці об’єкти в такий спосіб: «Головне меню», «Меню операцій», «Табулятор», «Визначник кореня», «Визначник екстремумів». Ці об’єкти передають керування один одному, генеруючи повідомлення «Активізувати». Крім цього можна виділити ще один об’єкт «Функцію», який повинен забезпечувати обчислення обраної функції за заданим аргументом. Номер функції повідомляється даному об’єкту «Головним меню» після того, як користувач здійснить вибір.
Результат об’єктної декомпозиції зображують у вигляді діаграми об’єктів (мал. 2).
Мал. 2. Діаграма об’єктів предметної області.
Повна характеристика об’єкта включає його ім’я, а також перелік та опис параметрів стану та аспектів поведінки. Так, стан об’єкта з іменем «Функція» характеризується єдиним параметром: номером функції, який передає йому об’єкт «Головне меню». Поведінка же включає реакції на два типи повідомлень: одержавши номер функції, об’єкт повинен зберегти його, змінивши в такий спосіб свій стан, а одержавши запит на обчислення значення функції, що супроводжується певним значенням аргументу, − повернути значення функції в заданій точці.
Можна сформулювати наступні рекомендації по виконанню об’єктної декомпозиції:
1. Для складних систем об’єктна декомпозиція повинна виконуватися поетапно: на першому етапі − об’єктна декомпозиція всієї системи, на наступних − декомпозиція об’єктів як підсистем.
2. При декомпозиції системи в цілому в якості об’єктів можуть виділятися елементи двох типів:
− елементи інтерфейсу користувача (вікна меню, вікна повідомлень, вікна форм вводу-виводу і т.д.);
− засоби збереження, організації та перетворення даних (файли, бази даних, протоколи, структури даних і т.д.).
При цьому для кожного об’єкта потрібно визначати множину повідомлень, яку він отримує і передає, та основні характеристики.
3. Процес декомпозиції припиняється при одержанні об’єктів, які можуть бути досить просто реалізовані, тобто мають чітко визначений стан та поведінку.
Таким чином, при виконанні об’єктної декомпозиції визначають та описують множину об’єктів предметної області та множину повідомлень, яку передає та отримує кожен об’єкт.
На сьогоднішній час найпоширенішим засобом розробки в рамках об’єктно-орієнтованого підходу є мова програмування С#. Вона була розроблена у 1998-2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft як основна мова розробки додатків для платформи Microsoft.NET Framework.
Загальна характеристика платформи.Net Framework
У 2002 році компанія Microsoft створила нову платформу розробки та виконання програм, яка одержала назву.NET Framework[1]. Це повністю об’єктно-орієнтована платформа, яка дозволяє використовувати вже наявні й створювати власні типи даних (в.NET під терміном “тип” розуміють: класи, структури, переліки та інші форми даних), забезпечує спільне використання різних мов програмування, безпеку та переносність програм. Ці та інші можливості платформи.NET Framework забезпечуються завдяки трьом ключовим складовим (компонентам): CLR, CTS та CLS.
Мал. 1. Структурна схема виконання.NET-додатку.
Дата добавления: 2015-10-26; просмотров: 193 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
The Church of England | | | Бібліотека базових типів BCL |