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

Similar documents
Problem A. Nanoassembly

Programming the Microchip Pic 16f84a Microcontroller As a Signal Generator Frequencies in Railway Automation

The European Ombudsman

THE INFORMATISATION OF PUBLIC ADMINISTRATION

Russian Introductory Course

COMPLIANCE OF MANAGEMENT ACCOUNTING WHEN USING INFORMATION TECHNOLOGIES

UNDERGRADUATE STUDY SKILLS GUIDE

IС A A RT Proceedings Volume 2. 5th International Conference on Agents and Artificial Intelligence. Barcelona, Spain February, 2013

The course of understanding British and American prose and poetry by future managers

Nataliia ZARUDNA MODERN REQUIREMENTS FOR ACCOUNTING MANAGEMENT FOR PROVISION PROCESS

THE INFLUENCE OF POLITICAL ADVERTISING ON STUDENTS PREFERENCES AND THEIR POLITICAL CHOICE

SOCIAL-MEDIA PLATFORMS AND ITS EFFECT ON DIGITAL MARKETING ACTIVITIES

FUNCTIONS OF THE MODAL VERBS IN ENGLISH (MODAL VERBS ANALOGIES IN THE RUSSIAN LANGUAGE) Сompiled by G.V. Kuzmina

ISSN X CODEN (USA): PCHHAX. The study of dissolution kinetics of drugs with riboxinum (inosine)

Odessa National Academy of Telecommunications named after O.S. Popov, Odessa 2

BES-III distributed computing status

MARI-ENGLISH DICTIONARY

Chronic Fatigue Syndrome

АНГЛІЙСЬКА МОВА ДЛЯ ДІЛОВОГО СПІЛКУВАННЯ ENGLISH FOR BUSINESS COMMUNICATION

CONCEPT OF STATE SOVEREIGNTY: MODERN ATTITUDES. Karen Gevorgyan 1

INTEGRATION SDN CONTROLLERS INTO OPENSTACK. EVALUITION OF PERFORMANCE AND RELIABILITY

EFFICIENCY OF SOLAR ROOF WITH TRANSPARENT COVER FOR HEATING SUPPLY OF BUILDINGS

Pipe fittings plant in Kolpino, Leningrad Regions

Value aspects of modern Ukrainian advertising discourses

RISK MANAGEMENT OF LEASING COMPANY

US LIBRARY AND INFORMATION SCHOOLS: TRAINING AND ACCREDITATION ISSUES

DIAGNOSTICS OF AUTOMOBILE POWER SYSTEM VIA INTERNET

The relationship between managers' leadership styles in physical education offices universities and sport volunteers' satisfaction

A. I. KUBARKO, T. G. SEVERINA NORMAL PHYSIOLOGY

Czech Technical University in Prague, Faculty of Transportation Science, Praha, Czech Republic CRISIS MANAGEMENT PRINCIPLES AND COMPETENT CRISIS PLAN

SHORT RUSSIAN PHRASEBOOK FOR ENGLISH-SPEAKING TRAVELERS FREE DOWNLOAD. EDITION 4.0

THE USE OF FACEBOOK FOR MARKETING PURPOSES AMONG SMES AS A MODERN MARKETING METHOD RESEARCH RESULTS FROM POLAND

Activated carbon from cotton waste as an adsorbent in the purification process of azo-dyes

NEW COMPETENCES FOR FUTURE JOURNALISTS: RUSSIAN JOURNALISM EDUCATION EXECUTIVES EVALUATE INDUSTRIAL DEMAND

Futó Z. Károly Róbert College, Fleischmann Rudolf Research Institute

бы appleы х нfi йтхыкы, за шы зхт зт тсыхн, Bayerische Julius- Maximilians UniversitДt, WЭrzburg, бзл с. 2

Functionalized molecules - synthesis, properties and application

A COURSE IN MODERN ENGLISH LEXICOLOGY

LG-Ericsson TSP (ip-ldk, ipecs) User Guide. Issue 4.1Ac

On Supervised and Unsupervised Discretization 1

SYSTEMATIZATION OF ELEMENTS OF THE STRATEGIC ACCOUNTING METHOD

BLAST-FURNACE EQUIPMENT

DECISION SUPPORT SYSTEMS DEVELOPMENT AND BENEFITS OF BUSINESS INTELLIGENCE SYSTEMS USAGE

Joong-Seok Cho 1 THE RELATION BETWEEN ACCOUNTING QUALITY AND SECURITY ANALYSTS' TARGET PRICE FORECAST PERFORMANCE

Aid Resources Management for Economic Reforms in Ukraine

FACTORS INFLUENCING THE FORMATION OF HUMAN RESOURCES

PALAEONTOLOGIA POLQNICA 'Ъ-Ь

RESOURCE-EFFICIENT ALLOCATION HEURISTICS FOR MANAGEMENT OF DATA CENTERS FOR CLOUD COMPUTING

MODUL 3. Current practice of internal medicine. Contents module 3. Theme 11. Management of the patients with hepatic encephalopathy

ІНФОРМАЦІЙНІ СИСТЕМИ І ТЕХНОЛОГІЇ В ЕКОНОМІЦІ. Yuriy Fedkovych Chernivtsi National University, Chernivtsi UKRAINIAN IT-INDUSTRY CHARACTERISTICS

OFFSHORE TERRITORIES: BASIC CONCEPTS OF FUNCTIONING

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ. МІСЬКОГО ГОСПОДАРСТВА імені О. М. БЕКЕТОВА ЗБІРНИК ТЕКСТІВ І ЗАВДАНЬ

Підручник для 3 класу загальноосвітніх навчальних закладів

THE IMPORTANCE OF CROSS-CULTURAL UNDERSTANDING FOR ESL STUDENTS

ENEOLITHIC CERAMIC TABLETS (ALTARS) FROM BULGARIA

E. N. Sokolov's Neural Model of Stimuli as Neuro-cybernetic Approach to Anticipatory Perception

Англійська мова. Підручник для 3 класу спеціалізованих шкіл з поглибленим вивченням англійської мови

About the effect of the contents and ratios of soil s available calcium, potassium and magnesium in liming of acid soils

arxiv: v1 [cond-mat.soft] 8 Mar 2016

VILLAGE TOURISM OF SERBIA

SPECIALISTS TRAINING IN BIG DATA USING DISTRIBUTED ARCHITECTURAL SOLUTIONS SERVICES. Проректор по учебной и воспитательной работе

10gASA2: Oracle Application Server 10g R2: Administration II 10gASA2: Oracle Application Server 10g R2: Administration II

Determination of Free Proteinogenic Amino Acids in Soil Solutions by HPLC with Phenyl Isothiocyanate Derivatization

MERGING SOA AND CLOUD COMPUTING IN ENTERPRISE IT INFRASTRUCTURE

STARTING SYSTEM OPERATION IN THE STARTER-GENERATOR

Industrial Metrology and Interchangeable Manufacturing under the Viewpoint of Nanotechnology and Nanometrology

План урока London sightseeing tour Гуськов Александр Игоревич МАУ СОШ 36

Side reactions of onium coupling reagents BOP and HBTU in the synthesis of silica polymer supports

A COMPARATIVE ANALYSIS DEFINITIONS OF ADMINISTRATIVE LAW

Language Learning Strategies used by Monolingual and Bilingual Students in Transcarpathian Secondary Schools

CL492RU: DB2 9 for LUW Advanced Database Recovery Training CL492RU: DB2 9 for LUW Advanced Database Recovery Training

Jonas Mackevičius, Vladislav Tomaševič* Vilnius University, Lithuania

Vocational Training of Education Administrators under Master s Degree Programs in Ukraine

Requirements of Planning of District Heating Network in Russia

TERMINOLOGY OF KOGNITIVE LINGUISTICS: CONCEPTUAL SYSTEM AND CONCEPTUAL PICTURE OF THE WORLD

BUSINESS COMMUNICATION

PARTNER SEARCH FORM FOR COOPERATION IN TEMPUS IV PROJECT

SYNONYMS. ANTONYMS. HOMONYMS

UKRAINIAN BUSINESS ELECTRICITY MARKET FUNCTIONING AND DEVELOPMENT ENHANCING PROBLEMATIC ASPECTS

AGRITOURISM AS THE BEST FORM OF ENTERPRENEURSHIP IN THE POLISH COUTRYSIDE. Anita Szygula

BASICS OF ENGLISH PHONETICS. (course of lectures)

FOREX NAUTILUS Indicator

Typography & Language

Course Information. 1. Application Guidelines and Regulations. 2. Course Objective. 3. Learning Outcomes

ЖУРНАЛ НАУКОВИЙ ОГЛЯД 3 (24), 2015

Збірник завдань з граматики з англійської мови

ACCOUNTING STUDENTS PERCEPTION OF ETHICAL DILLEMAS IN POLAND

Removing chips is a method for producing plastic threads of small diameters and high batches, which cause frequent failures of thread punches.

Characterization of Nepali Solid-state Lamps

How To Use Anz'S Customer Relationship Management (Crm) System

THE PROCESS OF DEPLOYMENT OF CLOUD ENVIRONMENT OF AN EDUCATIONAL INSTITUTION: NETWORK SECURITY

УДК FREEZING OF CONDENSATE IN THE EXHAUST SYSTEM OF CARS

PRODUCTIVITY, ADAPTABILITY AND GRAIN QUALITY OF MODERN UKRAINIAN WINTER TRITICALE CULTIVARS*

STATISTICAL FIELD THEORY FOR A MULTICOMPONENT FLUID: THE COLLECTIVE VARIABLES APPROACH

The Archaeological Map of Nymphaion (PI. 72)

Jeng-Hwan Wang 1 A STUDY ON KEY PERFORMANCE INDICATOR FOR FOOD SERVICE BUSINESSES IN TAIWAN

This article is publised in Ukrainian in "Herald of Zhytomyr Engeneering- Technological Institute" P

A field guide to the main languages of Europe

. d2. Chem. Papers 44(\)\\\ 117 (1990)

Transcription:

Міністерство освіти і науки, молоді та спорту України Т. В. Ковалюк Алгоритмізація та програмування Підручник СЕРІЯ «КОМП ЮТИНҐ» За загальною редакцією д.т..н., професора В.В. Пасічника Затверджено Міністерством освіти і науки, молоді та спорту України як підручник для студентів вищих навчальних закладів, що навчаються за напрямами «Комп 'ютерні науки», «Комп ютерна інженерія», «Програмна інженерія» Видавництво Магнолія 2006 Львів 2013

УДК 004.4.21(075.8) Відтворення цієї книги або будь-якої її части- ББК32.973-018.011я73 ни заборонено без письмової згоди видавництва... * Будь-які спроби порушення авторських прав будуть переслідуватися у судовому порядку. Гриф надано Міністерством освіти і науки України (лист 1/11-3580 від 29.04.10) В оповідальний за випуск: д.т.н., проф. Пасічник В.В. Рецензенти: В.В. Пасічник, завідувач кафедри інформаційних систем і мереж Національного університету Львівська політехніка», доктор технічних наук, професор, І.М. Болеста, завідувач кафедри радіофізики Львівського національного університету імені Івана Франка, доктор фізико-математичних наук, професор, С В Цюцюра, заступник декана факультету автоматизації та інформаційних технологій Київського національного університету будівництва і архітектури, доктор технічних наук, професор. Ковалюк Т. В. К 56 Алгоритмізація та програмування: Підручник. Львів: «Магнолія 2006», 2013. 400 с. ISBN 978-617-574-069-9 "Магнолія 2006 м У підручнику розглядаються основні поняття алгоритмізації: поняття та властивості алгоритмів. базові алгоритмічні структури, типи алгоритмів, структури даних. У підручнику розв'язана великаа кількість різноманітних задач з обробки масивів, рядків, структур, файлів і списків. Велика увага приділяється важливим алгоритмам матричної та векторної алгебри, обробці динамічних структур даних і обчисленням на графах. Подані програмні реалізації типових класичних алгоритмів сортування та пошуку. Усі коди супроводжуються детальними коментарями, описом алгоритмів та застосованої техніки програмування. Окремий розділ книги присвячено теоретичним засадам структурного програмування. Як робоча мова програмування у підручнику використовуються мови С/С++. Підручник призначений для студентів вищих навчальних закладів, які навчаються за напрямами підготовки «Комп'ютерні науки», «Комп ютерна інженерія», «Програмна інженерія» і вичають сучасні інформаційні технології в рамках дисциплін «Алгоритмізація та програмування», "Основи прог'рамування та алгоритмічні мови», а також для викладачів зазначених дисциплін. УДК 004.421(075.8) ББК 32.973-018.011я73 ISBN 978-617-574-069-9 Т. В. Ковалюк, 2013 Видавництво «Магнолія 2006», 2013

Стислий зміст Передмова... 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. Принцип використання двійкової системи числення... 13 /. 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

ЗМІСТ 5 Розділ 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 2.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

ЗМІСТ 7 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 ЗМІСТ Розділ 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

ЗМІСТ 9 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