Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи Програмування C_.doc
Скачиваний:
46
Добавлен:
18.12.2018
Размер:
1.44 Mб
Скачать

КИЇВСЬКИЙ УНІВЕРСИТЕТ ІМЕНІ ТАРАСА ШЕВЧЕНКА

Основи програмування.

Мова С#

Методичний посібник

для студентів радіофізичного факультету

Київ – 2009

УДК 681.3

Рецензент: Ю.В. Бойко

Основи програмування. Мова С#. Методичний посібник для студентів радіофізичного факультету університету. / В.О. Грязнова, С.В.Єфіменко, К.Е.Юштін – К.: КНУ, 2009 – ??? с.

Посібник містить викладення основ програмування від історії програмування та представлення інформації у комп’ютері до огляду можливостей сучасної програмної технології Microsoft .NET Framework. Основні принципи об’єктно-орієнтованого програмування проілюстровані можливостями сучасної мови програмування С#. Кожний розділ містить велику кількість прикладів, готових до виконання.

Затверджено

Радою радіофізичного факультету,

Протокол № 8 від 16 лютого 2009 року

ЗМІСТ

Мови програмування. Представлення даних. 4

1. Вступ. Про обчислювальну техніку. 4

2. Історія мов програмування. 5

3. Поняття про платформу .NET 7

4. Створення мови програмування С#. 8

5. Представлення даних. Необхідність типізації. Двійкова арифметика. 9

6. Основні поняття програмування. 10

Поняття про інтегроване середовище розробки VisualStudio (на прикладі Visual Studio 2005). Структура C#-програми. 14

1. Основні можливості інтегрованого середовища розробки VisualStudio .NET. 14

2. Структура програми мовою С#. 16

Основні елементи мови С#. 18

1. Основні вбудовані типи мови С# 18

2. Визначення та ініціалізація змінних, область їх видимості. 19

3. Приведення типів. 21

4. Літерали (константи) мови С#. 23

5. Операції мови С#. 24

Основні інструкції керування мови С# – розгалуження та цикли. 30

1. Розгалуження у мові С# 30

2. Цикли у мові С# 35

3. Керування виходом із циклів С# 40

Масиви в мові С#. 41

1. Визначення та ініціалізація масиву. 41

2. Цикл foreach 44

3. Багатовимірні масиви. 45

4. Використання деяких методів класу System.Array. 47

5. Масиви масивів. Непрямокутні масиви. 48

Структуровані типи даних (колекції) в мові C# 49

1. Основні структури даних та їх призначення 49

2. Використання списку ArrayList та узагальненого списку List 50

3. Використання асоційованого списку Hashtable та узагальненого словника Dictionary 55

Класи в мові С#. 56

1. Визначення класу. 56

2. Методи класу. 58

3. Методи з параметрами. 60

4. Конструктор класу. 62

Методи в мові С#. 64

1. Передача об’єктів методам. 64

2. Використання модифікаторів для параметрів методів. 67

3. Методи, що повертають об’єкти. 70

Перевантаження методів в мові С#. 72

1. Перевантаження методів. 72

2. Перевантаження конструкторів. 75

3. Використання ключового слова this. 76

4. Деструктор класу. 78

5. Метод Main (). 80

Статичні члени класу. 81

1. Статичні дані-члени класу. 81

2. Статичні методи-члени класу. 84

3. Статичний конструктор класу. 87

4. Статичні класи, локалізація та глобалізація 88

Властивості та індексатори. 91

1. Властивості. 91

2. Індексатори. 95

Спадкування в мові С#. 100

1. Поняття про спадкування та ієрархію класів. 100

2. Спадкування та правила доступу до членів класів. 102

3. Конструктори базового та похідних класів. 104

4. Посилання на екземпляри базового та похідних класів. 107

5. Поняття про поліморфізм. 110

6. Віртуальні функції – більш детальний погляд. 113

7. Абстрактні методи та класи. 118

Перевантаження операцій в мові С#. 120

1. Загальні відомості. 120

2. Перевантаження бінарних арифметичних операцій. 121

3. Перевантаження унарних операцій. 124

4. Перевантаження операцій відношення. 125

5. Перевантаження логічних операцій. 126

6. Підсумкові зауваження. 127

Структури та переліки в мові С#. 127

1. Структури. 127

2. Переліки. 133

Делегати, події та обробники подій 136

1. Делегати (delegate). 136

2. Події та їх обробники. 139

Атрибути та їх використання 145

Мови програмування. Представлення даних.

1. Вступ. Про обчислювальну техніку.

Історія обчислювальної техніки сягає давніх часів. Можна назвати імена відомих вчених, фізиків і математиків – Блеза Паскаля, Готфріда Лейбніца, які сконструювали перші обчислювальні пристрої. Відоме ім’я Чарльза Беббіджа, який у 1835 році винайшов та описав свою аналітичну машину (Analytical Engine). Це був проект комп’ютера загального призначення із перфокартами в ролі носіїв вхідних даних та парового двигуна в ролі джерела енергії. Архітектура Analytical Engine практично відповідала сучасним комп’ютерам. З іменем Беббіджа часто пов’язують ім’я леді Ади Лавлейс – доньки лорда Байрона, яка переклала та доповнила коментарями книгу про аналітичну машину Беббіджа. Стверджують подекуди, що вона була першим програмістом, проте це скоріше красиве історичне перебільшення. Тим не менше, назву «Ада» на її честь носить одна із мов програмування.

Зрозумілим чином роботи по створенню потужних обчислювальних пристроїв пожвавились за років другої світової війни. Великих здобутків досягла Велика Британія. Група англійських вчених (серед них був і Алан Тьюрінг – автор «машини Тьюрінга») намагалась дешифрувати коди німецької шифрувальної машини «Енігма», яку використовували німецькі військово-морські сили для передачі секретних повідомлень. Англійцям вдалось виключити ряд варіантів шляхом логічних виводів, реалізованих обчислюваннями за допомогою електрики. Для зламу кодів «Енігми» в обстановці цілковитої секретності крім того було створено машину “Colossus” («Колосс»), специфікацію якої розробив професор Макс Ньюман з колегами. Ці роботи успішно проводились у 1941-1943 рр. “Colossus” став першою цілком електронною машиною, яка містила велику кількість електровакуумних ламп, введення інформації відбувалось з перфострічки. Хвилюючись, щоб цими досягненнями не скористались союзники, Уїнстон Черчілль особисто підписав у 1945 році наказ про руйнацію цієї машини на частини, що не перебільшували за розміром долонь, а інформація про неї трималась у секреті до 70-х років, тому “Colossus” майже не згадується серед перших обчислювальних машин.

Першим електронним комп’ютером загальновизнано вважають американський «Еніак», який довів можливість застосування електроніки для масштабних обчислень, сягнувши високої на той час швидкості обчислень – близько 5000 операцій в секунду. Роботи над цим проектом почались у 1943-1945 роках. Багато сучасників були налаштовані досить скептично і не без підстав – вони вважали, що тисячі тендітних електроламп будуть згорати настільки часто, що машина буде майже безперервно перебувати у ремонтах. Тим не менше «Еніаку» вдавалось працювати безперебійно до кількох годин до чергового збою із-за лампи, що вийшла з ладу.

Аналізуючи результати цього проекту, Джон фон Нейман у своєму широко відомому звіті розробив ідею проекту комп’ютера, в якому і дані, і програма зберігаються в єдиній універсальній пам’яті. Принципи побудови такої машини одержали назву «архітектури фон Неймана» і лягли в основу розробки перших гнучких універсальних цифрових комп’ютерів.

Слід віддати належне і досягненням вітчизняних вчених. Перший універсальний комп’ютер у Європі був створений командою Сергія Олексійовича Лебедєва із Київського інституту електротехніки. Його Мала електронна лічильна машина (рос. - МЭСМ) запрацювала у 1950 році, виконуючи до 3000 операцій у секунду. Лебедєв пізніше працював у Москві і помер у 1973 році, вже після його смерті був реалізований започаткований ним проект суперкомп’ютера «Ельбрус».

Наступне покоління комп’ютерів базувалось на транзисторах, а ще наступне – на інтегральних мікросхемах. Розвиток комп’ютерної техніки відбувається за експонентою, буквально щороку змінюючи уявлення людей про можливості обчислювальної техніки.