Розвиток методології програмування від процедурного до об’єктно- орієнтованого підходу. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Розвиток методології програмування від процедурного до об’єктно- орієнтованого підходу.



Однією з революційних концепцій програмування було структурне програмування, що базувалось на процедурній абстракції. Процедури (або просто підпрограми) дозволяли структурувати текст програми, допускали повторне використання окремих частин програми (реалізоване у вигляді виклику процедури з будь-якого місця програми, в тому числі і з самої процедури). Тим самим ця концепція наводила певний порядок у програмах (яким були притаманні багатократні переходи та заплутаність текстів програм). Найбільш поширеними мовами програмування високого рівня в межах цієї концепції були мови ПЛ/1, Pascal, C, Modula-2.

Структурні мови програмування дозволяли писати досить складні програми. Проте фатальним для концепції структурного програмування ставав об’єм програми. В той час як важливою підтримкою складних інженерних проектів виступало програмування, написання реально складної та великої програми в межах цієї концепції ставало неможливою.Один із нових підходів до програмування одержав назву об’єктно-орієнтованого програмування (ООП). Для реалізації цієї концепції були створені нові мови програмування. Одним із найбільш вдалих проектів була мова С++, яка повністю підтримувала весь парк програм, створених для компіляторів з мови С. Саме цей факт і забезпечив мові С++ комерційний успіх. Іншими прикладами об’єктно-орієнтованих мов програмування служать мови Smalltalk, Java та інші.Концепція об’єктно-орієнтованого програмування базується на трьох основних принципах. По-перше, об’єкт інкапсулює (приховує) у собі дані та методи, які ними оперують, залишаючи назовні лише можливість послати або одержати повідомлення – дозволену інформацію про себе. По-друге, існує можливість створювати нові об’єкти з розширеним списком можливостей шляхом спадкування від існуючих об’єктів. І нарешті, різні об’єкти можуть мати методи з однаковим інтерфейсом, проте різним функціонуванням. Ця властивість реалізує підхід, що одержав назву поліморфізму. Його ідея: один інтерфейс – багато методів.Сучасні мови програмування доросли таким чином до так званого «метапрограмування», або програмування з допомогою шаблонів – можна створювати програми, які створюють інші програми як результат своєї роботи. Таким чином, мова програмування одержує певну самостійність, яка з одного боку значно спрощує розв’язання багатьох проблем, проте й вносить певний елемент некерованості, незалежності від авторського задуму.

 

Особлиості компіляції програм у середовищі NET

Microsoft.NET Framework — це програмна технологія, запропонована фірмою Microsoft для створення програм різних типів. Особливість технології є сумісність різних служб, створених різними мовами програмування. Програми можуть звертатись до методів та класів, створених на цій платформі з використанням різних мов. Це можливо через те що середовище розробки.NET при компіляції кожної програми, створеної будь-якою мовою програмування, що існують на платформі.NET, створює двійковий код, спеціальною проміжною мовою, що одержала назву MSIL, або просто IL. Далі, коли платформно-незалежний код мовою IL має бути пристосований до довільної конкретної платформи, на якій буде «жити» програма, цю задачу виконує спеціальний JIT (just-in-time compiler) компілятор («компіляція на льоту»). Роботою цього компілятора керує спеціальна служба CLR (Common Language Runtime) – стандартне середовище виконання для мов.NET. CLR керує всіма задачами низького рівня, пов’язаними з розгортанням застосувань, використанням пам’яті, тощо. Крім цього, частиною.NET є стандартна система типів CTS (Common Type System), та потужна бібліотека базових класів, які використовуються усіма мовами платформи.NET

 

12.

Мова С# – це мова жорстокої типізації. Це означає, що кожний об’єкт в програмі має відноситись до одного з визначених типів. Всі типи даних, що використовуються в С#, діляться на 2 категорії типи-значень (value types) та типи-посилання (reference types). Типи – значень – це ті, які можуть зберігати певні значення (числові, символьні, текстові, тощо). Вони розташовані у так званому стеку – спеціальній області пам’яті програми, елементи якої обслуговуються за принципом черги (англ. LIFO, last input – first output) – елемент, записаний останнім, вибирається першим.

 

 

13. Основні операції мови С#:

1.Арифметичні операції: (+) – додавання, (-) – віднімання, (*) – множення, (/) – ділення, (%) – визначення залишку від ділення – є бінарними операціями і виконуються над операндами довільних цілих та дійсних чисел, формуючи результат, тип якого визначається правилами «просування по сходинках типів». 2. Операції інкременту та декременту. Унарні операції інкременту (++) та декременту (--) викликають відповідно збільшення або зменшення операнду дійсного або цілого типу на одиницю. Фактично, ці операції задають неявне присвоєння нового значення змінній.Вони мають префіксну форму (коли знак операції ++ чи -- записується перед змінною) та постфіксну форму (коли знак операції ++ чи -- записується після змінної). В обох випадках змінна, до якої застосована операція інкреметну або декременту, буде збільшена або зменшена на одиницю, проте при префіксній формі ці зміни відбудуться перед використанням змінної у виразі, а при постфіксній формі – після використання змінної у виразі. 3. Операції відношення (порівняння). Бінарні операції відношення: (==) – перевірка на рівність, (!=) – перевірка на нерівність, (>) – перевірка чи більший перший операнд за другий, (>=) – перевірка чи не менший перший операнд за другий, (<) – перевірка чи менший перший операнд за другий, (<=) – перевірка чи не більший перший операнд за другий. Кожна з цих операцій формує значення true або false в залежності від результату порівняння. 4. Логічні операції. Виконуються над операндами логічного типу та визначають результат логічного типу. Логічні операції мають дві форми: звичайну та скорочену. Звичайні логічні операції: (&) – логічне множення або логічне «І», (|) – логічне додавання або логічне «АБО», (^) – логічне виключне «АБО», (!) – логічне заперечення «НІ». Крім того, логічні множення та додавання мають ще скорочені форми, які позначаються знаками && та || відповідно. 5. Порозрядні (бітові) операції виконуються над відповідними бітами внутрішнього подання лише цілих операндів. Результатом виконання є ціле відповідного операндам типу. Таких операцій є 6: (&) – порозрядне «І», тобто кон’юнкція бітів, (|) – порозрядне «АБО»,тобто диз’юнкція бітів, (^) – порозрядне виключне «АБО», (>>) – порозрядний зсув праворуч, (<<) – порозрядний зсув ліворуч, (~) – порозрядне заперечення. Всі операції, крім останньої, є бінарними. Слід зауважити, що при зсуві ліворуч (<<) на вказану правим операндом кількість позицій внутрішнє подання лівого операнду просто зсувається ліворуч, а позиції, що вивільняються, заповнюються нулями. При зсуві праворуч (>>) позиції, що вивільняються ліворуч, заповнюються нулями для беззнакового операнду, якщо ж зсув виконується для знакового операнду, то на вільні ліві позиції розповсюджується знаковий розряд, тобто для від’ємного числа вільні позиції ліворуч заповняться одиницями. 6. Умовна (тернарна) операція має наступну синтаксичну форму: <вираз_1>? < вираз_2>: < вираз_3>. Назву «тернарна» ця операція має тому, що її визначають 3 вирази. Перший вираз повинен мати тип bool. Якщо його значення рівне true, то обчислюється значення другого виразу, яке і визначає всю тернарну операцію. Якщо ж значення першого виразу false, то обчислюється значення третього виразу, і його значення стає значенням всього тернарного виразу. 7. Операції присвоєння. Крім звичайної операції присвоєння (=) в мові С# виконуються ще 10 скорочених операцій присвоєння, які позначаються як <op>=, де знак <op> може бути замінений на знак однієї з операцій: + - * / % & | ^ >> <<. При цьому значення конструкції <змінна> <op>= <вираз>; обчислюється наступним чином: <змінна> = <змінна> <op> <вираз>. 8. Пріоритет операцій. При складанні виразів слід враховувати, що порядок виконання операцій у виразі визначається пріоритетом операцій. Проте правилом хорошого тону слід вважати використання дужок, які підкреслюють порядок обчислень та роблять вираз більш зрозумілим.

 

14. Поняття змінної. Використання змінних, констант, read-only змінних.

. Константа – це величина, яке не змінює свого значення. Отже, значення константи має бути визначене в той момент, коли ви описуєте константу в програмі, тобто знайомите з нею компілятор.

Змінна – це очевидно, величина, яка протягом роботи програми може набувати різних значень. Вище вже говорилось про необхідність типізації даних, тобто кожна змінна програми має відноситись до певного типу даних, допустимих в межах синтаксису (тобто правил використання слів) даної мови програмування. Змінні також мають бути «представлені» компілятору. Проте тут слід розрізняти два етапи: опис (декларацію) змінної, який для компілятора є повідомленням про характер змінної та дає змогу контролювати її використання в програмі, та визначення змінної, тобто власне створення змінної в пам’яті. Надання початкового значення змінній називається ініціалізацією.

Фізичні та математичні константи мають усталені імена, наприклад, – стала Ейлера, – гравітаційна стала, тощо. Змінні в математиці також позначають звичними літерами – . Імена змінних та констант в програмі звуться ідентифікаторами. Складати ідентифікатори програміст має право довільно, не обмежуючи свою фантазію, в межах, звісно власної культури та правил синтаксису мови. Хороший стиль програмування (більше про стиль програмування можна самостійно прочитати у посібниках [1, 2]) означає, як мінімум, що програма, яку ви створюєте, має властивість readability – зручність для читання та сприйняття, а отже, і внесення змін та супроводження її. Тому ідентифікатори слід вибирати так, щоб вони відбивали зміст змінної або константи.

 

 

15.Умовні оператори мови С#

 

Умовний оператор if використовується для розгалуження процесу обчислень на два напрями. Структурна схема оператора наведена на рис.


Формат оператора

if (логічна умова) оператор1

[else оператор2]

Спочатку обчислюється логічна умова. Якщо вона має значення true, виконується перший оператор, інакше — другий. Після цього управління передається на оператор, який слідує за умовним оператором if. Гілка else може бути відсутньою.

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

Приклад

if (a>b)

Console.WriteLine(“a>b”);

else

Console.WriteLine(“a<=b”);

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 325; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.60.149 (0.013 с.)