Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зубенко, Омельчук - Програмування. Поглиблений курс

.pdf
Скачиваний:
51
Добавлен:
07.03.2016
Размер:
4.72 Mб
Скачать

 

ЗМІСТ

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]