- •Перелік лабораторних робіт
- •Лабораторна робота №1 "Прості типи даних. Базові конструкції мови с"
- •Додаткові задачі, що пропонувалися на Всеукраїнських олімпіадах з програмування у 2001 та
- •2002 Роках (м. Одеса, м. Чернівці)
- •Потоків”
- •Частина 4. Додатки
- •4.1 Вбудований відлагоджувач програм
- •4.2 Таблиця символів ascii
- •4.3 Розширені коди клавіатури
- •4.4 Функції стандартної бібліотеки Функції для роботи із символами
- •Функції для роботи з ос (dos.H)
- •Математичні функції (math.H)
- •Функції I/o (stdio.H)
- •Консольні функції I/o (conio.H)
- •4.5 Пріоритети операцій Таблиця 4.14. Пріоритети операцій
- •4.6 Основні комбінації клавіш середовища тс
- •Література
- •10005, М. Житомир, вул. Черняхівського, 103.
Література
М.Уэйт, С.Прата, Д.Мартин „Язык Си”, Пер. с англ.-М: Мир, 1988
Уинер Р. „Язык Турбо Си”, Пер с англ.-М.: Мир, 1991
Берри Р., Микинз Б. „Язык Си: введение для программистов”, Пер. с англ.-М.:Финансы и статистика, 1988
„Turbo C++” . Borland International . Inc. 1990.
Б. Страуструп „Введение в язык С++”, Киев, „Диа Софт”, 1995
Г. Буч. "Объектно-ориентированное проектирование с примерами применения", Киев, Диалектика, 1992.
Б. Страуструп „Язык программирования С++”; 2-е изд. : 1,2 т.т., Киев, „Диа Софт”, 1993
М.Эллис, Б.Страуструп „Справочное руководство по языку программирования С++ с комментариями”, М., Мир, 1992
С. Дьюхарст, Кети Старк „Программирование на С++”, Киев, „Диа Софт”, 1993
Т.Фэйсон „Объектно-ориентированное программирование на Borland C++ 4.5”, Четвертое издание, Киев, „Диалектика”, 1996.
И.Пол „Объектно-ориентированное программирование с использованием С++”, Киев, „Диа Софт”, 1995
Т.Сван „Освоение Borland C++ 4.5”, практический курс, 1 том, Киев, „Диалектика”, 1996
Т.Сван „Освоение Borland C++ 4.5”, Энциклопедия функций (2 том), Киев, „Диалектика”, 1996
Т.Сван „Освоение Borland C++ 5”, премьерное издание, Киев, “Диалектика”, 1996
Б. Страуструп „Язык программирования С++”, специальное издание, Москва, „Бином”, 2001
А. Архангельский „Программирование C++ Builder 5”, Москва, “Бином”, 2001
Т.А.Павловская „С/С++. Программирование на языке високого уровня”, „Питер”С-П, 2002
Т.Кормен, Ч.Лейзерсон, Р.Ривест „Алгоритмы: построение и анализ”,МЦНМО, М., 2000
317
Передмова 3
Про авторів 4
Частина 1. Мова програмування Сі 5
Історія виникнення 5
Елементи мови Сі 6
Алфавіт 6
Ідентифікатори 6
Константи 7
Коментарі 9
Ключові слова 9
1.3 Структура програми. Базові типи даних 9
Функція main() : з цього все починається 9
Базові типи даних 10
Перетворення типу 12
Функції введення та виведення 14
Директиви включення 17
1.4 Основні операції 19
Арифметичні операції 19
Операції присвоювання 21
Операції порівняння 22
Логічні операції 23
Порозрядні операції (побітові операції) 24
Операція слідування (кома) 25
Умовна операція ?: 26
Операція sizeof() 26
1.5 Основи алгоритмізації 27
Алгоритми та їх властивості 27
Блок-схеми 28
Базові алгоритмічні конструкції: 29
1.6 Оператори 31
Оператор розгалуження if 32
Оператор switch 34
Оператор циклу з передумовою while 36
Оператор циклу з постумовою do … while 37
Оператор розриву break 38
Оператор продовження continue 39
Оператор циклу for 39
Оператор переходу goto 42
„Порожній” оператор 42
1.6.10 „Складений” оператор 43
3 18
Тип перерахування enum 43
Покажчики 44
Основні відомості про покажчики 44
Моделі пам'яті 47
Основні операції над покажчиками 48
Багаторівнева непряма адресація 53
Операції над покажчиками 55
Проблеми, пов’язані з покажчиками 58
1.9 Масиви 61
Основні поняття 61
Оголошення та звертання в одновимірних масивах 64
Оголошення та звертання до багатовимірних масивів...66
1.10 Масиви покажчиків 69
Робота з великими масивами 69
Вільні масиви та покажчики 70
1.11 Символьні рядки 71
Основні відомості про представлення рядків 71
Функції роботи з рядками 73
1.12 Основні методи сортування масивів 76
Метод бульбашкового сортування 76
Сортування методом вибору 77
Сортування вставками 78
Швидке сортування 79
1.13 Структури 80
Оголошення структури 80
Масиви структур 84
Бітові поля 87
Об’єднання (union) 88
Файлові потоки 89
Текстові файли 90
Двійкові файли 92
Використання дескрипторів файлів 95
1.16 Функціональний підхід 99
Функції 102
Функції, що не повертають значення 103
Передача параметрів 105
Функції із змінним числом параметрів 109
Рекурсивні функції 110
Покажчики на функції 112
Класи пам’яті 115
Додаткові можливості функції main() 118
1.17 Складені оголошення 120
Описи з модифікаторами 122
Модифікатори const і volatile 124
319
Модифікатори cdecl і pascal 125
Модифікатори near, far, huge 126
Модифікатор interrupt 127
1.18 Директиви препроцесора 127
Директива #include 127
Директива #define 128
Директива #undef 130
Директиви #if, #elif, #else, #endif 131
Директиви #ifdef і #ifndef 133
Директива #line 133
1.19 Динамічні структури даних 134
Лінійні списки 134
Стеки 141
Черги 142
Двійкові дерева 143
Частина 2. Мова програмування Сі++ 147
Історія виникнення 147
Відмінності мов Сі та Сі++, не пов’язані з використанням об’єктів 147
Ключові слова 148
Область опису змінних 148
Використання коментарів 148
Аргументи по замовчуванню 149
Перевантаження функцій 150
Операція розв’язання видимості 153
Використання inline-специфікатору 154
Анонімні об’єднання 155
Оператори розподілу пам’яті 156
Порівняння функціонального та об’єктного підходу ...156
Об’єктно - орієнтоване програмування. Головні принципи об'єктного підходу 160
Абстрагування 162
Обмеження доступу 163
Модульність 163
Ієрархія 164
2.5 Класи 165
Протокол опису класу 166
Створення об’єктів. Доступ до полів та методів 169
Використання специфікаторів доступу класу. . 172
Правила визначення конструкторів 173
Методи ініціалізації елементів у конструкторах.. 175
Деструктори 178
Порядок виклику конструкторів та деструкторів. . 180
Статичні члени класу 180
3 20
2.6 Успадкування 181
Механізм успадкування 181
Керування доступом при успадкуванні 184
Друзі-класи та друзі-функції 189
2.7 Поліморфізм 193
Віртуальні функції 193
Чисті віртуальні функції та абстрактні базові класи 197
Розміщення VPTR та таблиці VMT у пам'яті 200
Віртуальні деструктори 202
Перевантаження операцій 204
Шаблони 209
Параметризовані функції 209
Параметризовані класи.. 211
2.10 Класи потоків С++ 216
Визначені об’єкти-потоки 217
Операції поміщення та вилучення 218
Переадресація введення та виведення 220
Визначення потокових операцій як дружніх 221
Функції керування процесом I/O 221
Прапорці форматування 222
Маніпулятори 223
Файлові потоки 225
Контейнерні класи.. 227
Вкладені класи.. 229
Локальні класи. . 231
Обробка виняткових ситуацій 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
Вбудований відлагоджувач програм 292
Таблиця символів ASCII 297
321
Розширені коди клавіатури 298
Функції стандартної бібліотеки 299
Пріоритети операцій 312
Основні комбінації клавіш середовища ТС 313
Література 317
Зміст 318
323
Для нотаток
Підписано до друку 18.12.02 Формат 60x84 1/16 Друк офсетний.
Гарнітура Times New Roman. Ум. друк. арк. 20,25.
Тираж 400 екз. Зам. 79
Редакційно-видавничий відділ
Житомирського державного технологічного університету