Читаем Программирование онлайн бесплатно

<p>Бьярне Страуструп</p><p>Программирование</p><p>Принципы и практика использования C++</p><p>Исправленное издание</p><p><strong>Оглавление</strong></p>

Предисловие

Обращение к читателям

Глава 1. Компьютеры, люди и программирование

  1.1. Введение

  1.2. Программное обеспечение

  1.3. Люди

  1.4. Компьютерные науки

  1.5. Компьютеры повсюду

   1.5.1. С экранами и без них

   1.5.2. Кораблестроение

   1.5.3. Телекоммуникации

   1.5.4. Медицина

   1.5.5. Информация

   1.5.6. Вид сверху

  1.5.7. И что?

 1.6. Идеалы программистов

Часть I. Основы

 Глава 2. Hello, World!

  2.1. Программы

  2.2. Классическая первая программа

  2.3. Компиляция

  2.4. Редактирование связей

  2.5. Среды программирования

 Глава 3. Объекты, типы и значения

  3.1. Ввод

  3.2. Переменные

  3.3. Ввод и тип

  3.4. Операции и операторы

  3.5. Присваивание и инициализация

   3.5.1. Пример: выявление повторяющихся слов

  3.6. Составные операторы присваивания

   3.6.1. Пример: поиск повторяющихся слов

  3.7. Имена

  3.8. Типы и объекты

  3.9. Типовая безопасность

   3.9.1. Безопасные преобразования

   3.9.2. Опасные преобразования

 Глава 4. Вычисления

  4.1. Вычисления

  4.2. Цели и средства

  4.3. Выражения

   4.3.1. Константные выражения

   4.3.2. Операторы

   4.3.3. Преобразования

  4.4. Инструкции

   4.4.1. Инструкции выбора

    4.4.1.1. Инструкции if

    4.4.1.2. Инструкции switch

    4.4.1.3. Технические подробности инструкции switch

   4.4.2. Итерация

    4.4.2.1. Инструкции while

    4.4.2.2. Блоки

    4.4.2.3. Инструкции for

  4.5. Функции

   4.5.1. Зачем нужны функции

   4.5.2. Объявления функций

  4.6. Вектор

   4.6.1. Увеличение вектора

   4.6.2. Числовой пример

   4.6.3. Текстовый пример

  4.7. Свойства языка

 Глава 5. Ошибки

  5.1. Введение

  5.2. Источники ошибок

  5.3. Ошибки во время компиляции

   5.3.1. Синтаксические ошибки

   5.3.2. Ошибки, связанные с типами

   5.3.3. Не ошибки

  5.4. Ошибки во время редактирования связей

  5.5. Ошибки во время выполнения программы

   5.5.1. Обработка ошибок в вызывающем модуле

   5.5.2. Обработка ошибок в вызываемом модуле

   5.5.3. Сообщения об ошибках

  5.6. Исключения

   5.6.1. Неправильные аргументы

   5.6.2. Ошибки, связанные с диапазоном

   5.6.3. Неправильный ввод

   5.6.4. Суживающие преобразования

  5.7. Логические ошибки

  5.8. Оценка

  5.9. Отладка

   5.9.1. Практические советы по отладке

  5.10. Пред- и постусловия

   5.10.1. Постусловия

  5.11. Тестирование

 Глава 6. Создание программ

  6.1. Задача

  6.2. Размышления над задачей

   6.2.1. Стадии разработки программы

   6.2.2. Стратегия

  6.3. Назад к калькулятору!

   6.3.1. Первое приближение

   6.3.2. Лексемы

   6.3.3. Реализация лексем

   6.3.4. Использование лексем

   6.3.5. Назад к школьной доске!

  6.4. Грамматики

   6.4.1. Отступление: грамматика английского языка

   6.4.2. Запись грамматики

  6.5. Превращение грамматики в программу

   6.5.1. Реализация грамматических правил

   6.5.2. Выражения

    6.5.2.1. Выражения: первая попытка

    6.5.2.2. Выражения: вторая попытка

    6.5.2.3. Выражения: третья попытка (удачная)

   6.5.3. Термы

   6.5.4. Первичные выражения

  6.6. Испытание первой версии

  6.7. Испытание второй версии

  6.8. Потоки лексем

   6.8.1. Реализация класса Token_stream

   6.8.2. Считывание лексем

   6.8.3. Считывание чисел

  6.9. Структура программы

 Глава 7. Завершение программы

  7.1. Введение

  7.2. Ввод и вывод

  7.3. Обработка ошибок

  7.4. Отрицательные числа

  7.5. Остаток от деления: %

  7.6. Приведение кода в порядок

   7.6.1. Символические константы

   7.6.2. Использование функций

   7.6.3. Расположение кода

   7.6.4. Комментарии

  7.7. Исправление ошибок

  7.8. Переменные

   7.8.1. Переменные и определения

   7.8.2. Использование имен

   7.8.3. Предопределенные имена

   7.8.4. Все?

 Глава 8. Технические детали: функции и прочее

  8.1. Технические детали

  8.2. Объявления и определения

   8.2.1. Виды объявлений

   8.2.2. Объявления переменных и констант

   8.2.3. Инициализация по умолчанию

  8.3. Заголовочные файлы

  8.4. Область видимости

  8.5. Вызов функции и возврат значения

   8.5.1. Объявление аргументов и тип возвращаемого значения

   8.5.2. Возврат значения

   8.5.3. Передача параметров по значению

   8.5.4. Передача параметров по константной ссылке

   8.5.5. Передача параметров по ссылке

   8.5.6. Сравнение механизмов передачи параметров по значению и по ссылке

   8.5.7. Проверка аргументов и преобразование типов

   8.5.8. Реализация вызова функции

  8.6. Порядок вычислений

   8.6.1. Вычисление выражения

   8.6.2. Глобальная инициализация

  8.7. Пространства имен

   8.7.1. Объявления using и директивы using

 Глава 9. Технические детали: классы и прочее

  9.1. Типы, определенные пользователем

  9.2. Классы и члены класса

  9.3. Интерфейс и реализация

  9.4. Разработка класса

   9.4.1. Структуры и функции

   9.4.2. Функции-члены и конструкторы

   9.4.3. Скрываем детали

   9.4.4. Определение функций-членов

   9.4.5. Ссылка на текущий объект

   9.4.6. Сообщения об ошибках

  9.5. Перечисления

  9.6. Перегрузка операторов

  9.7. Интерфейсы классов

   9.7.1. Типы аргументов

   9.7.2. Копирование

   9.7.3. Конструкторы по умолчанию

   9.7.4. Константные функции-члены

   9.7.5. Члены и вспомогательные функции

  9.8. Класс Date

Часть II Ввод и вывод

 Глава 10 Потоки ввода и вывода

  10.1. Ввод и вывод

  10.2. Модель потока ввода-вывода

  10.3. Файлы

  10.4. Открытие файла

  10.5. Чтение и запись файла

  10.6. Обработка ошибок ввода-вывода

  10.7. Считывание отдельного значения

   10.7.1. Разделение задачи на управляемые части

   10.7.2. Отделение диалога от функции

  10.8. Операторы вывода, определенные пользователем

  10.9. Операторы ввода, определенные пользователем

  10.10. Стандартный цикл ввода

  10.11. Чтение структурированного файла

   10.11.1. Представление в памяти

   10.11.2. Считывание структурированных значений

   10.11.3. Изменение представления

 Глава 11 Настройка ввода и вывода

  11.1. Регулярность и нерегулярность

  11.2. Форматирование вывода

   11.2.1. Вывод целых чисел

   11.2.2. Ввод целых чисел

   11.2.3. Вывод чисел с плавающей точкой

   11.2.4. Точность

   11.2.5. Поля

  11.3. Открытие файла и позиционирование

   11.3.1. Режимы открытия файлов

   11.3.2. Бинарные файлы

   11.3.3. Позиционирование в файлах

  11.4. Потоки строк

  11.5. Ввод, ориентированный на строки

  11.6. Классификация символов

  11.7. Использование нестандартных разделителей

  11.8. И еще много чего

 Глава 12 Вывод на экран

  12.1. Почему графика?

  12.2. Вывод на дисплей

  12.3. Первый пример

  12.4. Использование библиотеки графического пользовательского интерфейса

  12.5. Координаты

  12.6. Класс Shape

  12.7. Использование графических примитивов

   12.7.1. Графические заголовочные файлы и функция main

   12.7.2. Почти пустое окно

   12.7.3. Оси координат

   12.7.4. График функции

   12.7.5. Многоугольники

   12.7.6. Прямоугольник

   12.7.7. Заполнение

   12.7.8. Текст

   12.7.9. Изображения

   12.7.10. И многое другое

  12.8. Запуск программы

   12.8.1. Исходные файлы

 Глава 13 Графические классы

  13.1. Обзор графических классов

  13.2. Классы Point и Line

  13.3. Класс Lines

  13.4. Класс Color

  13.5. Класс Line_style

  13.6. Класс Open_polyline

  13.7. Класс Closed_polyline

  13.8. Класс Polygon

  13.9. Класс Rectangle

  13.10. Управление неименованными объектами

  13.11. Класс Text

  13.12. Класс Circle

  13.13. Класс Ellipse

  13.14. Класс Marked_polyline

  13.15. Класс Marks

  13.16. Класс Mark

  13.17. Класс Image

 Глава 14 Проектирование графических классов

  14.1. Принципы проектирования

   14.1.1. Типы

   14.1.2. Операции

   14.1.3. Именование

   14.1.4. Изменяемость

  14.2. Класс Shape

   14.2.1. Абстрактный класс

   14.2.2. Управление доступом

   14.2.3. Рисование фигур

   14.2.4. Копирование и изменчивость

  14.3. Базовые и производные классы

   14.3.1. Схема объекта

   14.3.2. Вывод классов и определение виртуальных функций

   14.3.3. Замещение

   14.3.4. Доступ

   14.3.5. Чисто виртуальные функции

  14.4. Преимущества объектно-ориентированного программирования

 Глава 15 Графические функции и данные

  15.1. Введение

  15.2. Построение простых графиков

  15.3. Класс Function

   15.3.1. Аргументы по умолчанию

   15.3.2. Новые примеры

  15.4. Оси

  15.5. Аппроксимация

  15.6. Графические данные

   15.6.1. Чтение файла

   15.6.2. Общая схема

   15.6.3. Масштабирование данных

   15.6.4. Построение графика

 Глава 16 Графические пользовательские интерфейсы

Похожие книги

Другие книги Бьёрн Страуструп