С++. АЛГОРИТМІЗАЦІЯ та ПРОГРАМУВАННЯ

С++. АЛГОРИТМІЗАЦІЯ ТА ПРОГРАМУВАННЯ: ПІДРУЧНИКУніверсальною найпоширенішою мовою програмування упродовж кількох останніх десятиліть є мова С++, на підставі якої «виросло» багато сучасних мов програмування.

.

Цьому сприяли такі її властивості як: лаконічність, потужність, гнучкість, мобільність, можливість доступу до всіх функціональних засобів операційної системи. С++ є ультрашвидкою кросплатформовою мовою загального призначення. Мовою С++ написано багато програм – від ігор, офісних застосунків, серверних частин сайтів (back-end), відеоплеєрів і до операційних систем. Кросплатформовість C++ є вагомою перевагою цієї мови, позаяк є численні компілятори та інтерактивні середовища розробки (IDE), які мають версії для Windows, MacOS і Linux. До речі, Visual Studio – популярне інтегроване середовище розробки програмного забезпечення на різних платформах і для різних операційних систем з можливістю одночасної роботи над кодом декількох розробників (у версії Visual Studio 2019 – до 35 розробників).

Щоб не звужувати вибір читача щодо технічних засобів, а зосередити його на можливостях та особливостях мови С++, підручник подано як ґрунтовний і водночас доволі легкий для сприйняття матеріалу стосовно вивчення класичних методів програмування. Видання призначене як для початківців, які прагнуть навчатися програмувати мовою С++, так і для тих, хто має базові знання з програмування і прагне їх поглибити та освоїти більшість методів і прийомів, які має «на озброєнні» програміст. У підручнику містяться не лише тривіальні алгоритми, а й задачі з опрацювання структурованих типів даних, робота з вказівниками, засоби динамічного керування пам’яттю тощо. Значну увагу приділено опрацюванню даних у файлах.

Підручник може використовуватись як джерело прикладів, вправ та програм для розглядання. Автори намагались показати специфіку основних засобів та можливостей потужної й гнучкої мови С++ на значній кількості прикладів працездатних програм і програмних фрагментів, які можуть бути використані у різних версіях С++. Для реалізації прикладів програм використовувались:

– середовище розроблення Microsoft Visual Studio (Visual С++);

– https://cpp.sh. – онлайн-компілятор мовою С++;

– https://www.onlinegdb.com – потужний і зручний онлайн-компілятор, який коректно опрацьовує символи кирилиці, з можливістю вибору мови програмування з переліку з понад 20-ти різних сучасних мов та їхніх версій, включно С++ (https://www.onlinegdb.com/online_c++_compiler);

– https://ideone.com – онлайн-компілятор різними мовами програмування;

– https://codepad.org – онлайн-компілятор мовами С, С++ та ін.

Автори сподіваються, що численна кількість прикладів програм спонукатиме читача як реалізувати їх на комп’ютері, щоби перевірити їхню працездатність, так і змінити та вдосконалити ці програми.

ЗМІСТ

Передмова

Розділ 1. Основи алгоритмізації

1.1. Етапи розв’язування обчислювальних задач на комп’ютері

1.2. Алгоритм, його властивості й засоби описування. Поняття програми

1.3. Графічне подання у вигляді схеми алгоритму (блок-схеми)

1.4. Види базових алгоритмів

1.5. Приклади базових алгоритмічних структур

Розділ 2. Знайомство. з. C++. Способи введення-виведення даних

2.1. Технологія створювання інтерфейсних програм у Visual C++

2.2. Введення-виведення даних

2.3. Робота в онлайн-компіляторах мовою С++

Розділ 3. Елементи. мови. С++

3.1. Історія С++

3.2. Алфавіт мови С++

3.3. Типи даних

3.4. Константи

3.5. Правила записування арифметичних виразів

3.6. Функції С++ генерування випадкових чисел

Розділ 4. Програмування базових алгоритмів

4.1. Програмування лінійних алгоритмів

4.2. Програмування розгалужених алгоритмів

4.3. Програмування циклічних алгоритмів

Розділ 5. Масиви в С++

5.1. Поняття масиву

5.2. Одновимірні масиви

5.3. Двовимірні масиви

Розділ 6. Вказівники. Динамічна пам'ять

6.1. Вказівники

6.2. Вказівники на одновимірні масиви

6.3. Арифметика. вказівників

6.4. Вказівники на багатовимірні масиви

6.5. Динамічна пам’ять

6.6. Динамічні одновимірні масиви

6.7. Динамічні двовимірні масиви (матриці)

Розділ 7. Символи і рядки

7.1. Символьний тип даних

7.2. Рядки

7.3. Розширені символьні типи

Розділ 8. Функції

8.1. Правила організації функцій

8.2. Способи передавання параметрів до функцій

8.3. Параметри зі значеннями за умовчанням

8.4. Функції зі змінною кількістю параметрів

8.5. Рекурсивні функції

8.6. Перевантаження функцій

Розділ 9. Багатофайлові програми

9.1. Міжфайлова взаємодія

9.2. Заголовні файли

9.3. Директиви препроцесора

9.4. Область дії та простір імен

9.5. Бібліотеки функцій

9.6. Створення проектів з декількома формами

Розділ 10. Типи користувача

10.1. Перейменовування типів (typedef)

10.2. Об’єднання (union)

10.3. Структури (struct)

10.4. Перерахування (enum)

Розділ 11. Типи опрацювання дати і часу

11.1. Тип «дата-час» у С++

11.2. Дата-час у Visual С++

Розділ 12. Файли

12.1. Загальні відомості про файли

12.2. Текстові файли

12.3. Бінарні файли

Бібліографічний список

Додаток А. Таблиці кодів ASCII

Додаток Б. Операції мови С++

Додаток В. Функції стандартної бібліотеки С++

Предметний покажчик

Бібліографічний список

Підручник складається з дванадцяти розділів

На початку, у розд. 1 описані етапи розв’язування обчислювальних задач на комп’ютері та різновиди складання алгоритмів.

У розд. 2 описані інструментальні засоби інтерактивного середовища Microsoft Visual Studio (Visual С++) – однієї із найпотужніших систем, яка дозволяє на найсучаснішому рівні створювати як окремі прикладні програми, так і розгалужені комплекси, призначені для роботи в корпоративних мережах і в інтернеті. Середовище Visual Studio поєднує засоби мови програмування С++ та компонентно-орієнтований підхід до створення програм. Поєднання простоти освоєння візуального середовища та підтримки широкого спектра технологій робить Visual Studio універсальним інструментом створення програмних проектів якого завгодно рівня складності. Навіть початкові програмісти зможуть швидко створювати програмні проекти у Visual С++, які матимуть професійний віконний інтерфейс найрізноманітнішої спрямованості, від суто обчислювальних та логічних, до графічних та мультимедійних. Поряд з цим, значну увагу в цьому розділі приділено створюванню консольних програм, оскільки їхній програмний код є універсальним і майже не відрізняється від програм інших засобів розробляння програм мовою С++.

Інформацію про основні елементи мови С++, тобто типи даних, правила оголошування змінних та інших об’єктів, записування арифметичних виразів, наведено у розд. 3. Цей розділ є вельми важливим, позаяк для створювання програм треба знати синтаксис мови, тобто правила записування команд та використання лексичних одиниць мови.

У розд. 4 приділено увагу організації трьох основних видів обчислювальних процесів (лінійних, розгалужених і циклічних) та застосуванню різного роду операторів для їхньої програмної реалізації. Специфіку їхнього програмування ілюструє значна кількість прикладів програм та програмних фрагментів.

Широкого застосовування для зберігання та опрацювання однорідної інформації, наприклад, таблиць, векторів, рядків, матриць та багато ін., мають масиви, організації та опрацюванню яких присвячено розд. 5.

У розд.6 йдеться про переваги та особливості організації динамічної пам’яті для структур даних, які змінюють розміри, задля ефективного використання оперативної пам’яті. Така можливість пов’язана з наявністю та широким використанням у C++ особливого типу даних – вказівників.

Оскільки на практиці, крім чисел, доволі часто доводиться працювати із символьною інформацією, цій темі присвячений окремий розділ. Так, у розд. 7 докладно, з наведенням значної кількості наочних прикладів розглянуто особливості опрацювання різних видів організації символьної інформації: і як символьних масивів певної довжини, і за допомогою вказівників на початок символьного масиву, і як рядки.

Незамінну роль відіграють вказівники при передаванні параметрів до функції. У С++ підтримуються функції як окремі логічні одиниці (програмні конструкції) для виконання конкретних завдань. Наприклад, процес розроблення програмного забезпечення припускає поділ складного завдання на декілька більш простих завдань, кожне з яких розв’язується в окремій функції. Висвітленню специфіки організації функцій присвячено розд. 8.

Доволі часто функції організовують в окремі файли, особливості такого процесу описано у розд. 9.

Значну увагу у розд.10 приділено складовому типу даних – структурі, яка, на відміну від масивів, може поєднувати дані різних типів. За допомогою структур зручно зберігати списки даних, що складаються з полів різних типів. Окрім того, у цьому розділі вивчаються можливості створювання типів користувачів на базі стандартних типів, особливості організації й застосування об’єднань, перераховного типу та множин.

У розд. 11 розглянуто спеціальні засоби С++ та Visual Studio .NET для опрацювання даних типу «дата-час». Проілюстровано значну кількість функцій та методів опрацювання такого роду даних.

Значну увагу в підручнику приділено специфіці організації та опрацювання файлів у С++, позаяк на практиці часто виникає потреба, щоб усі опрацьовувані дані зберігалися в окремих файлах. Так, у розд. 12 описано й продемонстровано на низці наочних прикладів використання потужних і гнучких можливостей С++ для різних підходів щодо організації файлів. Зазначено, що С++ припускає роботу з текстовими й бінарними файлами і має принципово різні способи їх опрацювання. У розділі висвітлюється специфіка роботи з файлами як з потоками у стилі С++. Окрім того, описано можливості роботи з файлами у Visual Studio за допомогою бібліотечних компонентів.

Щоб забезпечити ефективне сприйняття матеріалу та формування практичних навичок, наприкінці кожного розділу розміщені запитання та завдання для самоконтролю засвоєння знань.

У додатки винесено таблиці ASCII-кодів, перелік операцій мови С++ у порядку зменшення пріоритету та перелік функцій стандартної бібліотеки С++. Предметний покажчик, який призначений полегшити користування підручником, містить основні терміни і поняття, що зустрічаються у цьому виданні.

Автори сподіваються, що запропонований до Вашої уваги підручник стане корисним при вивченні мови С++, і будуть щиро вдячні за доброзичливу та конструктивну критику й відгуки.


Вернуться к началу учебника ..