Алгоритмы и программы на C++Builder
Покупка
Тематика:
Программирование на C и C++
Издательство:
ДМК Пресс
Автор:
Федоренко Юрий Петрович
Год издания: 2023
Кол-во страниц: 546
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-89818-483-4
Артикул: 149687.02.99
В книге подробно рассмотрены синтаксис, семантика, техника процедурного и объектно-ориентированного программирования на C++Builder. Язык C++ и базовые алгоритмы обработки данных всех типов изучаются параллельно с визуальным программированием. Книга будет также полезна тем, кто имеет определённый опыт в программировании, однако желает расширить и углубить свои знания. Она может служить надёжной платформой для изучения и других языков программирования, поскольку она основывается на парадигме разработки современных приложений, к которой специалисты продвигались более пяти десятилетий.
Издание предназначено для студентов, преподавателей, инженеров, научных сотрудников, лицеистов и старшеклассников, желающих самостоятельно изучить C++Builder «с нуля».
Файлы с примерами программ для среды С++ Builder 5 и C++ Builder 6 можно найти на сайте издательства.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование
- Программирование на C и C++
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Федоренко Ю.П. Алгоритмы и программы на 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