Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Алгоритмы и программы на C++Builder

Покупка
Артикул: 149687.02.99
Доступ онлайн
319 ₽
В корзину
В книге подробно рассмотрены синтаксис, семантика, техника процедурного и объектно-ориентированного программирования на C++Builder. Язык C++ и базовые алгоритмы обработки данных всех типов изучаются параллельно с визуальным программированием. Книга будет также полезна тем, кто имеет определённый опыт в программировании, однако желает расширить и углубить свои знания. Она может служить надёжной платформой для изучения и других языков программирования, поскольку она основывается на парадигме разработки современных приложений, к которой специалисты продвигались более пяти десятилетий. Издание предназначено для студентов, преподавателей, инженеров, научных сотрудников, лицеистов и старшеклассников, желающих самостоятельно изучить C++Builder «с нуля». Файлы с примерами программ для среды С++ Builder 5 и C++ Builder 6 можно найти на сайте издательства.
Федоренко, Ю. П. Алгоритмы и программы на C++Builder : практическое руководство / Ю. П. Федоренко. - 2-е изд. - Москва : ДМК Пресс, 2023. - 546 с. - ISBN 978-5-89818-483-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2106253 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Федоренко Ю.П.

Алгоритмы и
программы на
 C++Builder

Москва, 2023

2-е издание, электронное

УДК 004.4
ББК 32.973.26-018.2
Ф33

Ф33
Федоренко, Юрий Петрович.
Алгоритмы и программы на C++Builder / Ю. П. Федоренко. — 2-е изд., эл. — 
1 файл pdf : 546 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe 
Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-483-4
В книге подробно рассмотрены синтаксис, семантика, техника процедурного и объектно-ориентированного программирования на C++Builder. Язык C++ и базовые алгоритмы обработки данных всех типов изучаются параллельно с визуальным программированием. Книга будет также полезна тем, кто имеет определённый опыт в программировании, 
однако желает расширить и углубить свои знания. Она может служить надёжной платформой для изучения и других языков программирования, поскольку она основывается 
на парадигме разработки современных приложений, к которой специалисты продвигались 
более пяти десятилетий.
Издание предназначено для студентов, преподавателей, инженеров, научных сотрудников, лицеистов и старшеклассников, желающих самостоятельно изучить C++Builder 
«с нуля».
Файлы с примерами программ для среды С++ Builder 5 и C++ Builder 6 можно найти 
на сайте издательства.

УДК 004.4 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Алгоритмы и программы на C++Builder / 
Ю. П. Федоренко. — Москва : ДМК Пресс, 2010. — 544 с. — ISBN 978-5-94074-607-2. — Текст : непосредственный.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и 
какими бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты 
авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.

ISBN 978-5-89818-483-4
©  Федоренко Ю. П., 2010
© Оформление, ДМК Пресс, 2010

Содержание

Благодарности....................................................... 11

Предисловие ......................................................... 12

Урок 1. Первая программа ....................................... 20

1.1. Внешний вид и назначение приложения Умножитель ......................... 20
1.2. Знакомство с визуальным программированием ................................. 21

1.2.1. Форма ......................................................................................... 22
1.2.2. Тип объекта ................................................................................. 23
1.2.3. Правильный идентификатор ........................................................ 24
1.2.4. Поле ввода .................................................................................. 25
1.2.5. Поле вывода ................................................................................ 27
1.2.6. Командная кнопка ....................................................................... 28

1.3. Разработка кода программы ............................................................... 28

1.3.1 Что такое алгоритм ....................................................................... 28
1.3.2. Алгоритм программы .................................................................. 29
1.3.3. Способы порождение заготовки функции ................................... 30
1.3.4. Заголовок функции ...................................................................... 30
1.3.5. Задание переменных ................................................................... 32
1.3.6. Однострочный комментарий ....................................................... 33
1.3.7. Инициализация переменных ....................................................... 33
1.3.8. Конфигурация компьютера.......................................................... 34
1.3.9. Оператор присваивания .............................................................. 34
1.3.10. Текстовая константа .................................................................. 35
1.3.11. Многострочный комментарий и преобразование текстовых
переменных в переменные вещественного типа ................................... 35
1.3.12. Преобразование переменных вещественного типа в переменные
текстового типа..................................................................................... 36
1.3.13. Форматирование текста программы ......................................... 37

1.4. Сохранение и отладка ......................................................................... 38

1.4.1. Сохранение проекта .................................................................... 38
1.4.2. Компиляция и сборка проекта ..................................................... 39
1.4.3. Предупреждения и подсказки...................................................... 43
1.4.4. Запуск проекта ............................................................................ 43

1.5. Задача для программирования ........................................................... 44
1.6. Вариант программного решения ......................................................... 45

Содержание
Содержание
Содержание
Содержание
Содержание

Урок 2. Модернизация программы ............................ 47

2.1. Открытие проекта ............................................................................... 47
2.2. Округление результата ........................................................................ 47

Приложение 2.1. Возможности функции FloatToStrF()........................... 48

2.3. Борьба с ошибками пользователя ....................................................... 49

2.3.1. Исключительные ситуации .......................................................... 49
2.3.2. Молчаливые исключения ............................................................. 54

2.4. Улучшение интерфейса ....................................................................... 55

2.4.1. Выбор пиктограммы для приложения .......................................... 55
2.4.2. Местоположение интерфейса ..................................................... 55
2.4.3. Плавное перетаскивание и протягивание .................................... 55
2.4.4. Горизонтальное и вертикальное выравнивание ........................... 56
2.4.5. Выравнивание по сетке ............................................................... 57
2.4.6. Уравнивание габаритов ............................................................... 58
2.4.7. Одинаковые интервалы ............................................................... 59
2.4.8. Симметрирование объектов относительно центра ...................... 59
2.4.9. Порядок перехода между объектами управления ........................ 60

2.5. Подробнее об отладке программы ...................................................... 60

2.5.1. Предупреждения и подсказки...................................................... 60
2.5.2. Точки остановки и всплывающая подсказка ................................. 62
2.5.3. Пошаговое выполнение программы ............................................ 64

2.6. Полноценный исполняемый файл ....................................................... 65
2.7. Задача для программирования ........................................................... 68
2.8. Вариант программного решения ......................................................... 68

Урок 3. Операции, математические функции и операторы
выбора ................................................................. 70

3.1. Использование математических функций и констант .......................... 70

3.1.1. Условие задачи и интерфейс программы Дальность .................. 70
3.1.2. Препроцессорная обработка ....................................................... 71
3.1.3. Файл реализации ........................................................................ 72
3.1.4. Описание программы .................................................................. 72

3.2. Основные стандартные математические функции .............................. 74
3.3. Операции и порядок их выполнения .................................................... 76

3.3.1. Операции отношения .................................................................. 76
3.3.2. Круглые скобки ............................................................................ 76
3.3.3. Логические операции .................................................................. 77
3.3.4. Арифметические операции ......................................................... 78
3.3.5. Операции присваивания.............................................................. 79
3.3.6. Порядок вычислений ................................................................... 80

3.4. Условный оператор if ........................................................................ 80
3.5. Оператор множественного выбора switch.......................................... 85
3.6. Дополнительные возможности командной кнопки .............................. 88
3.7. Задача для программирования ........................................................... 89
3.8. Вариант решения задачи..................................................................... 89

Содержание
Содержание
Содержание
Содержание
Содержание

Урок 4. Все о циклах................................................ 90

4.1. Зачем нужны циклы? ........................................................................... 90
4.2. Оператор цикла for ........................................................................... 96
4.3. Оператор цикла while .......................................................................103
4.4. Оператор цикла do_while..................................................................105
4.5. Вложенные циклы ............................................................................. 106
4.6. Задачи для программирования ......................................................... 112
4.7. Варианты решений задач .................................................................. 113

Урок 5. Графики зависимостей ............................... 117

5.1. Построение одномерных зависимостей ............................................ 117
5.2. Построение серии одномерных графиков ......................................... 127
5.3. Модернизируем интерфейс .............................................................. 130

5.3.1. Кнопка для выхода из приложения ............................................ 130
5.3.2. Показ стандартних мультфильмов ............................................. 132
5.3.3. Стандартне кнопки Windows .....................................................134
5.3.4. Размещение картинок на кнопках .............................................. 135
5.3.5. Размер формы и граничные пиктограммы ................................. 135

5.4. Задачи для программирования ......................................................... 136
5.5. Варианты решений задач .................................................................. 137

Урок 6. Одномерные массивы ................................ 139

6.1. Зачем нужны массивы? ..................................................................... 139

6.1.1. Интерфейс приложения............................................................. 140
6.1.2. Задание массива ....................................................................... 141
6.1.3. Суммирование элементов массива ........................................... 143
6.1.4. Определение экстремума ......................................................... 144
6.1.5. Счетчик ...................................................................................... 145
6.1.6. Функция PyskClick в законченном виде ...................................... 146
6.1.7. Компактный вариант функции PyskClick ....................................147
6.1.8. Общие определения .................................................................. 148
6.1.9. Глобальные переменные и константы ........................................ 149
6.1.10. Страж кода .............................................................................. 150

6.2. Метод линейной сортировки ............................................................. 152

6.2.1. Сущность метода....................................................................... 152
6.2.2. Алгоритм метода ....................................................................... 153
6.2.3. Ручная трассировка алгоритма .................................................. 154
6.2.4. Иллюстрация метода ................................................................. 156
6.3. Сортировка методом пузырька..................................................... 159

6.4. Другие методы упорядочивания элементов массива ........................ 162

6.4.1. Применение трёх массивов ....................................................... 162
6.4.2. Применение одного массива ..................................................... 163
6.4.3. Упорядочивание массива методом Ларионова .........................166

6.5. Схемы алгоритмов ............................................................................ 167
6.6. Задачи для программирования ......................................................... 172
6.7. Варианты решений задач .................................................................. 172

Содержание
Содержание
Содержание
Содержание
Содержание

Урок 7. Многомерные массивы ............................... 178

7.1. Примеры многомерных массивов ..................................................... 178
7.2. Описание многомерных массивов .................................................... 179
7.3. Доступ к элементам массива ............................................................ 181
7.4. Главная и побочная диагонали........................................................... 182
7.5. Примеры обработки матриц .............................................................. 183
7.6. Задачи для программирования ......................................................... 189
7.7. Варианты решений задач .................................................................. 189

Урок 8. Функции ................................................... 194

8.1. Важный инструмент структурирования программ ............................. 194
8.2. Что уже известно о функциях ............................................................ 195
8.3. Описание и объявление функций ...................................................... 196

8.3.1. Тип возвращаемых значений ..................................................... 196
8.3.2. Если функция не имеет параметров .......................................... 198
8.3.3. Прототип функции ..................................................................... 198
8.3.4. Переменное число параметров функции ................................... 199
8.3.5. Параметры со значениями по умолчанию.................................. 200
8.3.6. Чем функции отличаются от программ ...................................... 200
8.3.7. Операция расширения области видимости ............................... 200
8.3.8. Выход из функции...................................................................... 201
8.3.9. Запрет и разрешение доступа к функции .................................. 201

8.4.Различные способы передачи параметров в функции........................ 202

8.4.1. Передача параметра по значению ............................................. 202
8.4.2. Передача параметра по ссылке ................................................. 203
8.4.3. Передача параметра по адресу ................................................. 204
8.4.4. Применение спецификатора const в ссылочных параметрах ..... 205
8.4.5. Применение спецификатора const в параметрахуказателях .... 205

8.5. Перегрузка функций .......................................................................... 206
8.6.Шаблоны функций ............................................................................. 207

8.6.1. Параметры одинакового типа .................................................... 208
8.6.2. Параметры разного типа ........................................................... 208
8.6.3. Параметры разного формального типа и конкретного типа....... 208
8.6.4. Необходимость применения всех типов объявленных
параметров ......................................................................................... 209
8.6.5. Другие возможности и ограничения шаблонов.......................... 209
8.6.6. Пример практического применения шаблона ............................ 210

8.7. Иллюстрация применения пользовательских функций...................... 212
8.8. Задача для программирования ......................................................... 219
8.9. Вариант решения задачи................................................................... 219

Урок 9. Файлы ..................................................... 224

9.1. Назначения файлов ........................................................................... 224

9.1.1. Устройства для долговременного хранения информации.
История вопроса................................................................................. 224
9.1.2. Что называется файлом............................................................. 225

Содержание
Содержание
Содержание
Содержание
Содержание

9.1.3. Что содержится в файлах .......................................................... 226
9.1.4. Типы файлов .............................................................................. 227
9.1.5. Работа с файлами на физическом уровне ................................. 227

9.2. Простые приложения с текстовыми файлами ................................... 229

9.2.1. Многострочные окна редактирования Memo и RichEdit..............229
9.2.2. Невизуальный объект типа TStringList .......................................231

9.3. Обработка массивов в текстовых файлах .......................................... 234

9.3.1. Чтение из файла и запись в файл одномерного массива ........... 234
9.3.2. Чтение из файла и запись в файл двумерных массивов ............. 236

9.4. Двоичные файлы ............................................................................... 240

9.4.1. Простое приложение с двоичным файлом ................................. 243
9.4.2. Одномерный массив в двоичном файле .................................... 243
9.4.3. Матрица в двоичном файле ....................................................... 244
9.4.4. Приложение Квадрат числа ......................................................245

9.5. Улучаем интерфейс приложения ....................................................... 247

9.5.1. Создаём меню ........................................................................... 248
9.5.2. Создаём горячие клавиши ......................................................... 251
9.5.3. Создаём кнопки быстрого доступа ............................................ 251

9.6. Задачи для программирования ......................................................... 256
9.7. Варианты решений задач .................................................................. 256

Урок 10. Указатели и динамические переменные....... 261

10.1. Вводные замечания и основные определения................................. 261
10.2. Иллюстрация применения указателей............................................. 265
10.3. Указатели на различные типы данных.............................................. 266

10.3.1. Виды указателей...................................................................... 266
10.3.2. Операции с однотипными и разнотипными указателями ......... 267
10.3.3. Указатель на указатель ............................................................ 268
10.3.4. Константный указатель на константные данные ...................... 269
10.3.5. Неконстантый указатель на константные данные..................... 269
10.3.6. Константный указатель на неконстантные данные ................... 270

10.4. Адресная арифметика с массивами ................................................ 270
10.5. Адресная арифметика с указателями на массивы ........................... 272
10.6. Массивы указателей ....................................................................... 274
10.7. Динамические массивы................................................................... 279

10.7.1. Одномерные динамические массивы ...................................... 279
10.7.2. Двумерные динамические массивы......................................... 282

10.8. Указатели на функции ..................................................................... 285
10.9. Функции, возвращающие указатель на массив ............................... 289
10.10. Важная рекомендация ................................................................... 290
10.11. Задачи для программирования ..................................................... 291
10.12. Варианты решений задач .............................................................. 291

Урок 11. Ссылки ................................................... 294

11.1. Основные свойства ......................................................................... 294
11.2. Использование модификатора const ..............................................297

Содержание
Содержание
Содержание
Содержание
Содержание

11.3. Ссылка на функцию ......................................................................... 297
11.4. Функции, возвращающие ссылку .................................................... 299
11.5. Ссылки на объекты динамических переменных ............................... 300
11.6. Осваиваем новые объекты интерфейса .......................................... 301

11.6.1. Переключатели ........................................................................ 301
11.6.2. Индикаторы ............................................................................. 304
11.6.3. Диалоговое окно ..................................................................... 307
11.6.4. Диаграммы длительных процессов ......................................... 310
11.6.5. Непослушная кнопка................................................................ 315
11.6.6. Модальные и немодальные формы.......................................... 316

11.7. Задачи для программирования ....................................................... 326
11.8. Варианты решений задач ................................................................ 326

Урок 12. Символы и строки .................................... 329

12.1. Символьные переменные ................................................................ 329

12.1.1. Перевод символов DOS в символы Windows ............................331
12.1.2. Перевод символов Windows в символы DOS ............................333

12.2. Массивы символов .......................................................................... 335

12.2.1. Задание и инициализация ....................................................... 335
12.2.2. Функции для обработки ........................................................... 336

12.3. Переменные типа String .................................................................339

12.3.1. Сравнение строк ...................................................................... 342
12.3.2. Стандартные функции для обработки строк ............................ 343
12.3.3. Иллюстрация обработки строк ................................................ 347

12.4. Задачи для программирования ....................................................... 356
12.5. Варианты решений задач ................................................................ 356

Урок 13. Перечисления, множества, объединения и
структуры ........................................................... 363

13.1. Перечислимый тип переменных ...................................................... 363
13.2. Множества ...................................................................................... 365

13.2.1. Операции над однотипными множествами .............................. 368
13.2.2. Внутреннее представление множеств ..................................... 370
13.2.3. Пример применения множеств ................................................ 372

13.3. Объединения................................................................................... 374
13.4. Структуры........................................................................................ 375

13.4.1. Простые структуры .................................................................. 375
13.4.2. Вложенные структуры.............................................................. 378
13.4.3. Массивы структур .................................................................... 379
13.4.4. Структуры с вариантными полями ........................................... 380
13.4.5. Методы структур ..................................................................... 381
13.4.6. Пример обработки базы данных .............................................. 382
13.4.7. Наследование структур ........................................................... 390
13.4.8. Защита полей и методов структур ........................................... 392
13.4.9. Двунаправленный список структур .......................................... 394

Содержание
Содержание
Содержание
Содержание
Содержание

13.5. Задачи для программирования ....................................................... 405
13.6. Варианты решений задач ................................................................ 405

Урок 14. Классы ................................................... 414

14.1. Вводные замечания......................................................................... 414
14.2. Инкапсуляция и наследование ........................................................ 415
14.3. Новый вариант приложения ............................................................ 422
14.4. Полиморфизм ................................................................................. 425

14.4.1 Совместимость объектных типов.............................................. 425
14.4.2. Полиморфизм, виртуальные методы, раннее и позднее
связывание ......................................................................................... 426
14.4.3. Чисто виртуальные методы, абстрактные классы и
полиморфные функции ....................................................................... 429
14.4.4. Применение виртуальных и чисто виртуальных методов,
правила их описания и использования ................................................ 429
14.4.5. Преимущества и недостатки виртуальных методов ................. 431

14.5. Клиенты и дружественные функции класса ..................................... 431
14.6. Статические поля и статические константы класса ......................... 432
14.7. Конструкторы класса ....................................................................... 435

14.7.1. Конструкторы простых классов ............................................... 436
14.7.2. Конструкторы производных классов........................................ 439
14.7.3. Свойства конструкторов и правила их разработки................... 443

14.8. Деструктор класса........................................................................... 444

14.8.1. Обычные деструкторы ............................................................. 444
14.8.2. Виртуальные деструкторы ....................................................... 448
14.8.3. Свойства деструкторов и правила их разработки .................... 451

14.9. Создание копий объектов................................................................ 452

14.9.1. Побитовое копирование .......................................................... 452
14.9.2. Запрет неявного преобразования типов.................................. 454
14.9.3. Конструктор копирования........................................................ 454

 14.10. Указатель this ..............................................................................457

14.10.1. Назначения и возможности указателя this .............................457
14.10.2. Программное порождение визуальных объектов ................... 459

14.11. Локальные классы ......................................................................... 463
14.12. Шаблоны классов .......................................................................... 463
14.13. Отличие структур и объединений от классов ................................. 467
14.14. Задача для программирования ..................................................... 469
14.15. Вариант решения задачи ............................................................... 469

Урок 15. Графика и мультипликация ........................ 472

15.1. Основные определения ................................................................... 472
15.2. Логотип приложения ....................................................................... 474
15.3. Приложение для просмотра графических файлов ........................... 477
15.4. Типы графических файлов ............................................................... 478
15.5. Объекты для хранения изображений, открытие, сохранение и
переименование файлов ......................................................................... 480

10
10
10
10
Содержание
Содержание
Содержание
Содержание
Содержание

15.6. Графические примитивы и инструменты для их построения ........... 484

15.6.1. Карандаш и кисть .................................................................... 484
15.6.2. Прямоугольник ........................................................................ 486
15.6.3. Эллипс ..................................................................................... 488
15.6.4. Дуга ......................................................................................... 489
15.6.5. Сектор ..................................................................................... 489
15.6.6. Линия ...................................................................................... 490
15.6.7. Ломаная линия ........................................................................ 491
15.6.8. Многоугольник ........................................................................ 492
15.6.9. Текст ........................................................................................ 493

15.7. Приложение Пособие ....................................................................495
15.8. Мультипликация с использованием графических примитивов ........ 500
15.9. Мультипликация с применением битовых образов .......................... 504

15.9.1. Использование файлов типа bmp............................................504
15.9.2. Применение ресурсов программы .......................................... 508

15.10. Разработка мультфильма Аквариум ..............................................513
15.11. Вариант мультфильма Аквариум, разработанный на основе
применения пользовательских классов ................................................... 520
15.12. Задачи для программирования ..................................................... 524
15.13. Варианты решения задач .............................................................. 525

Урок 16. Запуск чужих программ из вашего
приложения......................................................... 527

16.1. Технология OLE..............................................................................527

16.1.1. Знакомство на примере программы ........................................ 528
16.1.2. Программное внедрение OLEобъектов .................................. 535
16.1.3. Быстрый способ внедрения и связывания объектов на основе
существующих документов ................................................................. 536
16.1.4. Сохранение документов в исходных форматах ........................ 537
16.1.5. Развитие технологии OLE .......................................................538

16.2. Задача для программирования ....................................................... 540
16.3. Вариант решения задачи ................................................................. 540

Список литературы ............................................... 541

Алфавитный указатель компонентов
библиотеки VCL.................................................... 542

Алфавитный указатель функций библиотек
C++Builder, API Windows, деректив компилятору, типов
данных, операций и других ключевых слов ............... 543

Доступ онлайн
319 ₽
В корзину