  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++. Классика CS. Коплиен | 
                   
                  
                    
                    
                     
                    
					Эта книга написана для программистов, уже владеющих языком C++ и желающих поднять свою квалификацию на новый уровень. Давая представление о стиле и идиоматике языка, книга знакомит читателя с теми нетривиальными знаниями, которые опытные программисты C++ получают на личном опыте. Она показывает, что C++ можно использовать и для разработки простых абстракций данных, и для полноценной реализации абстрактных типов данных, и для объектно-ориентированного программирования различных стилей.                      | 
                   
                  
                    | 
                       | 
                   
                 
              | 
           
         
           | 
        
         | 
       
     
	 | 
      | 
   
  
    |   | 
      | 
      | 
   
  
         | 
          | 
          |