Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 ЗМІСТ - Програмування С, С++теорія та практика (частина 2) - Studbook

Програмування С, С++теорія та практика (частина 2)

ЗМІСТ

Передмова............................................................................. 3

Про авторів............................................................................ 4

Частина 1. Мова програмування Сі...................................... 5

1.1   Історія виникнення.............................................................................. 5

1.2   Елементи мови Сі................................................................................. 6

1.2.1 Алфавіт................................................................... 6

1.2.2 Ідентифікатори....................................................... 6

1.2.3 Константи............................................................... 7

1.2.4 Коментарі............................................................... 9

1.2.5 Ключові слова........................................................ 9

1.3   Структура програми. Базові типи даних...................................... 9

1.3.1 Функція таіп() : з цього все починається.............. 9

1.3.2 Базові типи даних................................................ 10

1.3.3 Перетворення типу............................................... 12

1.3.4 Функції введення та виведення........................... 14

1.3.5 Директиви включення.......................................... 17

1.4   Основні операції................................................................................ 19

1.4.1 Арифметичні операції.......................................... 19

1.4.2 Операції присвоювання....................................... 21

1.4.3 Операції порівняння............................................ 22

1.4.4 Логічні операції.................................................... 23

1.4.5 Порозрядні операції (побітові операції).............. 24

1.4.6 Операція слідування (кома)................................. 25

1.4.7 Умовна операція ?:.............................................. 26

1.4.8 Операція 5ігеоГ()................................................... 26

1.5   Основи алгоритмізації...................................................................... 27

1.5.1 Алгоритми та їх властивості................................ 27

1.5.2 Блок-схеми........................................................... 28

Базові алгоритмічні конструкції:................................ 29

1.6   Оператори........................................................................................... 31

1.6.1 Оператор розгалуження іГ................................... 32

1.6.2 Оператор 5МГЇСІ1................................................. 34

1.6.3 Оператор циклу з передумовою міііїе................. 36

1.6.4 Оператор циклу з постумовою йо ................. міііїе        37

1.6.5 Оператор розриву Ьгеак...................................... 38

1.6.6 Оператор продовження сопїіпие......................... 39

1.6.7 Оператор циклу Гог.............................................. 39

1.6.8 Оператор переходу доЬ....................................... 42

1.6.9 „Порожній” оператор........................................... 42

1.6.10                                                                                                            „Складений” оператор      43

1.7     Тип перерахування епит............................................................... 43

1.8     Покажчики......................................................................................... 44

1.8.1    Основні відомості про покажчики....................................... 44

1.8.2    Моделі пам'яті.......................................................................... 47

1.8.3    Основні операції над покажчиками................................... 48

1.8.4    Багаторівнева непряма адресація...................................... 53

1.8.5    Операції над покажчиками................................................... 55

1.8.6    Проблеми, пов'язані з покажчиками................................... 58

1.9     Масиви .............................................................................................. 61

1.9.1    Основні поняття....................................................................... 61

1.9.2    Оголошення та звертання в одновимірних масивах.... 64

1.9.3    Оголошення та звертання до багатовимірних масивів ...66

1.10  Масиви покажчиків......................................................................... 69

1.10.1 Робота з великими масивами............................................... 69

1.10.2 Вільні масиви та покажчики................................................. 70

1.11  Символьні рядки.............................................................................. 71

1.11.1 Основні відомості про представлення рядків................... 71

1.11.2 Функції роботи з рядками..................................................... 73

1.12  Основні методи сортування масивів.......................................... 76

1.12.1 Метод бульбашкового сортування.................................... 76

1.12.2 Сортування методом вибору............................................... 77

1.12.3 Сортування вставками........................................................... 78

1.12.4 Швидке сортування................................................................ 79

1.13  Структури ......................................................................................... 80

1.13.1 Оголошення структури.......................................................... 80

1.13.2 Масиви структур..................................................................... 84

1.13.3 Бітові поля................................................................................. 87

1.14  Об’єднання (ипіоп).......................................................................... 88

1.15  Файлові потоки................................................................................ 89

1.15.1 Текстові файли......................................................................... 90

1.15.2 Двійкові файли.......................................................................... 92

1.15.3 Використання дескрипторів файлів................................... 95

1.16  Функціональний підхід.................................................................. 99

1.16.1 Функції..................................................................................... 102

1.16.2 Функції, що не повертають значення.............................. 103

1.16.3 Передача параметрів........................................................... 105

1.16.4 Функції із змінним числом параметрів............................ 109

1.16.5 Рекурсивні функції................................................................ 110

1.16.6 Покажчики на функції.......................................................... 112

1.16.7 Класи пам’яті......................................................................... 115

1.16.8 Додаткові можливості функції таіп()............................... 118

1.17  Складені оголошення................................................................... 120

1.17.1 Описи з модифікаторами..................................................... 122

1.17.2 Модифікатори сопзї і уоіаїііе............................................. 124

1.17.3                                                                                                                                                                    Модифікатори ссіесі і разсаї   125

1.17.4                                                                                                                                                                    Модифікатори пеаг, 1аг, Ииде               126

1.17.5                                                                                                                                                                    Модифікатор іпїеггирї              127

1.18Директиви препроцесора............................................................. 127

1.18.1                                                                                                                                                                    Директива #іпсїиСе    127

1.18.2                                                                                                                                                                    Директива #Се1іпе     128

1.18.3                                                                                                                                                                    Директива #ипСе1      130

1.18.4                                                                                                                                                                    Директиви #і1, #еїі1, #еїзе, #епСі1        131

1.18.5                                                                                                                                                                    Директиви #і1Се1 і #і1пСе1    133

1.18.6                                                                                                                                                                    Директива #їіпе           133

1.19Динамічні структури даних......................................................... 134

1.19.1                                                                                                                                                                    Лінійні списки              134

1.19.2                                                                                                                                                                    Стеки              141

1.19.3                                                                                                                                                                    Черги               142

1.19.4                                                                                                                                                                    Двійкові дерева            143

Частина 2. Мова програмування Сі++............................................................ 147

2.1    Історія виникнення......................................................................... 147

2.2    Відмінності мов Сі та Сі++, не пов’язані з

використанням об’єктів......................................................................... 147

2.2.1   Ключові слова......................................................................... 148

2.2.2   Область опису змінних......................................................... 148

2.2.3   Використання коментарів.................................................... 148

2.2.4   Аргументи по замовчуванню.............................................. 149

2.2.5   Перевантаження функцій..................................................... 150

2.2.6   Операція розв’язання видимості......................................... 153

2.2.7   Використання іпїіпе-специфікатору.................................. 154

2.2.8   Анонімні об’єднання.............................................................. 155

2.2.9   Оператори розподілу пам’яті.............................................. 156

2.3    Порівняння функціонального та об’єктного підходу ...156

2.4    Об’єктно - орієнтоване програмування. Головні

принципи об'єктного підходу.............................................................. 160

2.4.1   Абстрагування........................................................................ 162

2.4.2   Обмеження доступу............................................................... 163

2.4.3   Модульність............................................................................. 163

2.4.4   Ієрархія..................................................................................... 164

2.5    Класи.................................................................................................. 165

2.5.1   Протокол опису класу.......................................................... 166

2.5.2   Створення об’єктів. Доступ до полів та методів............. 169

2.5.3   Використання специфікаторів доступу класу............... 172

2.5.4   Правила визначення конструкторів.................................. 173

2.5.5   Методи ініціалізації елементів у конструкторах........... 175

2.5.6   Деструктори............................................................................. 178

2.5.7   Порядок виклику конструкторів та деструкторів.......... 180

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

2.6     Успадкування................................................................................. 181

2.6.1    Механізм успадкування....................................................... 181

2.6.2    Керування доступом при успадкуванні.......................... 184

2.6.3    Друзі-класи та друзі-функції............................................... 189

2.7     Поліморфізм..................................................................................... 193

2.7.1    Віртуальні функції................................................................. 193

2.7.2    Чисті віртуальні функції та абстрактні базові класи.. 197

2.7.3    Розміщення УРТР та таблиці УМТ у пам'яті.................. 200

2.7.4    Віртуальні деструктори....................................................... 202

2.8     Перевантаження операцій........................................................... 204

2.9     Шаблони.......................................................................................... 209

2.9.1    Параметризовані функції..................................................... 209

2.9.2    Параметризовані класи........................................................ 211

2.10 Класи потоків С++......................................................................... 216

2.10.1Визначені об'єкти-потоки.................................................... 217

2.10.2Операції поміщення та вилучення.................................... 218

2.10.3Переадресація введення та виведення............................. 220

2.10.4Визначення потокових операцій як дружніх................. 221

2.10.5Функції керування процесом І/О....................................... 221

2.10.6Прапорці форматування...................................................... 222

2.10.7Маніпулятори......................................................................... 223

2.10.8Файлові потоки....................................................................... 225

2.11 Контейнерні класи......................................................................... 227

2.12 Вкладені класи............................................................................... 229

2.13 Локальні класи............................................................................... 231

2.14 Обробка виняткових ситуацій.................................................... 232

Частина 3. Перелік лабораторних робіт........................................... 236

Вимоги щодо оформлення робіт........................................................ 236

I  семестр (мова програмування Сі)................................................... 237

Лабораторна робота №1................................................................ 237

Лабораторна робота №2................................................................ 240

Лабораторна робота №3................................................................ 245

Лабораторна робота №4................................................................ 253

Лабораторна робота №5................................................................ 260

Задачі на складання   ефективних алгоритмів.......................... 265

Задачі, що пропонувалися на Всеукраїнських олімпіадах ....272

II                                                                                                                                                                                       семестр (мова програмування Сі++)     276

Лабораторна робота №1................................................................ 276

Лабораторна робота №2............................................................... 277

Лабораторна робота №3............................................................... 279

Лабораторна робота №4-5 ..........................................................  283

Частина 4. Додатки.................................................................. 292

4.1     Вбудований відлагоджувач програм....................................... 292

4.2     Таблиця символів АЗСІІ.............................................................. 297

____________________________________________________ 321

4.3   Розширені коди клавіатури........................................................... 298

4.4   Функції стандартної бібліотеки .................................................. 299

4.5   Пріоритети операцій....................................................................... 312

4.6   Основні комбінації клавіш середовища ТС.............................. 313

Література............................................................................... 317

Зміст.................................................................................... 318

 

85