492-347-068
order#superkniga.com.ua
Реклама
|
|
|
Книги компьютерные - Книги C, C++,С# Купить книгу Книга Программирование на С++. 4-е изд. Савич. Питер. 2004 |
|
|
83.3 грн.
|
|
Книга содержит исчерпывающую информацию о языке программирования C++. Помимо «стандартных» тем, таких как объявление переменных, операторы выбора, циклы, массивы, функции и др., подробно рассматривается также работа с векторами, динамические многомерные массивы, обработка исключений, указатели и перегрузка операторов. Примеры и задания для самостоятельной работы, содержащиеся в каждой главе, помогут читателю закрепить изученный теоретический материал. Книга рассчитана на студентов и начинающих программистов, которые хотят изучить тонкости программирования на языке C++.
Содержание
Предисловие
- Последовательность изучения курса
- Порядок изложения материала в главах
- Где получить дополнительные материалы
- От издательства
Глава 1. Основы информатики и программирования на языке C++
- 1.1. Компьютерные системы
- Аппаратное обеспечение
- Программное обеспечение
- Высокоуровневые языки программирования
- Компиляторы
- Историческая справка
- 1.2. Программирование и решение задач
- Алгоритмы
- Разработка программ
- Объектно-ориентированное программирование
- Жизненный цикл программного обеспечения
- 1.3. Введение в C++
- Как возник язык C++
- Пример программы на C++
- Ловушка: использование /n вместо \n при переходе на новую строку
- Совет программисту: синтаксис ввода и вывода
- Структура простой программы на C++
- Ловушка: пробел перед именем файла в директиве include
- Компиляция и запуск программы на C++
- Совет программисту: запуск программы
- 1.4. Тестирование и отладка
- Виды программных ошибок
- Ловушка: предполагается, что программа верна
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 2. Основные понятия C++
- 2.1. Переменные и операторы присваивания
- Переменные
- Имена и идентификаторы
- Объявление переменных
- Операторы присваивания
- Ловушка: неинициализированные переменные
- Совет программисту: используйте информативные имена
- 2.2. Ввод-вывод
- Вывод с помощью потока cout
- Директивы include и пространства имен
- Управляющие последовательности
- Совет программисту: заканчивайте каждую программу выводом символа новой строки
- Форматирование чисел с дробной частью
- Ввод с помощью потока cin
- Программирование ввода и вывода
- Совет программисту: переводы строки при вводе-выводе
- 2.3. Типы данных и выражения
- Типы int и double
- Другие числовые типы
- Тип char
- Тип bool
- Совместимость типов данных
- Арифметические операторы и выражения
- Ловушка: целые числа и деление
- Еще об операторах присваивания
- 2.4. Простейшее управление потоком
- Простой механизм ветвления
- Ловушка: сравнение нескольких значений
- Ловушка: использование = вместо ==
- Составные операторы
- Простые механизмы циклического выполнения
- Операторы инкрементирования и декрементирования
- Пример: баланс кредитной карточки
- Ловушка: бесконечные циклы
- 2.5. Некоторые особенности оформления программ
- Отступы
- Комментарии
- Именованные константы
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 3. Процедурная абстракция и функции
- 3.1. Нисходящее проектирование
- 3.2. Стандартные функции
- Использование функций
- Преобразование типов
- Старая форма оператора приведения типов
- Ловушка: при целочисленном делении отбрасывается дробная часть
- 3.3. Функции, определяемые программистом
- Определения функций
- Две формы объявлений функций
- Ловушка: неверный порядок аргументов
- Синтаксис определения функции
- Еще об определениях функций
- 3.4. Процедурная абстракция
- Аналогия с черным ящиком
- Совет программисту: выбор имен формальных параметров
- Пример: покупка пиццы
- Совет программисту: использование псевдокода
- 3.5. Локальные переменные
- Аналогия с маленькой программой
- Пример: расчет предполагаемого урожая
- Глобальные константы и глобальные переменные
- Формальные параметры, передаваемые по значению, являются переменными
- Пространство имен std
- Пример: функция, вычисляющая факториал
- 3.6. Перегрузка имен функций
- Основные понятия перегрузки
- Пример: модифицированная программа покупки пиццы
- Автоматическое преобразование типов
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 4. Функции для разных подзадач
- 4.1. Функции типа void
- Определения функций типа void
- Пример: преобразование значений температуры
- Оператор return в функциях типа void
- 4.2. Передача параметров по ссылке
- Первое знакомство с передачей параметров по ссылке
- Механизм передачи параметров по ссылке
- Пример: функция swap_values
- Смешанные списки параметров
- Совет программисту: как правильно выбрать способ передачи параметра
- Ловушка: локальная переменная вместо параметра, передаваемого по ссылке
- 4.3. Использование процедурной абстракции
- Функции, вызывающие другие функции
- Предусловия и постусловия
- Пример: цены в супермаркете
- 4.4. Тестирование и отладка функций
- Заглушки и отладочные программы
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 5. Потоки ввода-вывода
- 5.1. Потоки и основы файлового ввода-вывода
- Почему для ввода-вывода используются файлы
- Файловый ввод-вывод
- Введение в классы и объекты
- Совет программисту: проверяйте, открыт ли файл
- Реализация файлового ввода-вывода
- Добавление данных в файл (факультативный материал)
- Использование имен файлов в качестве входных данных (факультативный материал)
- 5.2. Дополнительные средства выполнения потокового ввода-вывода
- Форматирование выходных данных с помощью потоковых функций
- Манипуляторы
- Потоки в качестве аргументов функций
- Совет программисту: проверка на конец файла
- О пространствах имен
- Пример: форматирование файла
- 5.3. Символьный ввод-вывод
- Функции-члены get и put
- Функция-член putback (факультативный материал)
- Пример: проверка входных данных
- Ловушка: лишний символ \n во входном потоке
- Функция-член eof
- Пример: редактирование текстового файла
- Предопределенные символьные функции
- Ловушка: функции toupper и tolower возвращают значения типа int
- 5.4. Наследование
- Наследование для потоковых классов
- Пример: еще одна функция new_line
- Аргументы функции, используемые по умолчанию (факультативный материал)
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 6. Определение классов
- 6.1. Структуры
- Структуры для разнородных данных
- Ловушка: отсутствие точки с запятой в определении структуры
- Структуры как аргументы функций
- Совет программисту: пользуйтесь иерархическими структурами
- Инициализация структур
- 6.2. Классы
- Определение классов и функций-членов
- Открытые и закрытые члены класса
- Совет программисту: объявляйте все переменные-члены как закрытые
- Совет программисту: определяйте аксессоры и мутаторы
- Совет программисту: используйте для объектов оператор присваивания
- Пример: класс BankAccount
- Резюме: некоторые свойства классов
- Инициализация с помощью конструкторов
- Совет программисту: всегда определяйте конструктор, используемый по умолчанию
- Ловушка: конструкторы без аргументов
- 6.3. Абстрактные типы данных
- Классы как абстрактные типы данных
- Пример: альтернативная реализация класса BankAccount
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 7. Поток управления программы
- 7.1. Использование логических выражений
- Вычисление логических выражений
- Ловушка: логические выражения преобразуются в значения типа int
- Функции, возвращающие логические значения
- Перечисления (факультативный материал)
- 7.2. Многонаправленное ветвление
- Вложенные операторы if...else
- Совет программисту: используйте скобки во вложенных операторах
- Многонаправленные операторы if...else
- Пример: подоходный налог штата
- Оператор switch
- Ловушка: забытый оператор break в операторе switch
- Использование операторов switch для создания меню
- Совет программисту: использование в операторах ветвления вызовов функций
- Блоки
- Ловушка: переменные, случайно оказавшиеся локальными
- 7.3. Циклы в C++
- Цикл while
- Операторы инкрементирования и декрементирования
- Оператор for
- Ловушка: лишняя точка с запятой в операторе for
- Каким циклом пользоваться
- Ловушка: неинициализированные переменные и бесконечные циклы
- Оператор break
- Ловушка: оператор break во вложенных циклах
- 7.4. Разработка циклов
- Циклы для сумм и произведений
- Завершение циклов
- Вложенные циклы
- Отладка циклов
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 8. Дружественные функции и перегрузка операторов
- 8.1. Дружественные функции
- Пример: функция равенства
- Применение дружественных функций
- Совет программисту: определяйте и аксессоры, и дружественные функции
- Совет программисту: используйте и функции-члены, и обычные функции
- Пример: класс Money
- Реализация функции digit_to_int (факультативный материал)
- Ловушка: ведущие нули в числовых константах
- Квалификатор const
- Ловушка: непоследовательное использование квалификатора const
- 8.2. Перегрузка операторов
- Реализация перегрузки операторов
- Конструкторы для автоматического приведения типов
- Перегрузка унарных операторов
- Перегрузка операторов >> и <<
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 9. Раздельная компиляция и пространства имен
- 9.1. Раздельная компиляция
- Еще раз об абстрактных типах данных
- Пример: DigitalTime — отдельно компилируемый класс
- Директива #ifndef
- Совет программисту: определение других библиотек
- 9.2. Пространства имен
- Пространства имен и директива using
- Создание пространств имен
- Уточнение имен
- Особенности использования пространств имен (факультативный материал)
- Безымянные пространства имен
- Совет программисту: выбор имени для пространства имен
- Ловушка: не путайте глобальное и безымянное пространства имен
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 10. Массивы
- 10.1. Основные понятия
- Объявление массивов и доступ к их элементам
- Совет программисту: используйте для работы с массивами цикл for
- Ловушка: элементы массивов всегда нумеруется начиная с нуля
- Совет программисту: задавайте размер массивов с помощью определенных в программе констант
- Расположение массивов в памяти
- Ловушка: выход индекса массива за допустимые пределы
- Инициализация массивов
- 10.2. Массивы и функции
- Элементы массива в качестве аргументов функций
- Массивы в качестве аргументов функций
- Квалификатор параметра const
- Ловушка: несогласованное использование квалификатора const
- Функции, возвращающие массивы
- Пример: диаграмма производительности
- 10.3. Использование массивов
- Частично заполненные массивы
- Совет программисту: не ограничивайте количество формальных параметров
- Пример: поиск в массиве
- Пример: сортировка массива
- 10.4. Массивы и классы
- Массивы структур и массивы классов
- Массивы как члены классов
- Пример: класс для частично заполненного массива
- 10.5. Многомерные массивы
- Основные понятия
- Параметры типа многомерных массивов
- Пример: программа, использующая двухмерный массив
- Ловушка: запятые между индексами массива
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 11. Строки и векторы
- 11.1. Массивы для хранения строк
- Строковые значения и строковые переменные C
- Ловушка: использование операторов = и == со строками C
- Функции из библиотеки cstring
- Ввод и вывод строк C
- Преобразование строк C в числа
- 11.2. Стандартный класс string
- Первое знакомство с классом string
- Ввод-вывод с помощью класса string
- Совет программисту: дополнительные версии функции getline
- Ловушка: комбинирование ввода с помощью потока cin и функции getline
- Обработка строк с помощью класса string
- Пример: проверка палиндрома
- Взаимное преобразование объектов типа string и строк C
- 11.3. Векторы
- Основные понятия
- Ловушка: индекс в квадратных скобках превышает размер вектора
- Совет программисту: учитывайте особенности присваивания для векторов
- Эффективное использование памяти
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 12. Указатели и динамические массивы
- 12.1. Указатели
- Переменные-указатели
- Основы управления памятью
- Ловушка: зависшие указатели
- Динамические и автоматические переменные
- Совет программисту: определяйте типы указателей
- 12.2. Динамические массивы
- Массивы переменных и переменные-указатели
- Создание и использование динамических массивов
- Арифметические операции с указателями (факультативный материал)
- Многомерные динамические массивы (факультативный материал)
- 12.3. Классы и динамические массивы
- Пример: класс для строковой переменной
- Деструкторы
- Деструкторы
- Конструктор копирования
- Перегрузка оператора присваивания
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 13. Рекурсия
- 13.1. Рекурсивные функции, не возвращающие значений
- Пример: вертикальная запись чисел
- Подробно о рекурсии
- Ловушка: бесконечная рекурсия
- Стеки и рекурсия
- Ловушка: переполнение стека
- Рекурсия и итеративное выполнение
- 13.2. Рекурсивные функции, возвращающие значения
- Схема рекурсивных функций, возвращающих значения
- Пример: еще одна функция возведения в степень
- 13.3. Рекурсивное мышление
- Рекурсивные технологии проектирования
- Пример: реализация двоичного поиска с помощью рекурсии
- Пример: рекурсивная функция-член
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 14. Шаблоны
- 14.1. Шаблоны для абстрактных алгоритмов
- Шаблоны функций
- Ловушка: сложности компиляции
- Пример: универсальная функция сортировки
- Совет программисту: как определять шаблоны
- Ловушка: использование шаблона с неподходящим типом данных
- 14.2. Шаблоны и абстракция данных
- Синтаксис шаблона класса
- Пример: класс-массив
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 15. Указатели и связные списки
- 15.1. Узлы и связные списки
- Узлы
- Связные списки
- Вставка узла в начало списка
- Ловушка: потерянные узлы
- Поиск в связном списке
- Указатели в качестве итераторов
- Вставка и удаление элементов в середине списка
- Ловушка: использование оператора присваивания с динамическими структурами данных
- 15.2. Применение связных списков
- Стеки
- Пример: класс Stack
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 16. Наследование и полиморфизм
- 16.1. Наследование
- Производные классы
- Конструкторы в производных классах
- Ловушка: использование закрытых переменных-членов базового класса
- Ловушка: закрытые функции-члены можно считать ненаследуемыми
- Модификатор protected
- Переопределение функций-членов
- Переопределение и перегрузка
- Доступ к переопределенной функции базового класса
- 16.2. Подробнее о наследовании
- Функции, которые не наследуются
- Операторы присваивания и конструкторы копирования в производных классах
- Деструкторы и производные классы
- 16.3. Полиморфизм
- Позднее связывание
- Виртуальные функции в языке C++
- Виртуальные функции и расширение совместимости типов
- Ловушка: проблема расщепления
- Ловушка: без функций-членов не обойтись
- Ловушка: попытка откомпилировать определение класса без определений всех его виртуальных функций-членов
- Совет программисту: объявляйте деструкторы как виртуальные
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Глава 17. Обработка исключений
- 17.1. Основы обработки исключений
- Простой пример обработки исключений
- Определение собственных классов исключений
- Выброс и перехват исключений различных типов
- Ловушка: сначала перехватывайте специализированные исключения
- Совет программисту: классы исключений могут быть пустыми
- Выброс исключений в функции
- Спецификация исключений
- Ловушка: спецификация исключений в производных классах
- 17.2. Программирование обработки исключений
- Когда следует выбрасывать исключения
- Ловушка: необработанные исключения
- Ловушка: вложенные блоки try...catch
- Ловушка: злоупотребление исключениями
- Иерархия классов исключений
- Проверка наличия свободной памяти
- Повторный выброс исключения
- Резюме
- Ответы к упражнениям для самопроверки
- Практические задания
Приложения
- Приложение 1. Ключевые слова C++
- Приложение 2. Приоритет выполнения операторов
- Приложение 3. Набор символов ASCII
- Приложение 4. Некоторые библиотечные функции
- Приложение 5. Макрос assert
- Приложение 6. Встраиваемые функции
- Приложение 7. Перегрузка квадратных скобок индекса массива
- Приложение 8. Указатель this
- Приложение 9. Перегрузка операторов как операторов-членов
Алфавитный указатель
|
Быстрый фильтр: Книга | Программирование | на | С++ | | 4 | е | изд | | Савич | | Питер | | 2004 | |
Доставка Книга Программирование на С++. 4-е изд. Савич. Питер. 2004 почтой наложным платежом.
|
|
|
|
|
|
|
Купить книгу в разделе Книги компьютерные - Книги C, C++,С# |
|
|
Книга C# 3.0: полное руководство. Шилдт |
Книга "C# 3.0: полное руководство" - полностью исправленное и обновленное издание классического справочника по C# 3.0!
"Возьмите с полки эту книгу, чтобы найти ответы на любые вопросы по программированию на C#. Незаменимая вещь!"
— Майкл Ховард, корпорация Microsoft |
|
|
|
Книга Работа с базами данных в C++ Builder. Хомоненко |
Рассматривается использование средств С++ Builder для разработки приложений баз данных. Даются понятия баз данных, характеризуются элементы и описываются этапы проектирования реляционных баз данных, изложена технология разработки информационных систем. Показаны основные приемы работы с данными при создании таблиц, подготовке SQL-запросов, использовании триггеров и хранимых процедур. Подробно описаны основные визуальные компоненты для разработки приложений, а также инструменты для администрирования локальных и удаленных данных. |
|
|
|
|
|
|
|
|
|
|
|