Ковалюк Т. В. Алгоритмізація та програмування : підручник / Т. В. Ковалюк. — Львів : Магнолія 2006, 2018. — 400 с. — (Комп'ютинг). Стислий зміст Передмова.......................................................................................................................... 10 ЧАСТИНА 1 ОСНОВИ ПРОЦЕДУРНОГО ПРОГРАМУВАННЯ Розділ 1. Основні поняття та означення.......................................................................12 Розділ 2. Елементи мови С/С++....................................................................................48 Розділ 3. Керування порядком обчислень....................................................................95 Розділ 4. Процедурно-орієнтоване програмування...................................................125 Розділ 5. Покажчики та посилання............................................................................. 167 Розділ 6. Методології розробки програм.................................................................... 191 ЧАСТИНА 2 СТРУКТУРИ ДАНИХ ТА АЛГОРИТМИ Розділ 7. Масиви..............................................................................................................216 Розділ 8. Рядки.................................................................................................................263 Розділ 9. Структури та об’єднання..................................................................................281 Розділ 10. Файлові структури даних................................................................................300 Розділ 11. Динамічні структури даних.............................................................................328 Розділ 12. Алгоритми на графах..................................................................................... 371 Задачі підвищеної складності...........................................................................................387 Література......................................................................................................................... 394 Алфавітний покажчик.......................................................................................................396 ЗМІСТ Передмова..........................................................................................................................10 ЧАСТИНА 1 ОСНОВИ ПРОЦЕДУРНОГО ПРОГРАМУВАННЯ Розділ 1. Основні поняття та означення............................................................................12 1.1. Поняття архітектури комп’ютера.................................................................................12 1.1.1. Принцип використання двійкової системи числення............................................. 13 1.1.2. Принцип програмного керування роботою комп ’ютера..........................................13 1.1.3. Принцип збереження програм у пай 'яті комп ’ютера...............................................14 1.1.4. Принцип адресності пам 'яті.......................................................................................14 1.2. Архітектура комп’ютерів фон Неймана..........................................................................14 1.3. Архітектура системи команд............................................................................................19 1.4. Інформація в пам’яті комп’ютера......................................................................................21 1.4.1. Позиційні системи числення...........................................................................................21 1.4.2. Зображення чисел у комп ’ютері.....................................................................................26 1.5. Типи комп’ютерів.................................................................................................................31 1.6. Програмне забезпечення....................................................................................................33 1.7. Засоби створення програм..................................................................................................35 /. 7.1. Класифікація мов програмування.....................................................................................35 /. 7.2. Технологія створення програми.........................................................................................36 1 З. Перетворення програми і система програмування.............................................................37 /. 7.4. Походження та розвиток мов С і C++..................................................................................39 1.8. Поняття алгоритму й основні алгоритмічні структури...........................................................40 1.8.1. Властивості та способи опису алгоритму............................................................................41 1.8.2. Алгоритмічна структура розгалуження................................................................................42 1.8.3. Алгоритмічна структура повторення.....................................................................................42 Висновки............................................................................................................................................44 Контрольні запитання та завдання..................................................................................................45 Вправи................................................................................................................................................46 Розділ 2. Елементи мови C/C++...................................................................................................... 48 2.1. Робота у середовищі Visual Studio .NET...................................................................................48 2. /. І. Склад системи та команди меню ..........................................................................................48 2.1.2. Створення та виконання найпростішої програми.................................................................52 2.1.3. Налагодження програм............................................................................................................56 2.2. Словник мови та загальна структура програми.......................................................................57 2.2.1. Алфавіт і словник мови......................................................................................................... 57 2.2.2. Структура програми.............................................................................................................. 59 2.3. Прості типи даних......................................................................................................................62 2.3.1. Операції над даними..............................................................................................................63 2.3.2. Цілочислові типи................................................................................................................... 63 2.3.3. Дійсні типи............................................................................................................................. 66 2.3.4. Булів тип.................................................................................................................................67 2.3.5. Символьний тип.....................................................................................................................67 2.3.6. Перечічуваний тип................................................................................................................ 68 2.4. Константи, змінні, вирази.........................................................................................................69 2.4.1. Різновиди констант.................................................................................................................69 2.4.2. Змінні.......................................................................................................................................71 2.4.3. Вирази..................................................................................................................................... 73 2.5. Операції присвоєння та функції введення-виведення........................................................... 77 2.5.1. Операція присвоєння............................................................................................................. 77 2.5.2. Основи введення-виведення в C/C++ .................................................................................79 2.5.3. Потокові функції введення-виведення.................................................................................80 .5.4. Консольні функції введення-виведення................................................................................84 2.5.5. Підсистема введення-виведення в C++ ............................................................................. 85 2.5.6. Сумісність типів...................................................................................................................88 Висновки........................................................................................................................................90 Контрольні запитання та завдання...............................................................................................91 Вправи..............................................................................................................................................92 Розділ 3. Керування порядком обчислень......................................................................................95 3.1. Алгоритмічний вибір альтернатив............................................................................................95 3.1.1. Вибір із двох альтернатив..................................................................................................... 95 3.1.2. Вкладеність конструкцій вибору...............................................................................................96 3.1.3. Операторний блок.................................................................................................................99 3.1.4. Поліваріантний вибір .........................................................................................................102 3.2. Алгоритмічна конструкція повторення.....................................................................................104 3.2.1. Цикл з передумовою............................................................................................................ 104 3.2.2. Цикл з постумовою............................................................................................................. 107 3.2.3. Цикл з лічильником..............................................................................................................109 3.2.4. Переривання циклу.............................................................................................................. 112 3.3. Деякі циклічні алгоритми та програми..................................................................................... 113 3.3.1. Рекурентні послідовності та співвідношення........................................................................ 113 3.3.2. Степеневі ряди.................................................................................................................... 115 3.3.3. Ланцюгові дроби.................................................................................................................. 117 Висновки...................................................................................................................................120 Контрольні запитання та завдання.........................................................................................121 Вправи......................................................................................................................................121 Задачі.......................................................................................................................................122 Розділ 4. Процедурно-орієнтоване програмування..............................................................125 4.1. Підпрограми, їх різновиди та способи використання....................................................125 4.1.1. Функції користувача.....................................................................................................126 4.1.2. Прототипи функцій ......................................................................................................137 4.1.3. Функції з аргументами за замовчуванням..................................................................138 4.1.4. Стандартні функції.......................................................................................................140 4.1.5. Локалізація імен..........................................................................................................142 4.1.6. Класи пам яті..............................................................................................................144 4.1.7. Різновиди параметрів................................................................................................145 4.1.8. Процес виклику підпрограми. Програмний стек.......................................................146 4.2. Додаткові можливості функцій в C++...........................................................................148 4.2.1. Перевантаження функцій...........................................................................................148 4.2.2. Вбудовані функції.......................................................................................................150 4.2.3. Шаблони функцій.......................................................................................................151 4.3. Рекурсія.........................................................................................................................154 4.3.1. Рекурсивні означення та функції.............................................................................154 4.3.2. Приклади рекурсивних програм..............................................................................157 Висновки..............................................................................................................................161 Контрольні запитання та завдання....................................................................................163 Вправи..................................................................................................................................164 Задачі...................................................................................................................................165 Розділ 5. Покажчики та посилання.....................................................................................167 5.1. Поняття посилальних типів даних...............................................................................167 5.2. Оголошення та ініціалізація змінних посилальних типів............................................168 5.3. Операції над покажчиками...........................................................................................170 5.4. Покажчики на тип void..................................................................................................172 5.5. Покажчики та функції ...................................................................................................174 5.5.1. Покажчики на функції.................................................................................................174 5.5.2. Покажчики та посилання як параметри функції.......................................................176 5.5.3. Застосування специфікатора const з покажчиками та посиланнями ....................178 5.5.4. Функції, що повертають покажчики та постання.......................................................182 5.6. Покажчики на покажчики................................................................................................185 Висновки.................................................................................. ..............................................187 Контрольні запитання та завдання......................................................................................188 Вправи...................................................................................................................................188 Задачі.....................................................................................................................................189 Розділ 6. Методології розробки програм.............................................................................191 6.1. Теорія і методи структурного програмування..............................................................191 6.1.1. Низхідне проектування програм.................................................................................191 6.1.2. Модульне програмування ...........................................................................................192 6.1.3. Методи структурування програм..................................................................................193 6.2. Багатофайлові програми у C++.......................................................................................198 6.2.1. Міжфайлова взаємодія..................................................................................................199 6.2.2. Заголовні файли..............................................................................................................202 6.2.3. Компіляція і компонування багатофайчових програм...................................................205 6.3. Основні концепції об’єктно-орієнтованої методології програмування............................206 6.3.1. Базові поняття об’єктно-орієнтованого програмування................................................206 6.3.2. Класи і об’єкти в мові C++..............................................................................................207 Висновки....................................................................................................................................210 Контрольні запитання та завдання...........................................................................................212 Вправи.........................................................................................................................................212 ЧАСТИНА 2 СТРУКТУРИ ДАНИХ ТА АЛГОРИТМИ Розділ 7. Масиви....................................:....................................................................................216 7.1. Одновимірні масиви............................................................................................................216 7.1.1. Поняття масиву та його властивості...............................................................................216 7.1.2. Базові операції обробки одновимірних масивів.............................................................218 7.1.3. Сортування масиву...........................................................................................................231 7.1.4. Масиви як параметри.......................................................................................................240 7.1.5. Покажчики та масиви........................................................................................................244 7.2. Багатовимірні масиви ...........................................................................................................246 7.2.1. Оголошення багатовимірних масивів. Доступ до елементів...........................................246 7.2.2. Базові операції обробки двовимірних масивів.................................................................248 7.2.3. Двовимірні масиви в задачах лінійної алгебри................................................................252 Висновки.......................................................................................................................................258 Контрольні запитання та завдання.............................................................................................259 Вправи...........................................................................................................................................259 Задачі............................................................................................................................................260 Розділ 8. Рядки.............................................................................................................................263 8.1. Рядки......................................................................................................................................263 8.1.1. Поняття рядка та оголошення змінних рядкового типу....................................................263 8.1.2. Рядкові константи та ініціалізація рядків..........................................................................265 8.1.3. Масиви рядків.....................................................................................................................265 8.2. Функції обробки рядків..........................................................................................................266 8.2.1. Уведення та виведення рядків......................................................................................... 266 8.2.2. Визначення довжини рядка............................................................................................. 267 8.2.3. Копіювання рядків.............................................................................................................267 8.2.4. Порівняння рядків............................................................................................................ 268 8.2.5. Об’єднання рядків.............................................................................................................269 8.2.6. Пошук елементів рядка.................................................................................................... 271 8.2.7. Розкладання рядка на лексеми........................................................................................272 8.2.8. Перетворення рядків.........................................................................................................274 8.3. Масиви покажчиків................................................................................................................276 Висновки........................................................................................................................................278 Контрольні запитання та завдання..............................................................................................279 Вправи............................................................................................................................................279 Задачі.............................................................................................................................................279 Розділ 9. Структури та об’єднання...............................................................................................281 9.1. Структури................................................................................................................................281 9.1.1. Структура та її оголошення ...............................................................................................281 9.1.2. Доступ до полів та операції над структурами...................................................................283 9.1.3. Масиви структур.................................................................................................................285 9.1.4. Функції та структури...........................................................................................................289 9.2. Об’єднання ............................................................................................................................293 Висновки........................................................................................................................................297 Контрольні запитання та завдання..............................................................................................297 Вправи...........................................................................................................................................298 Задачі.............................................................................................................................................299 Розділ 10. Файлові структури даних............................................................................................300 10.1. Фізичний і логічний файли...................................................................................................300 10.2. Технологія роботи з файлами..............................................................................................301 10.2.1. Типи файлів і оголошення файлових змінних..................................................................301 10.2.2. Відкриття та закриття файлів............................................................................................302 10.2.3. Зчитування і запис текстових файлів...............................................................................304 10.2.4. Послідовний запис і зчитування компонентів бінарних файлів......................................312 10.2.5. Прямий доступ до компонентів бінарних файіів...............................................................315 10.2.6. Системні операції з файлами.............................................................................................320 10.3. Буферизація даних ................................................................................................................320 Висновки...........................................................................................................................................324 Контрольні запитання та завдання................................................................................................325 Вправи.............................................................................................................................................325 Задачі..............................................................................................................................................326 Розділ 11. Динамічні структури даних..........................................................................................328 11.1. Динамічні змінні та динамічна пам’ять................................................................................328 11.1.1. Розподіл оперативної пай 'яті.............................................................................................328 11.1.2. Виділення та звільнення динамічної пам ’яті....................................................................330 11.2. Спискові структури даних.......................................................................................................332 11.2.1. Визначення лінійного списку та його різновидів.................................................................332 11.2.2. Робота зі стеком .................................................................................................................. 334 11.2.3. Робота з чергою......................................................................................................................337 11.2.4. Робота з лінійним списком.................................................................................................... 340 11.3. Дерева........................................................................................................................................346 11.3.1. Основні поняття ......................................................................................................................346 11.3.2. Алгоритми роботи з бінарними деревами..............................................................................347 11.4. Масиви в динамічній пам’яті.......................................................................................................364 Висновки............................................................................................................................................... 366 Контрольні запитання та завдання..................................................................................................... 368 Вправи....................................................................................................................................................368 Задачі..................................................................................................................................................... 369 Розділ 12. Алгоритми на графах............................................................................................................371 12.1. Поняття графа та його зображення в пам’яті комп’ютера...........................................................371 12.2. Найкоротші шляхи у графі............................................................................................................. 373 12.3. Обхід графу......................................................................................................................................377 12.3.1. Пошук вглибину.............................................................................................................................377 12.3.2. Пошук ушир....................................................................................................................................381 Висновки.....................................................................................................................................................385 Контрольні запитання та завдання............................................................................................................385 Задачі...........................................................................................................................................................386 Задачі підвищеної складності.....................................................................................................................387 Література................................................................................................................................................... 394 Алфавітний покажчик..................................................................................................................................396 Анотація: У підручнику розглядаються основні поняття алгоритмізації: поняття та властивості алгоритмів, базові алгоритмічні структури, типи алгоритмів, структури даних. У підручнику розв’язана велика кількість різноманітних задач з обробки масивів, рядків, структур, файлів і списків. Велика увага приділяється важливим алгоритмам матричної та векторної алгебри, обробці динамічних структур даних і обчисленням на графах. Подані програмні реалізації типових класичних алгоритмів сортування та пошуку. Усі коди супроводжуються детальними коментарями, описом алго- ритмів та застосованої техніки програмування. Окремий розділ книги присвячено теоретичним засадам структурного програмування. Як робоча мова програмування у підручнику використовуються мови С/С++. Підручник призначений для студентів вищих навчальних закладів, які навчаються за напрямами підготовки «Комп’ютерні науки», «Комп’ютерна інженерія», «Програмна інженерія» і вивчають сучасні інформаційні технології в рамках дисциплін «Алгоритмізація та програмування», «Основи програмування та алгоритмічні мови», а також для викладачів зазначених дисциплін. ISBN: 9786175740699 Subjects--Topical Terms: 004 Комп'ютерна наука і технологія. Застосування комп'ютера. Оброблення даних Universal Decimal Class. No.: 004.421(075,8)