Курсовая работа: Технологія складу програм. Базові засоби мови C++

If(e)s

If(e)s1 else s2

Оператор множинного вибору switch дозволяє проводити за однією з галузей множинного гілкування алгоритму.

Існує три типи операторів циклу. Це

for (e1; e2; e3)s

while (e)s

do s while (e)

де e, e1, e2, e3 довільні вирази в тому числі й вирази, які мають в собі операції «кома», s - простий або складений оператор.


РОЗДІЛ 2. ТЕХНОЛОГІЯ СКЛАДУ ПРОГРАМ

2.1 Структурне програмування

Процес програмування також організується по принципу «зверху до низу» : спочатку кодуються модулі верхнього рівня й складаються текстові приклади для їх відладки, при цьому на місце ще не написаних модулей наступного рівня ставляться тимчасові програми. Тимчасові програми у найпростішому випадку видають повідомлення про те, що їм передано керування, а після того повертають його у викликаючий модуль. В інших випадках тимчасові програми можуть видавати значення, задані заздалегідь або обчислені по спрощеному алгоритмі. Таким чином, спочатку створюється логічний кістяк програми, що потім обростає плоттю коду. Логічно застосовувати до процесу програмування висхідну технологію - написати й налагодити спочатку модулі нижнього рівня, а потім поєднувати їх у більші фрагменти, але цей підхід має ряд недоліків.

По-перше, у процесі кодування верхнього рівня можуть бути розкриті ті або інші труднощі проектування більш низьких рівнів програми. Якщо подібна помилка виявляється в останню чергу потрібні додаткові витрати на переробку вже готових модулів нижнього рівня.

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

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

Згодом при проектуванні програм акцент змістився з організації процедур на організацію структур даних. Крім усього іншого це викликано й ростом розмірів програм.

Модулем звичайно називають сукупність зв'язаних процедур і тих даних, якими вони управляють. Визначте, які модулі потрібні; поділіть програму так, щоб дані були сховані в цих модулях. Ця парадигма відома також як "принцип приховання даних". Якщо в мові немає можливості згрупувати зв'язані процедури разом з даними, то він погано підтримує модульний стиль програмування. Тепер метод написання "гарних" процедур застосовується для окремих процедур модуля. Типовий приклад модуля – визначення стека. Тут необхідно вирішити такі завдання:

1. Надати користувачеві інтерфейс для стека (наприклад, функції push () і pop ()).

2. Гарантувати, що подання стека (наприклад, у вигляді масиву елементів) буде доступно лише через інтерфейс користувача.

3. Забезпечувати ініціалізацію стека перед першим його використанням.

Цілком можливо, що реалізація стека може змінитися, наприклад, якщо використати для зберігання зв'язаний список. Користувач у кожному разі не має безпосереднього доступу до реалізації: v й p - статичні змінні, тобто змінні локальні в тім модулі (файлі), у якому вони описані. Оскільки дані є єдина річ, що хочуть приховувати, поняття приховування даних тривіально розширюється до поняття приховування інформації, тобто імен змінних, констант, функцій і типів, які теж можуть бути локальними в модулі. Хоча С++ і не призначався спеціально для підтримки модульного програмування, класи підтримують концепцію модульності. Крім цього С++, природно, має вже продемонстровані можливості модульності, які є в С, тобто подання модуля як окремої одиниці трансляції.

2.3 Об’єктно-орієнтоване програмування

Проблема полягає в тому, що ми не розрізняємо загальні властивості фігур (наприклад, фігура має кольори, її можна намалювати й т.д.) і властивості конкретної фігури (наприклад, окружність - це така фігура, що має радіус, вона зображується за допомогою функції, що малює дуги й т.д.). Суть об’єктно-орієнтованого програмування в тім, що воно дозволяє виражати ці розходження й використовує їх. Мова, що має конструкції для вираження й використання подібних розходжень, підтримує об’єктно-орієнтоване програмування. Всі інші мови не підтримують його. Ті функції, для яких можна визначити заявлений інтерфейс, але реалізація яких (тобто тіло з операторною частиною) можлива тільки для конкретних фігур, відзначені службовим словом virtual (віртуальні). У Симулі й С++ віртуальність функції означає: "функція може бути визначена пізніше в класі, похідному від даного". Для визначення конкретної фігури варто вказати, насамперед, що це - саме фігура й задати її особливі властивості (включаючи й віртуальні функції. У мові С++ клас circle називається похідним стосовно класу shape, а клас shape називається базовим для класу circle. Можлива інша термінологія, що використає назви "підклас" й "суперклас" для класів circle й shape відповідно. Тепер парадигма програмування формулюється так: визначите, який клас вам необхідний; надайте повний набір операцій для кожного класу; спільність класів визначте явно за допомогою спадкування. Якщо спільність між класами відсутній, цілком достатньо абстракції даних. Наскільки застосовне об’єктно-орієнтоване програмування для даної області додатка.


РОЗДІЛ 3. ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

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

їclass shape

{

point center;

color col;

// ...

К-во Просмотров: 230
Бесплатно скачать Курсовая работа: Технологія складу програм. Базові засоби мови C++