Алгоритмізація та програмування. Частина 1

Автор(и): 
Ришковець Ю.В., Висоцька В.А.
Тип видання: 
навчальний посібник
Анотація: 

Навчальний посібник містить матеріал для вивчення основних теоретичних засад, функціональних можливостей та практичного застосування теорії алгоритмів та основ програмування, розроблення прикладних засобів та інформаційних систем аналізу та опрацювання інформації за допомогою алгоритмів. Теоретичний та практичний матеріал викладено у доступній  формі. Викладення матеріалу супроводжується значною кількістю прикладів, що полегшує його сприйняття та засвоєння. Подається перелік питань та тестів для самоконтролю, а також завдань для самостійного виконання трьох рівнів складності. Навчальний посібник призначається для студентів, що навчаються за спеціальностями 122 «Комп’ютерні науки», 124 «Системний аналіз», 126 «Інформаційні системи та технології» та споріднених спеціальностей, які пов’язані з інформатикою та інформаційними технологіями. Він може бути використаний аспірантами як підґрунтя для наукових досліджень та викладачами як дидактичний матеріал, а також для самостійного вивчення. Книга призначена для спеціалістів із проектування, розроблення та впровадження інтелектуальних систем опрацювання інформаційних ресурсів, науковців у галузі глобальних інформаційних системи, систем штучного інтелекту, Інтернет-технологій, фахівців з електронної комерції, Інтернет-  маркетингу та Інтернет-реклами, менеджерів комплексних Web-проектів, а також для здобувачів 3-ого (освітньо-наукового) рівня вищої освіти в галузі знань 12 «Інформаційні технології». Кожний розділ закінчується переліком питань для самоконтролю, прикладом тестових питань з відповідями та переліком індивідуальних завдань для виконання лабораторних робіт.

Зміст: 

Вступ ............................................................................................................................................. 7
Розділ 1. Вступ до програмування .......................................................................................... 12
1.1. Архітектура комп’ютерів .............................................................................................. 12
1.2. Архітектурні принципи Джона фон Неймана............................................................... 15
1.3. Машинні та високорівневі мови програмування.......................................................... 17
1.4. Парадигми програмування ............................................................................................ 18
1.4.1. Системне програмування ....................................................................................... 18
1.4.2. Структурне та процедурне програмування ........................................................... 19
1.4.3. Модульне та об’єктно-орієнтоване програмування.............................................. 19
1.4.4. Функційне програмування ..................................................................................... 20
1.5. Системи числення.......................................................................................................... 21
1.5.1. Позиційні системи числення.................................................................................. 22
1.5.2. Одиниці виміру інформації.................................................................................... 23
1.5.3. Двійкова система числення.................................................................................... 23
1.5.4. Вісімкова система числення................................................................................... 26
1.5.5. Шістнадцяткова система числення........................................................................ 27
1.5.6. Двійково-вісімкові перетворення .......................................................................... 28
1.5.7. Двійково-шістнадцяткові перетворення................................................................ 29
1.5.8. Вісімково-шістнадцяткові перетворення............................................................... 31
1.6. Основи алгоритмізації ................................................................................................... 32
1.6.1. Поняття алгоритму та способи його подання ....................................................... 32
1.6.2. Властивості та класи алгоритмів ........................................................................... 35
1.7. Питання для самоперевірки........................................................................................... 41
1.8. Тестові завдання ............................................................................................................ 42
1.9. Ключ до тестових завдань ............................................................................................. 43
1.10. Індивідуальні завдання для виконання лабораторних робіт ...................................... 43
Розділ 2. Основні поняття програмування............................................................................ 44
2.1. Історія розвитку мови С................................................................................................. 44
2.2. Структура програми....................................................................................................... 44
2.3. Типи даних ..................................................................................................................... 47
2.4. Змінні.............................................................................................................................. 49
2.5. Константи....................................................................................................................... 52
2.6. Переліки ......................................................................................................................... 56
2.7. Питання для самоперевірки........................................................................................... 57
2.8. Тестові завдання ............................................................................................................ 57
2.9. Ключ до тестових завдань ............................................................................................. 59
2.10. Індивідуальні завдання для виконання лабораторних робіт ...................................... 59
Розділ 3. Базові операції над даними та функції введення-виведення............................... 65
3.1. Операція присвоєння ..................................................................................................... 65
3.2. Арифметичні операції.................................................................................................... 66
3.3. Перетворення типів........................................................................................................ 67
3.3.1. Неявне перетворення типів даних ......................................................................... 68
3.3.2. Явне перетворення типів........................................................................................ 69
3.4. Операції відношень та логічні операції ........................................................................ 70
3.5. Математичні функції ..................................................................................................... 74
3.6. Стандартне введення з клавіатури та виведення даних на екран ................................ 76
3.6.1. Форматне введення-виведення даних.................................................................... 77
3.6.2. Неформатне введення-виведення даних................................................................ 84
3.6.2.1. Введення-виведення символiв ................................................................ 84
3.6.2.2. Введення-виведення рядків символiв..................................................... 86
3.6.3. Потокове введення-виведення даних засобами С++............................................. 87
4
3.7. Питання для самоперевірки........................................................................................... 90
3.8. Тестові завдання ............................................................................................................ 91
3.9. Ключ до тестових завдань ............................................................................................. 92
3.10. Індивідуальні завдання для виконання лабораторних робіт ...................................... 92
Розділ 4. Розгалуження ........................................................................................................... 101
4.1. Поняття розгалуження................................................................................................. 101
4.2. Оператор безумовного переходу................................................................................. 101
4.3. Умовний оператор ....................................................................................................... 102
4.4. Оператор вибору варіантів .......................................................................................... 106
4.5. Питання для самоперевірки......................................................................................... 108
4.6. Тестові завдання .......................................................................................................... 108
4.7. Ключ до тестових завдань ........................................................................................... 114
4.8. Індивідуальні завдання для виконання лабораторних робіт ...................................... 114
Розділ 5. Цикли........................................................................................................................ 122
5.1. Поняття ітерації та циклу ............................................................................................ 122
5.2. Цикл з параметром....................................................................................................... 122
5.3. Цикл з передумовою.................................................................................................... 126
5.4. Цикл з післяумовою..................................................................................................... 128
5.5. Оператори переривання циклів ................................................................................... 130
5.6. Питання для самоперевірки......................................................................................... 132
5.7. Тестові завдання .......................................................................................................... 132
5.8. Ключ до тестових завдань ........................................................................................... 134
5.9. Індивідуальні завдання для виконання лабораторних робіт ...................................... 134
Розділ 6. Вказівники та посилання....................................................................................... 142
6.1. Основні поняття........................................................................................................... 142
6.2. Операції над вказівниками .......................................................................................... 145
6.3. Вказівники на вказівники ............................................................................................ 147
6.4. Питання для самоперевірки......................................................................................... 147
6.5. Тестові завдання .......................................................................................................... 147
6.6. Ключ до тестових завдань ........................................................................................... 148
6.7. Індивідуальні завдання для виконання лабораторних робіт ...................................... 148
Розділ 7. Підпрограми............................................................................................................. 151
7.1. Поняття підпрограми................................................................................................... 151
7.2. Параметри та їх види ................................................................................................... 151
7.3. Статичні змінні ............................................................................................................ 157
7.4. Передавання параметрів функцій................................................................................ 158
7.4.1. Параметри-значення............................................................................................. 158
7.4.2. Параметри-вказівники.......................................................................................... 159
7.4.3. Параметри-посилання .......................................................................................... 159
7.4.4. Параметри зі значеннями за замовчуванням....................................................... 161
7.4.5. Функції як параметри ........................................................................................... 162
7.5. Вбудовані функції........................................................................................................ 163
7.6. Функції зі змінною кількістю параметрів ................................................................... 163
7.7. Питання для самоперевірки......................................................................................... 165
7.8. Тестові завдання .......................................................................................................... 165
7.9. Ключ до тестових завдань ........................................................................................... 168
7.10. Індивідуальні завдання для виконання лабораторних робіт .................................... 168
Розділ 8. Рекурсія .................................................................................................................... 177
8.1. Основні поняття........................................................................................................... 177
8.2. Приклади використання рекурсії ................................................................................ 178
8.3. Питання для самоперевірки......................................................................................... 185
8.4. Тестові завдання .......................................................................................................... 185
5
8.5. Ключ до тестових завдань ........................................................................................... 187
8.6. Індивідуальні завдання для виконання лабораторних робіт ...................................... 187
Розділ 9. Модульне програмування...................................................................................... 199
9.1. Основні поняття........................................................................................................... 199
9.2. Включення файлів ....................................................................................................... 200
9.3. Проблема повторного включення ............................................................................... 201
9.4. Умовна компіляція....................................................................................................... 202
9.5. Зовнішні змінні ............................................................................................................ 203
9.6. Питання для самоперевірки......................................................................................... 206
9.7. Тестові завдання .......................................................................................................... 207
9.8. Ключ до тестових завдань ........................................................................................... 207
9.9. Індивідуальні завдання для виконання лабораторних робіт ...................................... 208
Розділ 10. Масиви.................................................................................................................... 215
10.1. Поняття масиву .......................................................................................................... 215
10.2. Одновимірні масиви .................................................................................................. 215
10.2.1. Оголошення одновимірних масивів................................................................... 215
10.2.2. Операції із вказівниками на масиви................................................................... 218
10.2.3. Введення-виведення одновимірних масивів ..................................................... 218
10.3. Багатовимірні масиви ................................................................................................ 219
10.3.1. Двовимірні масиви ............................................................................................. 219
10.3.1.1. Оголошення двовимірних масивів...................................................... 219
10.3.1.2. Введення-виведення двовимірних масивів ........................................ 221
10.3.2. Тривимірні масиви ............................................................................................. 222
10.4. Опрацювання масивів у функціях ............................................................................. 223
10.4.1. Передавання параметрів у функцію................................................................... 223
10.4.2. Повернення масиву як результату функції........................................................ 228
10.5. Питання для самоперевірки....................................................................................... 230
10.6. Тестові завдання......................................................................................................... 230
10.7. Ключ до тестових завдань ......................................................................................... 231
10.8. Індивідуальні завдання для виконання лабораторних робіт .................................... 231
Розділ 11. Динамічна пам’ять................................................................................................ 248
11.1. Загальні поняття......................................................................................................... 248
11.2. Функції для роботи з динамічною пам’яттю ............................................................ 248
11.3. Динамічні одновимірні масиви ................................................................................. 250
11.3.1. Оголошення динамічного одновимірного масиву ............................................ 250
11.3.1.1. Використання функції malloc.............................................................. 250
11.3.1.2. Використання функції calloc............................................................... 251
11.3.1.3. Використання оператора new.............................................................. 252
11.4. Динамічні двовимірні масиви.................................................................................... 254
11.4.1. Динамічний двовимірний масив як одновимірний ........................................... 254
11.4.2. Динамічний двовимірний масив як двовимірний ............................................. 256
11.5. Опрацювання динамічних масивів у функціях......................................................... 257
11.6. Питання для самоперевірки....................................................................................... 261
11.7. Тестові завдання......................................................................................................... 261
11.8. Ключ до тестових завдань ......................................................................................... 261
11.9. Індивідуальні завдання для виконання лабораторних робіт .................................... 262
Розділ 12. Символьні рядки................................................................................................... 274
12.1. Символьний тип......................................................................................................... 274
12.1.1. Коди символів..................................................................................................... 274
12.1.2. Функції для роботи з символами ....................................................................... 276
12.2. Рядки символів........................................................................................................... 278
12.2.1. Оголошення та визначення символьних рядків ................................................ 278
6
12.2.2. Масиви символьних рядків ................................................................................ 280
12.2.3. Функції для роботи з рядками символів ............................................................ 281
12.3. Опрацювання символьних рядків у функціях........................................................... 284
12.4. Питання для самоперевірки....................................................................................... 287
12.5. Тестові завдання......................................................................................................... 287
12.6. Ключ до тестових завдань ......................................................................................... 288
12.7. Індивідуальні завдання для виконання лабораторних робіт .................................... 288
Розділ 13. Комбіновані типи .................................................................................................. 295
13.1. Структури................................................................................................................... 295
13.1.1. Визначення структурного типу.......................................................................... 295
13.1.2. Оголошення структур......................................................................................... 295
13.1.3. Розподіл пам’яті для структур ........................................................................... 297
13.1.4. Операції над структурою ................................................................................... 297
13.1.5. Опрацювання структур у функціях.................................................................... 300
13.2. Бітові поля.................................................................................................................. 300
13.3. Об’єднання ................................................................................................................. 301
13.4. Питання для самоперевірки....................................................................................... 302
13.5. Тестові завдання......................................................................................................... 303
13.6. Ключ до тестових завдань ......................................................................................... 304
13.7. Індивідуальні завдання для виконання лабораторних робіт .................................... 304
Розділ 14. Файли...................................................................................................................... 312
14.1. Загальні поняття......................................................................................................... 312
14.2. Функції для роботи з файлами .................................................................................. 313
14.2.1. Відкриття файлу ................................................................................................. 314
14.2.2. Закриття файлу ................................................................................................... 315
14.2.3. Перевірка файлової операції .............................................................................. 315
14.2.4. Примусовий запис потоку.................................................................................. 316
14.2.5. Стандартні потоки .............................................................................................. 316
14.2.6. Переспрямування потоків .................................................................................. 316
14.2.7. Встановлення вказівника на початок файлу...................................................... 316
14.2.8. Перевірка кінця файлу........................................................................................ 317
14.3. Текстові файли ........................................................................................................... 317
14.3.1. Форматне введення-виведення .......................................................................... 317
14.3.2. Введення-виведення символів ........................................................................... 318
14.3.3. Введення-виведення рядків символів ................................................................ 320
14.4. Двійкові файли........................................................................................................... 321
14.4.1. Загальні поняття ................................................................................................. 321
14.4.2. Введення-виведення даних ................................................................................ 321
14.4.3. Файли структур................................................................................................... 323
14.5. Переміщення по файлу .............................................................................................. 324
14.6. Питання для самоперевірки....................................................................................... 325
14.7. Тестові завдання......................................................................................................... 325
14.8. Ключ до тестових завдань ......................................................................................... 326
14.9. Індивідуальні завдання для виконання лабораторних робіт .................................... 326
Список використаних джерел ............................................................................................... 332
 

Вступ: 

Термін “інформація” походить від латинського слова “informatio” –
виклад, роз`яснення фактів, подій. Тому, в найширшому розумінні інформація
трактується як відомості, пояснення, знання про об’єкти, явища та процеси
реального світу. Основна маса інформації збирається, передається та
опрацьовується у знаковій формі – числовій, текстовій, табличній, графічній і
т.ін. Знакове подання інформації інформатика пов’язує з поняттям “дані”. Дані
– це відомості, подані у певній знаковій формі, придатній для передавання,
інтерпретації та опрацювання людиною або автоматичним пристроєм.
Взаємозв’язок між інформацією, даними і методами оперування ними
характеризується низкою властивостей. Інформація має динамічний характер.
Вона не є статичним об’єктом, а динамічно змінюється й існує тільки у момент
взаємодії даних і методів, тобто в момент протікання інформаційного процесу.
Весь інший час вона перебуває у стані даних. Зв’язок даних і методів носить
діалектичний характер. Дані є об’єктивними, коли вони виникають у результаті
реєстрації об’єктивно існуючих сигналів, викликаних змінами в матеріальних
тілах або полях. У той же час, методи оперування даними в інформаційних
процесах є суб’єктивними. Дійсно, інформаційний процес здійснюється за
допомогою штучних або природних методів, в основі штучних методів лежать
алгоритми, складені і підготовлені людьми (суб’єктами), в основі природних –
біологічні властивості суб’єктів інформаційного процесу. Дані надають
інформацію лише в момент їх використання. Це означає, що дані, які
зберігаються, залишаються лише даними, поки їх не використано в тих чи
інших методах деяким суб’єктом інформаційного процесу (людиною або
автоматичним пристроєм). Якщо дані зовсім не використовуються, то говорять,
що вони мають нульову інформативність, і вважають такі дані інформаційним
шумом. Дані, що використовуються, називають інформативними. Рівень
інформативності даних залежить від ступеня адекватності методів, що
застосовуються в інформаційних процесах. Дані сприймаються їх отримувачем
як певна змістовна інформація лише в тому випадку, коли в його “пам’яті”
закладені поняття і моделі, що дають змогу зрозуміти зміст отриманих
відомостей. Коли дані опрацьовуються певними методами або евристиками, то
на їх основі можна встановити залежності, послідовності чи висновки, які
дають змогу здійснити підтримку процесу прийняття рішення.
Основними в інформатиці є три поняття: задача, алгоритм, програма.
Відповідно, маємо три етапи в розв’язуванні задач (зазначимо, що, з точки зору
інформатики, розв’язати задачу – це отримати програму, тобто, забезпечити
можливість отримати рішення за допомогою комп’ютера): постановка задачі,
побудова і обґрунтування алгоритму, складання і налагодження програми.
Оскільки програма – об’єкт гранично формальний, а тому точний (можливо не
завжди прозорий, навантажений неістотними із змістовної точки зору деталями,
але недвозначний) то, пов’язані з нею об’єкти також мають бути точними.
Поняття алгоритму інтуїтивно зрозуміле і часто використовується в математиці
та інформаційних технологіях, зокрема в комп’ютерних науках, системному
8
аналізі та розробленні інформаційних систем.
Термін “алгоритм” походить із давніх-давен. Понад тисячу років тому у
Багдаді жив Абу Джафар Мухамад ібн Муса аль-Хорезмі, який у своїй праці
“Трактат аль-Хорезмі про арифметичне мистецтво індусів” з арифметики та
алгебри сформулював правила і окреслив послідовність дій при додаванні та
множенні чисел. При переведенні латиною ім’я автора трансформувалося в
Algorithmi, а з часом методи розв’язування задач стали називати алгоритмами.
Алгоритм – це система формальних правил, які чітко та однозначно
визначають послідовність дій обчислювального процесу від початкових даних
до шуканого результату. Алгоритм визначає певні правила перетворювання
інформації, тобто визначає певну послідовність операцій опрацювання даних
для отримання розв’язку задачі. Також кажуть, що алгоритм – це скінченна
послідовність команд, які потрібно виконати над вхідними даними для
отримання результату.
Побудова алгоритму за точною постановкою задачі дає змогу
обґрунтувати його математичними методами. Більше того, існують класи задач,
які забезпечують формальне перетворення специфікації в алгоритм. Суттєво,
що, порівняно з програмою, алгоритм може перебувати на вищому рівні
абстракції, бути вільним від певних деталей реалізації, пов’язаних із
особливостями мови програмування та конкретної обчислювальної системи.
Засоби для зображення алгоритмів називають алгоритмічною мовою. При
цьому жодна мова програмування не може цілком замінити алгоритмічну мову,
оскільки консервативна за своєю суттю. Модифікація мови програмування
призводить до небажаних наслідків: вимагає перероблення системи
програмування, знецінює напрацьоване програмне забезпечення. У той же час
алгоритмічна мова може створюватись спеціально для певної предметної
області, певного класу задач або навіть окремої задачі.
У цьому посібнику розглядається одна з найбільш розповсюджених мов
програмування – мова С. Створена 1972 року як мова для системного
програмування, вона отримала широке поширення у всьому світі. Сьогодні
вона має багатьох наступників серед мов програмування: C++, Java, C# тощо.
Навчальний посібник містить матеріал для вивчення основних
теоретичних засад, функціональних можливостей та практичного застосування
теорії алгоритмів та основ програмування, розроблення прикладних засобів та
інформаційних систем аналізу та опрацювання інформації за допомогою
алгоритмів. Викладення матеріалу супроводжується значною кількістю
прикладів, що полегшує його сприйняття та засвоєння. Навчальний посібник
призначається для студентів, що навчаються за спеціальностями 122
«Комп’ютерні науки», 124 «Системний аналіз» та 126 «Інформаційні системи
та технології» і споріднених спеціальностей, які пов’язані з вивченням
чисельних методів в інформатиці та інформаційних технологій. Може бути
використаний аспірантами як підґрунтя для наукових досліджень та
викладачами як дидактичний матеріал, а також для самостійного вивчення та
підвищення кваліфікації. Книга призначена для спеціалістів із проектування,
розроблення та впровадження інтелектуальних систем опрацювання
9
інформаційних ресурсів, науковців у галузі глобальних інформаційних системи,
систем штучного інтелекту, Інтернет-технологій, фахівців з електронної
комерції, Інтернет-маркетингу та Інтернет-реклами, менеджерів комплексних
Web-проектів, а також для здобувачів 3-го (освітньо-наукового) рівня вищої
освіти в галузі знань 12 «Інформаційні технології». Кожний розділ закінчується
переліком питань для самоконтролю, прикладом тестових питань з відповідями
до екзаменаційних білетів та переліком індивідуальних завдань для виконання
лабораторних робіт.
Навчальний посібник складається з двої частина Перша чатисна
присвячена програмуванню на мові С. Розділ 1 першої частини присвячений
елементам обчислювальних машин та описує архітектуру комп’ютерів.
Детально пояснені архітектурні принципи Джона фон Неймана та позиційні
системи числення (двійкова, вісімкова, шістнадцяткова система числення, та
взаємозв’язок між ними). Розкрито поняття алгоритму та способи його подання.
Описані машинні та високорівневі мови програмування. Розділ 2 знайомить з
історією розвитку мови С та з основними засадами програмування, зокрема
такими як алфавіт мови С, структура програми, типи даних, змінні та
константи. Розділ 3 присвячений основним операціям в мові С (операції
присвоєння, арифметичним операціям, операціям перетворення типів,
операціям відношень та логічним операціям). Також тут розглядається
введення і виведення даних. У розділі 4 розглянуто поняття розгалуження,
описані оператори безумовного та умовного переходів, а також оператор
вибору варіантів. Поняття ітерації та циклу описані в розділі 5. Зокрема тут
розглядаються цикли з параметром, передумовою, післяумовою та оператори
переривання циклів. Вказівники та посилання подані у розділі 6.
Розділ 7 присвячений створенню підпрограм, в якому описано поняття
підпрограми, параметри та їх види, статичні змінні, передавання параметрів
функцій (параметри-значення, параметри-вказівники, параметри-посилання,
параметри зі значеннями за замовчуванням, імена функцій як параметри),
вбудовані функції та функції зі змінною кількістю параметрів. У розділі 8
визначено поняття рекурсії та рекурентних співвідношень. Розділ 9
присвячений модульному програмуванню. Тут описано основні поняття
модульного програмування, використання користувацьких файлів, проблема
подвійного включення, та умовна компіляція. Розділ 10 знайомить із поняттям
масиву. Розглянуто одновимірні масиви (оголошення одновимірних масивів,
операції над вказівниками на масиви, введення-виведення одновимірних
масивів) і багатовимірні масиви (двовимірні та тривимірні масиви), а також
опрацювання масивів у функціях. В розділі 11 описані загальні поняття
динамічної пам’яті, функції для роботи з динамічною пам’яттю, динамічні
одновимірні і двовимірні масиви та їх опрацювання у функціях. Розділ 12
описує особливості роботи із символьними рядками. Детально описано поняття
символьного типу (коди символів, опрацювання символів, введення та
виведення символів), а також рядків символів (оголошення рядків, введення-
виведення рядків та їх опрацювання). Розглядається опрацювання символьних
рядків у функціях. Розділ 13 присвячений комбінованим типам, зокрема,
10
структурам (визначення структурного типу, його оголошення та операції над
ними), опрацюванню структур у функціях та бітовим полям. Файли детально
описані в розділі 14, а саме загальні поняття, потоки та файли, додаткові
можливості опрацювання файлів, текстові та бінарні файли.
Друга частина навчального посібника акцентує увагу на алгоритміації.
Розділ 1 другої частини присвячений динамічним структурам даних та
алгоритмам їх опрацювання, тобто спискам, чергам, стекам та бінарним
деревам. У розділі 2 описана загальна класифікація алгоритмів пошуку та
основні відомі алгоритми пошуку такі як лінійний, двійковий (бінарний) пошук
елемента в масиві, методом Фібоначчі, інтерполяційний пошук, бінарний
пошук із визначенням найближчих вузлів. Розділ 3 містить опис основних
алгоритмів сортування – сортування обміном (метод бульбашки), вставкою
(включенням), прямим вибором та швидке (метод Хоара) сортування.
Приділена увага сортуванню включенням зі спадним приростом (метод Шелла),
сортуванню за допомогою дерева (пірамідальне сортування) та сортуванню
злиттям. Розділ 4 присвячений нелінійним структурам даних та алгоритмам їх
опрацювання.
Автори цього навчального посібника висловлюють щиру подяку
фахівцям в галузі знань 12 “Інформаційні технології” за плідну співпрацю,
вагомі поради та слушні зауваження при формуванні структури книги та її
наповнення. Зокрема, дякуємо за підтримку:
Гожому О.П. – доктору технічних наук, професору кафедри комп’ютерної
інженерії Чорноморського національного університету імені Петра
Могили;
Голощуку Р.О. – кандидату технічних наук, доценту кафедри соціальних
комунікацій та інформаційної діяльності Інституту гуманітарних та
соціальних наук Національного університету «Львівська політехніка»;
Григоровичу В.Г. – кандидату технічних наук, доценту кафедри
інформаційних систем і технологій Дрогобицького державного
педагогічного університету імені Івана Франка;
Кравцю П.О. – кандидату технічних наук, доценту кафедри інформаційних
систем та мереж Національного університету «Львівська політехніка»;
Литвиненку В.І. – доктору технічних наук, професору, завідувачу кафедри
інформатики і комп’ютерних наук Херсонського технічного
університету;
Литвину В.В. – доктору технічних наук, професору, завідувачу кафедри
інформаційних систем та мереж Національного університету «Львівська
політехніка»;
Марікуці У.Б. – кандидату технічних наук, доценту кафедри систем
автоматизованого проектування, декану базової вищої освіти, заступник
директора інституту комп’ютерних наук та інформаційних технологій
Національного університету «Львівська політехніка»;
Бісікалу О.В. – доктору технічних наук, професору, завідувачу кафедри
автоматики та інформаційно-вимірювальної техніки Вінницького
національного технічного університету;
11
Шароновій Н.В. – доктору технічних наук, професору, завідувачу кафедри
інтелектуальних комп’ютерних систем Національного технічного
університету «ХПІ»;
Шаховській Н.Б. – доктору технічних наук, професору, завідувачу кафедри
систем штучного інтелекту Національного університету «Львівська
політехніка»;
Шпак З.Я. – кандидату технічних наук, доценту кафедри автоматизованих
систем управління Національного університету «Львівська політехніка».

Кількість сторінок: 
337
Видавництво: 
«Новий світ – 2000»
Рік: 
2018
Бібліографічний опис: 
Ришковець Ю.В., Висоцька В.А. Алгоритмізація та програмування. Частина 1: Навчальний посібник. – Львів: «Новий Світ - 200», 2018. – 337 с. – ISBN 978-617-7519-19-4.