
Зубенко, Омельчук - Програмування. Поглиблений курс
.pdf
|
ЗМІСТ |
2.1.4. Абстрактні алгоритми ............................................................. |
121 |
2.1.5. Структурні алгоритми............................................................. |
128 |
2.1.6. Конструктивні інформаційні системи..................................... |
132 |
2.1.6. Cкладність інформаційних систем.......................................... |
133 |
2.2. ЖИТТЄВИЙ ЦИКЛ ІНФОРМАЦІЙНИХ СИСТЕМ............................... |
139 |
2.2.1 Основні етапи життєвого циклу інформаційних систем.......... |
139 |
2.2.2. Деякі методологічні принципи програмування....................... |
145 |
2.3. ОБЧИСЛЮВАЛЬНІ СИСТЕМИ.......................................................... |
149 |
2.3.1 Cтруктура комп'ютера ............................................................. |
150 |
2.3.2. Структура й функції операційних систем............................... |
152 |
2.3.3. Машинні типи даних............................................................... |
155 |
2.3.4. Навчальна машина.................................................................. |
168 |
2.4. МОВИ ПРОГРАМУВАННЯ ................................................................ |
183 |
2.4.1. Дескриптивні системи ............................................................ |
183 |
2.4.2. Мови програмування .............................................................. |
187 |
2.4.3. Класифiкацiя мов програмування........................................... |
190 |
2.5. СТРУКТУРНІ ПРОГРАМИ Й РЕКУРЕНТНІ ФУНКЦІЇ.......................... |
196 |
2.5.1. Структурні схеми програм і структурні алгоритми................ |
197 |
2.5.2. Системи рекурентних послідовностей .................................... |
199 |
2.5.3. Рекурентні функції.................................................................. |
201 |
2.5.4. Техніка побудови стандартних програм ................................. |
206 |
2.6. ІНДУКТИВНІ ОЗНАЧЕННЯ............................................................... |
218 |
2.6.1. Індуктивні означення множин та їхніх систем ....................... |
218 |
2.6.2. Індуктивні означення функцій................................................ |
223 |
2.6.3. Рекурсивні специфікації ......................................................... |
234 |
2.7. ЕЛЕМЕНТИ ТЕХНОЛОГІЇ ПРОГРАМУВАННЯ................................... |
237 |
2.7.1. Стиль ....................................................................................... |
237 |
2.7.2. Специфікації системи ............................................................. |
240 |
2.7.3. Мова UML ................................................................................ |
244 |
2.7.4. Рефакторинг............................................................................ |
258 |
2.7.5. Налагодження ......................................................................... |
261 |
2.7.6. Тестування .............................................................................. |
262 |
Розділ ІІІ. МОВИ ПРОГРАМУВАННЯ С ТА C++ ................................. |
267 |
3.1. ЛЕКСИЧНА Й СИНТАКСИЧНА СТРУКТУРИ С-ПРОГРАМ................. |
267 |
3.1.1. Стандарти мови С................................................................... |
268 |
3.1.2. Лексика мови С....................................................................... |
268 |
3.1.3. Структура програм.................................................................. |
273 |
3.2. ВИРАЗИ............................................................................................ |
292 |
3.2.1. Структура виразів................................................................... |
293 |
621

ПРОГРАМУВАННЯ
3.2.2. Базові типи.............................................................................. |
298 |
3.2.3. Стандартні типи...................................................................... |
301 |
3.2.4.Порядкові типи ........................................................................ |
308 |
3.2.5. Сумісність, зведення й узгодженість типів ............................. |
309 |
3.3. ОПЕРАТОРИ..................................................................................... |
316 |
3.3.1. Базові оператори..................................................................... |
316 |
3.3.2. Структуровані оператори........................................................ |
318 |
3.4. ТИП МАСИВІВ.................................................................................. |
327 |
3.4.1. Специфікатор масивів ............................................................ |
327 |
3.4.2. Динамічні масиви ................................................................... |
331 |
3.4.3. Масиви як параметри функцій............................................... |
332 |
3.4.4. Масиви й символьні рядки..................................................... |
333 |
3.5. ТИП ПОКАЖЧИКІВ .......................................................................... |
337 |
3.5.1. Специфікатор покажчиків...................................................... |
339 |
3.5.2. Операції з покажчиками......................................................... |
340 |
3.5.3. Індексація покажчиків і масиви............................................. |
342 |
3.5.4. Масиви покажчиків ................................................................ |
344 |
3.5.5. Функції виділення пам'яті ....................................................... |
346 |
3.5.6. Моделювання динамічних масивів ........................................ |
347 |
3.6. ФУНКЦІЇ........................................................................................... |
352 |
3.6.1. Специфікатори функцій ......................................................... |
353 |
3.6.2. Виклики функцій .................................................................... |
356 |
3.6.3. Рекурсивні функції.................................................................. |
357 |
3.6.4. Покажчики як аргументи й результат роботи функцій .......... |
359 |
3.6.5. Функція main() із параметрами............................................... |
363 |
3.6.6. Функції й покажчики функцій як параметри функцій........... |
364 |
3.6.7. Функції зі змінною кількістю параметрів................................ |
368 |
3.6.8. Вбудовані функції ................................................................... |
370 |
3.6.9. Стандартна бібліотека* ........................................................... |
371 |
3.7. ТИП СТРУКТУР................................................................................. |
375 |
3.7.1. Специфікатори структур......................................................... |
376 |
3.7.2. Операції на структурах........................................................... |
378 |
3.7.3. Бітові поля............................................................................... |
382 |
3.7.4. Тип об'єднань .......................................................................... |
383 |
3.8. ФАЙЛИ ............................................................................................. |
387 |
3.8.1. Потоки й файли....................................................................... |
388 |
3.8.2. Консольні функції введення-виведення.................................. |
389 |
3.8.3. Обробка файлів....................................................................... |
397 |
3.8.4. Перенаправлення потоків ....................................................... |
404 |
3.9. ПРЕПРОЦЕСОР................................................................................ |
409 |
3.9.1. Директиви препроцесора........................................................ |
410 |
622

|
ЗМІСТ |
3.9.2. Макропідстановки................................................................... |
411 |
3.9.3. Включення файлів................................................................... |
415 |
3.9.4. Умовна компіляція .................................................................. |
416 |
3.9.5. Директиви #error, #line та #pragma ...................................... |
418 |
3.10. ПОРІВНЯЛЬНИЙ АНАЛІЗ МОВ C ТА С++ ....................................... |
420 |
3.10.1. Стандартні бібліотеки С++ .................................................... |
421 |
3.10.2. Область дії змінних................................................................ |
422 |
3.10.3. Простір імен .......................................................................... |
422 |
3.10.4. Специфікатори класів пам'яті............................................... |
423 |
3.10.5. Введення-виведення в мові C++ ........................................... |
423 |
3.10.6. Робота з функціями в C++ ..................................................... |
427 |
3.10.7. Константи й типи даних мови C++ ....................................... |
429 |
3.10.8. Посилання ............................................................................. |
434 |
3.10.9. Керування пам'яттю.............................................................. |
437 |
3.11. ОБ'ЄКТНО-ОРІЄНТОВАНІ МОЖЛИВОСТІ C++............................... |
439 |
3.11.1. Інкапсуляція, класи та об'єкти .............................................. |
439 |
3.11.2. Ініціалізація, присвоювання та знищення класу................... |
447 |
3.11.3. Спадкування ......................................................................... |
448 |
3.11.4. Поліморфізм .......................................................................... |
455 |
3.12. ІНШІ ЗАСОБИ C++ ......................................................................... |
459 |
3.12.1. Шаблони ................................................................................ |
459 |
3.12.2. Перетворення типів у мові C++ ............................................. |
462 |
3.12.3. Друзі...................................................................................... |
464 |
3.12.4. Перевантаження операцій .................................................... |
467 |
3.12.5. Виключення. Блок try-catch-throw ........................................ |
469 |
Розділ IV. АЛГОРИТМИ.......................................................................... |
473 |
4.1. СОРТУВАННЯ Й ПОШУК.................................................................. |
473 |
4.1.1. Послідовний пошук у масиві................................................... |
475 |
4.1.2. Бінарний пошук...................................................................... |
475 |
4.1.3. Бульбашкове сортування ........................................................ |
476 |
4.1.4. Сортування вставленням ........................................................ |
477 |
4.1.5. Сортування злиттям................................................................ |
479 |
4.1.6. Швидке сортування................................................................. |
481 |
4.1.7. Вибір методу сортування ........................................................ |
482 |
4.2. ЛІНІЙНА АЛГЕБРА ........................................................................... |
484 |
4.2.1. Прямий алгоритм множення матриць .................................... |
485 |
4.2.2. Алгоритм Винограда для множення матриць ......................... |
486 |
4.2.3. Алгоритм Штрассена для множення матриць......................... |
489 |
4.2.4. Системи лінійних рівнянь. Метод Гаусса – Жордана.............. |
490 |
4.2.5. Розріджені матриці ................................................................. |
495 |
623

ПРОГРАМУВАННЯ
4.3. СПИСКИ, СТЕКИ, ЧЕРГИ Й БІНАРНІ ДЕРЕВА................................. |
498 |
4.3.1. Списки..................................................................................... |
499 |
4.3.2. Стеки....................................................................................... |
507 |
4.3.3. Черги ....................................................................................... |
512 |
4.3.4. Бінарні дерева......................................................................... |
514 |
4.3.5. Контейнерні типи.................................................................... |
518 |
4.4. ДИНАМІЧНІ ТАБЛИЦІ ...................................................................... |
527 |
4.4.1. Таблиці як масиви структур................................................... |
528 |
4.4.2. Таблиці у вигляді зв'язаних списків........................................ |
530 |
4.4.3. Підвищення ефективності при пошуку в таблицях ............... |
534 |
4.4.4. Пряма адресація...................................................................... |
535 |
4.4.5. Хеш-таблиці з колізіями .......................................................... |
537 |
4.4.6. Відкрите хешування................................................................ |
537 |
4.4.7. Закрите хешування................................................................. |
540 |
4.4.8 Таблиці у вигляді дерев пошуку............................................... |
543 |
4.5. СИНТАКСИЧНИЙ АНАЛІЗ І ОБЧИСЛЕННЯ ВИРАЗІВ...................... |
546 |
4.5.1. Лексичний аналіз виразів........................................................ |
548 |
4.5.2. Синтаксичний аналіз .............................................................. |
553 |
4.5.3. Обчислення виразів................................................................. |
554 |
4.6. ПОШУК У ГРАФАХ............................................................................ |
567 |
4.6.1. Зображення графів ................................................................. |
568 |
4.6.2. Пошук шляхів у графах.......................................................... |
572 |
4.6.3. Пошук у ширину ..................................................................... |
573 |
4.6.4. Пошук у глибину ..................................................................... |
574 |
4.6.5. Алгоритм Дейкстри ................................................................. |
575 |
4.6.6. Застосування алгоритмів пошуку ........................................... |
579 |
4.6.7. Жадібні алгоритми ................................................................. |
594 |
ВІДПОВІДІ ТА ВКАЗІВКИ ............................................................... |
597 |
СПИСОК ЛІТЕРАТУРИ ..................................................................... |
602 |
ПРЕДМЕТНИЙ ПОКАЖЧИК............................................................ |
608 |
624