Книги, научные публикации

Харви Дейтел, Пол Дейтел КАК ПРОГРАММИРОВАТЬ НА С Книга предлагает читателю курс программирования, ориентированный на языки С/С++, и рассчитана как на начинающих, не владеющих никакими языками

программирования, так и на опытных программистов, которые могут просто пропустить не интересующие их главы. Помимо достаточно полного и глубокого изложения языка С дается весьма серьезное введение в C++, одного из наиболее перспективных на настоящий момент языков;

ему посвящена значительная часть книги. Особое внимание уделяется методикам структурного и объектно ориентированного программирования больших программных систем. Примеры и многочисленные упражнения знакомят читателя с часто применяемыми алгоритмами и фундаментальными структурами данных, показывая технические приемы их реализации. Приводится также масса полезных советов.

Книга адресована широкому кругу читателей, от новичков до студентов, изучающих программирование в рамках своей специальности.

Содержание Предисловие Об этой книге Обзор книги Глава 1. Принципы машинной обработки данных 1.1. Введение 1.2. Что такое компьютер? 1.3. Внутренняя организация компьютера 1.4. Пакетная обработка, мультипрограммирование и разделение времени 1.5. Персональные вычисления, распределенные вычисления и вычисления в модели клиент/сервер 1.6. Машинные языки, языки ассемблера и языки высокого уровня 1.7. История языка С 1.8. Стандартная библиотека С 1.9. Другие языки высокого уровня 1.10. Структурное программирование 1.11. Основные принципы среды С 1.12. Общие замечания о С и этой книге 1.13. Concurrent С (Параллельный С) 1.14. Объектно-ориентированное программирование и C++ Резюме Хороший стиль программирования Советы по переносимости программ Советы по повышению эффективности Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Рекомендуемая литература Глава 2. Введение в программирование на С 2.1. Введение 2.2. Простая программа на С: печать строки текста 2.3. Еще одна простая программа на С;

сложение двух целых чисел 2.4. Общие понятия о памяти компьютера 2.5. Арифметика в С 2.6. Принятие решений: операции равенства и отношения Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 3. Структурная разработка программ 3.1. Введение 3.2. Алгоритмы 3.3. Псевдокод 3.4. Управляющие структуры 3.5. Структура выбора if 3.6. Структура выбора if/else 3.7. Структура повторения while 3.8. Формулирование алгоритмов: пример 1 (повторение, управляемое счетчиком) 3.9. Формулирование алгоритмов на основе нисходящего пошагового уточнения: пример 2 (повторение, управляемое контрольным значением) 3.10. Формулирование алгоритмов на основе нисходящего пошагового уточнения: пример 3 (вложенные управляющие структуры) 3.11. Операции присваивания 3.12. Операции инкремента и декремента Резюме Распространенные ошибки программирования Хороший стиль программирования Советы, по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Глава 4. Управление программой 4.1. Введение 4.2. Основы структур повторения 4.3. Повторение, управляемое счетчиком 4.4. Структура повторения for 4.5. Структура for: замечания и рекомендации 4.6. Примеры структур for 4.7. Структура со множественным выбором switch 4.8. Структура повторения do/while 4.9. Операторы break и continue 4.10. Логические операции 4.11. Смешивание операций равенства (==) и присваивания (=) 4.12. Краткая сводка по структурному программированию Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Советы по переносимости программ Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Глава 5. Функции 5.1. Введение 5.2. Программные модули в С 5.3. Функции математической библиотеки 5.4. Функции 5.5. Определения функций 5.6. Прототипы функций 5.7. Заголовочные файлы 5.8. Вызов функций: вызов по значению и по ссылке 5.9. Генерация случайных чисел 5.10. Пример: стохастическая игра 5.11. Классы памяти 5.12. Правила области действия 5.13. Рекурсия 5.14. Пример применения рекурсии: числа Фибоначчи 5.15. Рекурсия в сравнении с итерацией Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 6. Массивы 6.1. Введение 6.2. Массивы 6.3. Объявление массивов 6.4. Примеры работы с массивами 6.5. Передача массивов в функции 6.6. Сортировка массивов 6.7. Пример: вычисление среднего значения, медианы и наиболее вероятного значения с использованием массивов 6.8. Поиск в массивах 6.9. Многомерные массивы Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Упражнения на рекурсию Глава 7. Указатели 7.1. Введение 7.2. Объявление и инициализация переменной-указателя 7.3. Операции над указателями 7.4. Передача параметра по ссылке 7.5. Использование модификатора const с указателями 7.6. Программа пузырьковой сортировки, использующая вызов по ссылке 7.7. Выражения и арифметические операции с указателями 7.8. Связь между указателями и массивами 7.9. Массивы указателей 7.10. Пример: программа тасовки и сдачи колоды карт 7.11. Указатели на функции Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Советы по переносимости программ Общие методические замечания Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Специальный раздел: как самому построить компьютер Глава 8. Символы и строки 8.1. Введение 8.2. Строки и символы 8.3. Библиотека обработки символов 8.4. Функции преобразования строк 8,5. Функции стандартной библиотеки ввода/вывода 8,6. Функции операций над строками из библиотеки обработки строк 8.7. Функции сравнения из библиотеки обработки строк 8.8. Функции поиска из библиотеки обработки строк 8.9. Функции памяти библиотеки обработки строк 8.10. Другие функции из библиотеки обработки строк Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Специальный раздел: более сложные упражнения по работе со строками Глава 9. Форматированный ввод/вывод 9.1. Введение 9.2. Потоки 9.3. Форматированный вывод с применением printf 9.4. Печать целых чисел 9.5. Печать чисел с плавающей точкой 9.6. Печать строк и символов 9.7. Другие спецификаторы преобразования 9.8. Печать с заданием ширины поля и точности представления 9.9. Использование флагов в строке управления форматом printf 9.10. Печать литералов и Esc-последовательностей 9.11. Форматированный ввод с применением scanf Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 10. Структуры, объединения, операции с битами и перечисления. 10.1. Введение 10.2. Описания структур 10.3. Инициализация структур 10.4. Доступ к элементам структур 10.5. Использование структур с функциями 10.6. Typedef 10.7. Пример: моделирование высокоэффективной тасовки и раздачи карт 10.8. Объединения 10.9. Поразрядные операции 10.10. Битовые поля 10.11. Перечислимые константы Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 11. Работа с файлами 11.1. Введение 11.2. Иерархия данных 11.3. Файлы и потоки 11.4. Создание файла последовательного доступа 11.5. Чтение данных из файла последовательного доступа 11.6. Файлы произвольного доступа 11.7. Создание файла произвольного доступа 11.8. Произвольная запись данных в файл произвольного доступа 11.9. Последовательное чтение данных из файла произвольного доступа 11.10. Пример: программа обработки транзакций Резюме Распространенные ошибки программирования Хороший стиль программирования Советы, по переносимости программ Советы по повышению эффективности Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 12. Структуры данных 12.1. Введение 12.2. Структуры, ссылающиеся на себя 12.3. Динамическое распределение памяти 12.4. Связанные списки 12.5. Стеки 12.6. Очереди 12.7. Деревья Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Советы по переносимости программ Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 13. Препроцессор 13.1. Введение 13.2. Директива препроцессора #include 13.3. Директива препроцессора #define: символические константы 13.4. Директива препроцессора #define: макросы 13.5. Условная компиляция 13.6. Директивы препроцессора #error и #pragma 13.7. Операции # и ## 13.8. Нумерация строк 13.9. Предопределенные символические константы 13.10. Макрос подтверждения Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 14. Специальные вопросы 14.1. Введение 14.2. Переадресация ввода/вывода в системах UNIX и DOS 14.3. Списки аргументов переменной длины 14.4. Аргументы командной строки 14.5. Замечания относительно компиляции программ из нескольких исходных файлов 14.6. Выход из программы с помощью exit и atexit 14.7. Модификатор типа volatile 14.8. Суффиксы для целых констант и констант с плавающей точкой 14.9. Еще раз о файлах 14.10. Обработка сигналов 14.11. Динамическое выделение памяти: функции calloc и realloc 14.12. Безусловный переход: goto Резюме Распространенные ошибки программирования Советы по переносимости программ Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы, на упражнения для самоконтроля Упражнения Глава 15. C++ как УулучшенныйФ С 15.1. Введение 15.2. Однострочные комментарии C++ 15.3. Потоковый ввод/вывод C++ 15.4. Объявления в C++ 15.5. Создание новых типов данных в C++ 15.6. Прототипы функций и контроль соответствия типов 15.7. Встроенные функции 15.8. Параметры-ссылки 15.9. Модификатор const 15.10. Динамическое распределение памяти с помощью new и delete 15.11. Параметры, используемые по умолчанию 15.12. Унарная операция разрешения области действия 15.13. Перегрузка функций 15.14. Спецификации внешней связи 15.15. Шаблоны функций Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по переносимости программ Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Рекомендуемая литература Приложение:

ресурсы C++ Глава16. Классы и абстракция данных. 16.1. Введение 16.2. Определение структур 16.3. Доступ к элементам структур 16.4. Реализация пользовательского типа Time с помощью структуры 16.5. Реализация абстрактного типа данных Time с помощью класса 16.6. Область действия класса и доступ к элементам класса 16.7. Отделение интерфейса от реализации 16.8. Управление доступом к элементам класса 16.9. Функции доступа и сервисные функции 16.10. Инициализация объектов класса: конструкторы 16.11. Использование с конструкторами аргументов по умолчанию 16.12. Деструкторы 16.13. Когда вызываются конструкторы и деструкторы 16.14. Использование элементов данных и элементов-функций 16.15. Скрытая ловушка: возвращение ссылки на закрытый элемент данных 16.16. Присваивание по умолчанию путем поэлементного копирования 16.17. Повторное использование программного обеспечения Резюме Распространенные ошибки программирования Хороший стиль программирования Советы, по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы, к упражнениям для самоконтроля Упражнения Глава 17. Классы: часть II 17.1. Введение 17.2. Константные объекты и константные элементы-функции 17.3. Композиция: классы в качестве элементов других классов 17.4. Дружественные функции и дружественные классы 17.5. Указатель this 17.6. Динамическое распределение памяти с помощью операций new и delete 17.7. Статические элементы класса 17.8. Абстракция данных и сокрытие информации 17.9. Контейнерные классы и итераторы 17.10. Шаблоны классов Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Советы, по переносимости программ Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Глава 18. Перегрузка операций 18.1. Введение 18.2. Основные принципы перегрузки операций 18.3. Запреты на перегрузку операций 18.4. Функции-операции как элементы класса и как дружественные функции 18.5. Перегрузка операций передачи в поток и извлечения из потока 18.6. Перегрузка одноместных операций 18.7. Перегрузка двухместных операций 18.8. Пример: класс Array 18.9. Преобразование типов 18.10. Пример: класс String 18.11. Перегрузка ++ и -- 18.12. Пример: класс Date Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы к упражнениям для самоконтроля Упражнения Глава 19. Наследование 19.1. Введение 19.2. Базовые и производные классы 19.3. Защищенные элементы 19.4. Приведение указателей базового класса к указателям на производный класс 19.5. Применение функций-элементов 19.6. Переопределение элементов базового класса в производном классе 19.7. Открытые, защищенные и закрытые базовые классы 19.8. Непосредственные и косвенные базовые классы 19.9. Применение конструкторов и деструкторов в производном классе 19.10. Неявное преобразование объектов производного класса к базовому 19.11. Наследование в конструировании программного обеспечения 19.12. Композиция в сравнении с наследованием 19.13. Отношения УиспользуетФ и УзнаетФ 19.14. Пример: Point, Circle, Cylinder 19.15. Сложное наследование Резюме Распространенные ошибки программирования Хороший стиль программирования Совет по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Глава 20. Виртуальные функции и полиморфизм 20.1. Введение 20.2. Обработка различных типов данных при помощи операторов switch 20.3. Виртуальные функции 20.4. Абстрактные базовые классы и конкретные классы 20.5. Полиморфизм 20.6. Пример: программа начисления заработной платы, использующая возможности полиморфизма 20.7. Новые классы и динамическое связывание 20.8. Виртуальные деструкторы 20.9. Пример: наследование интерфейса и реализации Резюме Распространенные ошибки программирования Хороший стиль программирования Советы по повышению эффективности Общие, методические замечания Упражнения для самоконтроля. Ответы на упражнения для самоконтроля Упражнения Глава 21. Потоки ввода/вывода в C++ 21.1. Введение 21.2. Потоки 21.3. Потоковый вывод 21.4. Потоковый ввод 21.5. Функции неформатируемого ввода/вывода read, gcount и write 21.6. Манипуляторы потоков 21.7. Флаги форматирования потока 21.8. Состояния ошибки потоков 21.9. Ввод/вывод определяемых пользователем типов 21.10. Привязка потока вывода к потоку ввода Резюме Распространенные ошибки программирования Хороший стиль программирования Советы, по повышению эффективности Общие методические замечания Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Приложение А. Синтаксис С Приложение Б. Стандартная библиотека Приложение В. Таблица приоритета операций Приложение Г. Набор символов ASCII Приложение Д. Системы счисления Д.1. Введение Д.2. Запись двоичных чисел в виде восьмеричных и шестнадцатеричных Д.З. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные Д.4. Преобразование числа из двоичной, восьмеричной или шестнадцатеричной форм в десятичную Д.5. Преобразование десятичного числа в двоичное, восьмеричное или шестнадцатеричное Д.6. Отрицательные двоичные числа: дополнение до двух Резюме Упражнения для самоконтроля Ответы на упражнения для самоконтроля Упражнения Предметный указатель #define 589, 590 ASCII #define asm NDEBUG 594 assert #elif 592 assert.h #else 592 atexit #endif 592 atof #error 593 atoi #if 592 atol #ifdef 592 badbit 886, #ifndef 592 break 151, #ftinclude "filename" 588 CЧD #include 588 С #line 594 C++ 43, #pragma 593 calloc #undef 591 catch # в качестве точности 430 cerr 880, # в качестве ширины поля 430 \ char 154, (обратная дробная черта, символ cin (входной поток) 628, 880, продолжения) 591> 151 cout (выходной поток) 628, 880, 151 CPU (ЦПУ) АЧВ ctype.h a.out в UNIX 589 dequeue a[i] 249 double 147, a[i][j] 277 E abort 594 EBCDIC argc 606 endl argv 606 enqueue eofbit 906 inline Ч встроенная функция 633, escape-код 56, 433 int 59, - - \' 433 ios::adjustfield - - \" 433 ios::basefield - - \? 433 ios::fixed - -\\ 433 ios::floatfield - - \a 433 ios::internal - -\b 433 ios::scientific - - \f 433 ios::showbase 900, - - \n 433 ios::showpoint - - \r 433 ios::showpos - - \t 433 isalnum - - \v 433 isalpha escape-последовательность 433 iscntrl 373, esc-символ 55 isdigit exit 609 isgraph 373, EXIT_FAILURE 609 islower 373, EXIT_SUCCESS 609 isprint 373, F Ч G ispunct 373, failbit 886 isspace 373, false 68 isupper 373, fclose feof 495 isxdigit fgetc 493 L Ч R fgets 493 left FIFO (первым пришел Чпервым LIFO (последним пришел Ч ушел) 545 первым ушел) float 105, 107, 196 Long 154, fopen 495 lvalue ("значение слева") 162, FORTRAN 38 main fprintf 496 make fputc 493 makefile fputs 493 malloc (выделить память) fread 504 memchr 396, free 530 memcinp 396, friend 636 memcpy fscanf 499 memmove 396, fseek 506 memset 396, fwrite 504 Pascal 31, 38, getchar 382, 383 pop gets 382 printf get-функция 684 private: 671, I protected: public: 671, 681 strpbrk 390, push 540 strrchr 390, putchar 382 strspn 390, puts 382, 383 strstr 390, raise 613 strtod 378, rand 199 strtok 391, RAND_MAX 199 strtol 378, realloc 616 strtoul 378, return 190, 193 struct rewind 499 TЧ W rvalue ("значение справа") 162 template 636, S this scant 434 throw SEEK_CUR 507 time SEEK_END SEEK_SET 507 tmpfile set-функция 684 tolower 373, short 154 toupper 373, signal 613 true signal.h 613 try size_t 390 typedef sizeof 324, 530 union skipws 898 UNIX 36, 39, 41, sprintf 382, 384 unsigned srand 201 uppercase sscanf 382, 385 va_arg stdarg.h 604 va_end stderr (стандартная ошибка) 493 va_list stdin (стандартный ввод) 493 va_start stdio.h 382, 420 virtual stdlib.h 378 void stdout (стандартный вывод) 493 void * (указатель на void) strcat 386 volatile strchr 390, 391 width 894, strcmp 388 A strcpy 386 абстрактный базовый класс strcspn 390, 391 - класс strerror 399 - тип данных (ADT) 670, string.h 385 абстракция 190, strlen 399 - данных 665, strncat 386, 387 автоматическая переменная strncmp 388 автоматический класс памяти strncpy 386 - локальный объект автоматическое приведение блок памяти аргументов 195 блок-схема агрегаты 452 блочный метод построения программ активация функции 190 алгоритм 89 буква альтернатива операторам switch 849, буквенное поле 863 В амперсанд (&) 61 ввод/вывод (I/O) анализ данных опроса 269 вершина аппаратная платформа 37 виртуальная функция аппаратная часть 31 - - базового класса аргумент 55, 188 виртуальный деструктор аргументы командной строки 606 вложенные скобки - функции по умолчанию 644 - структуры арифметика указателей 326 - - if/else арифметические операции 64 - управляющие структуры 92, - операции присваивания: вложенный класс +=,-=,*=,/= и %= 113 внешняя компоновка ассоциативность операций 71 внутренняя компоновка - слева направо 66 возведение 107, - справа налево 71 восьмеричные числа (начинаются с атрибут 665 О) 893, Б восьмеричный формат 421, 422, база данных 492 временная область для обмена базовый класс 807 значений байт 491 временный файл безопасная по типу компоновка 647 вставка отображаемых символов безопасный по типу ввод/вывод 879 - узла 537, бесконечная отсрочка 355 встроенная функция-элемент бесконечный цикл 98, 155 встроенный тип 758, библиотека классов потоков 880 второе уточнение 103, - обработки сигналов 613 входной блок - потоков 629 вхождение в область действия - утилит общего назначения 378 выбор между быстродействием и библиотеки классов 808 компактностью бинарная операция разрешения выбор областидействия ( :: ) 675 вызов по значению 198, бит 491 - - ссылке 198, битовое поле 472 - функции - - нулевой ширины 471 вызываемая функция блок 55, 98, 192 вызывающая функция блок default в структуре switch 148, выравнивание 152 - по левому краю 148, - - правому краю 148, 430 дополнение выражение в качестве индекса 249 - до единицы - с указателями 326 доступ к элементам структуры - со смешанными типами 196 дружественная функция выход за пределы массива 257 дружественный класс - из области действия 691 друзья базового класса выходной блок 33 - производного класса вычитание двух указателей 326, 327 естественный язык компьютера - целого из указателя 326, 328 З ГЧ Е заголовочные файлы стандартной генерация вызова по ссылке 312 библиотеки 197, - случайных чисел 199 заголовочный файл 197, 588, гистограмма 257, 258 загрузчик глобальная переменная 208, 607 задача глобальный объект 691 закрытие файла голова очереди 545 закрытое наследование данные 32 закрытый базовый класс двоичная цифра 491 заменяющий текст 253, двоичное дерево 550 запись 452, - - поиска 550 - в строчку двойная косвенная адресация 537 заполнение двумерный массив 277 заполнитель структуры двухместные операции 61, 65 запуск программы действие 55, 67, 88 зарезервированные слова декремент 139 защищенное наследование - указателя 326, 327 защищенный базовый класс деление на 0 65, 104 - элемент класса 810, - нацело 65 звездочка (*) дерево 550 знак минуса для выравнивания по деструктор 674, 691 левому краю - базового класса 821 - процента % (esc-символ) - производного класса 821 - равенства = (операция десятичная цифра 491 присваивания) диалоговое вычисление 61 значение - динамические массивы 615 - переменной - объекты 644, 734 - элемента - структуры данных 528 И динамическое распределение памяти идентификатор 308 иерархическое отношение - связывание 850, 862 иерархия возведения директива препроцессора 588 - данных -#define 253 - классов 810, 851, длина строки именованная константа 641 имя 59, - fstream 63 - if'stream - массива 249 - ios - структуры 455 - iostream - файла 495 - istream - элемента 453 - ofstream имя-этикетка 453 - ostream - - класса 667 - String инвертированный набор - элемента сканирования 437 классы памяти индекс 249 клиент - столбца 277 - класса 674, - строки 277 ключ записи индексация указателя 330 - поиска индикатор конца файла 495 ключевое слово operator 636, инициализатор 644 - - protected - базового класса 821 - - virtual - элемента 687 ключевые слова 71, инициализация 100 код символа - массива 252, 258, 278 команда ее в UNIX - объекта класса 687 комментарий 55, - структур 455 компилятор 36, 39, - указателей 309 композиция инкапсуляция 666 компоновщик инкремент указателя 326, 327 компьютер интерактивное вычисление 61 компьютерная программа интерфейс класса 674, 677 конвейер исключение goto 90 "конец ввода данных" исключительная ситуация с конец файла 151, 496, 889, плавающей точкой 613 конечное значение управляющей исполнение программы 39 переменной исполняемый образ 41 конечный символ истинность 68 конкатенация вызовов функций итератор 743 - - элементов-функций итерация 213, 219 - строк итоговая сумма 100 конкретные классы 850 константная К элемент-функция 717, квадратные скобки 249 константный объект клавиша enter 61 константный указатель 320, - return 61 - - на константные данные класс 666, 670 - - на не-константные данные - Array 765 конструирование программного - Date 788 обеспечения конструктор 671, 687, 734 - - dec - базового класса 821, 827 - - Hush - копии 773, 774 - - hex - объекта-элемента 727 - - oct - по умолчанию 690, 727 - - resetiosflags - - - базового класса 821 - - setbase - преобразования 777 - - setfill - производного класса 821 - - setprecision контейнерные классы 743 - - setw контрольное значение 102,139 - - ws 898 маска копирование строк 386 маскирование битов копия значения 198 массив корневой узел 550 - п на m косвенная адресация 309 - строк - ссылка на переменную 309 - структур косвенный базовый класс 820 - указателей крах программы 104 масштабирование круглые скобки () 65, 66 масштабируемость Л машинно-зависимый левое выравнивание 899 машинно-независимый - поддерево 550 машинный язык левый потомок 550 медиана лексема 391, 394 метка case линейная структура данных 550 метод линейный поиск 273 многозадачность линии перехода 90 многомерный массив листовой узел 550 множественный выбор 91, литерал 55, 371 моделирование 199, литеральные символы 421,433 модель действие/решение логика switch 849 модель клиент/сервер логическая ошибка 97 модульная программа логические блоки 33 мультипликативные операции - операции 158 мультипрограммирование логическое И (&&) 158, 159 мультипроцессор - ИЛИ (||) 158, 159 "мусор" - отрицание (!) 158, 160 Н ложность 68 набор символов 389, локальная переменная 207, 209 - - ASCII М - сканирования макроопределение 590 надкласс макрос 589 наиболее вероятное значение - с аргументами 590 направленный ациклический граф манипулятор потока 893 нарушение сегментации 613 - текстов наследование 806, 807, 849 обратная косая черта \ (esc-символ) настройка программного обеспечения 825 обход научная нотация 423 - с отложенной выборкой 551, начальное значение управляющей - с порядковой выборкой 551, переменной 139, 142 - с предварительной выборкой 551, не равное нулю (true) 68 недопустимая инструкция 613 общая сумма элементов массива 255, неименованное битовое поле 472 не-константный указатель на объединение строк с другими константные данные 318 строками - - на не-константные данные 317 объект 43, не-фатальная ошибка 65, 97 объект - элемент данных 723, нелинейная структура данных 550 объектно-ориентированное неоднозначность в сложном программирование (OOP) наследовании 834, 838 43,665,807, 826, неопределенное повторение 102, 139 объектный код неперегружаемые операции 759 объявление непосредственный базовый класс - класса 820, 849 - массива неразрушающее чтение из ячейки 64 - структур неформатируемый ввод/вывод 892 - функции неявное преобразование 107 однострочный комментарий (//) неявные преобразования типа 785 окончание оператора (;

) нисходящее пошаговое уточнение 33, округление 107, 421, 102,109,335 окружение (рабочая среда) номер позиции 249 операнд нотация указатель/смещение 330 оператор нулевой Элемент 249 - goto 90, нули и единицы 490 нуль (false) 68 - присваивания нуль-символ '\0' 258 операции как функции О - отношения 68, область действия 206, 209 - равенства 68, - - блока 209 операция - - класса 676, 735 - delete 643, - - прототипа 209 - delete[] - - символической константы или - new 643, макроса 591 - взятия адреса & 61, - - файла 209, 676 - "взять из" (Ф) - - функции 209 - взятия по модулю (%) - свободной памяти 643 - выбора элемента - стрелка обработка строк 370, 385 - - - точка (.) - - - класса (.) 667 открытый интерфейс класса 674, - декремента(--) 114 отладчик - дополнения до единицы (-) 469 отношение знает - извлечения из потока (Ф) 628, 881 - имеет 808, - инкремента(++) 114 - использует - косвенной адресации (*) 309 - является 808, - левого сдвига (У) 464, 469 отображаемый символ 373, - передачи в поток (У) 628, 881 отступ - поразрядного И (&) 464, 465 очередь - - включающего ИЛИ (|) 464, 468 ошибка бесконечной рекурсии - - исключающего ИЛИ (*) 464, 468 - времени компиляции 60' - "послать в" (У) 628 - смещения индекса - постдекремента 114 - - счетчика - постинкремента 114 П - правого сдвига (Ф) 464, 469, 470 память 33, - предекремента 114 параметр в определении функции - преинкремента 114 189, - преобразования 776 параметр числа записей 506, - приведения 107 параметризованный манипулятор - присваивания (=) 61 потока - - левого сдвига (У=) 470 параметризованный тип - - поразрядного И (&'=) 470 параметр-ссылка - - - включающего ИЛИ (|=) 470 первичная память - - - исключающего ИЛИ ("=) 470 первое уточнение - - правого сдвига (Ф=) 470 переадресация ввода/вывода - разрешения области действия :: 675 переадресация потока - разыменования (*) 310 перегружаемые операции - ссылки & 699 перегруженная дружественная - умножения (*) 64 функция-операция - элемента структуры - стрелка (->) - операция != 766, 455 - - [] 771, - - - - точка (.) 455 определение класса - - < 671 - - <= - структур 453 - - == 771, - функции 191 - - > определенное повторение 100, 139 - - >= оптимизирующий компилятор 207 - - присваивания (=) 771, основной случай рекурсии 212 - функция-операция - элемент класса остановка в узле 555 отказ программы 104 перегрузка двухместной операции открытие файла 495, 498 открытое наследование 809 - одноместной операции открытый базовый класс 820 - операций - постфиксной операции 787 потоки, определяемые пользователем - префиксной операции 786 - функций 647 потоковый ввод передача массивов в функции 263 - вывод - по ссылке 263 потомки - управления 90 пошаговое уточнение переменная 59 поэлементное копирование - "только для чтения" 641 правила старшинства операций 65, - класса static 206, 208 правило вложения - управления циклом 139, 143 - суперпозиции - -константа 641 правое выравнивание переносимость 37, 42 - поддерево переопределение элемента базового правый потомок класса 816 предикатная функция 536, переопределенная виртуальная предопределенные потоки функция 849,850 символические константы перехват 613 представитель класса перечисление 474 представление символа числовым перечислимая константа 474 кодом период хранения 206 преобразование объекта персональный компьютер 34 производного класса в объект побочные эффекты 198 базового класса поведение 665, 670 - указателя производного класса в повторение 98 указатель базового класса - управляемое счетчиком 100, 139 определяемое пользователем повторное использование преобразования между встроенными программного кода 37, 189, типами и классами 702,826 - классами различного типа поддерево 550 препроцессор С 40, 58, подкласс 809 препроцессорная операция позднее связывание 862 конкатенации ## поиск в массиве 273 - - преобразования в строку # поле 491 прерывание полиморфизм 848, 851,853 приглашение пользователь класса 676 принцип минимума привилегий 207, поразрядные операции 463 316, 320, 679, порядок действий 88 принятие решения последовательная структура 90 приоритет операций последовательное выполнение 90 приращение управляющей поток 421 переменной - стандартного ввода 420 присваивание структур - - вывода 420 указателя 309, 310, - стандартной ошибки 421 пробельные символы 71, 92, 376, проверка на выход за пределы - - - w+ массива 783 рекурсивная функция программа-транслятор 36 рекурсивный вызов программист 32 рекурсия 210, программное обеспечение 31, 32 решение 67, производный класс 808, 849 родительский узел тип 453 С произвольный доступ 503 связанный список 308, простое наследование 807 сдвиг 203, условие 158 - влево 464, прототип функции 190, 194 - вправо 464, проход сортировки 268 сервисная функция процедурное программирование сиблинги 666 сигнальное значение прямая ссылка на переменную 309 сигнатура псевдокод 89 символ псевдослучайные числа 201 - ^ пузырьковая сортировка 268 - действия пустой оператор (;

) 98 - новой строки (\n) 55, Р - овала рабочая станция 35 - переадресации ввода < разбиение на функции 33 - - вывода > разбиение строки на лексемы 394 - подавления присваивания (*) разделение времени 34 - подчеркивания ( ) разделительные символы 394 - присоединения вывода Ф "разделяй и властвуй" 186, 189 - прямоугольника различение регистра 59 - решения разрушающее считывание в ячейку - ромба 63 - стрелки разыменование указателя 310 символ-заполнитель рандомизация 201 - - по умолчанию (пробел) распределенные вычисления 35 символическая константа 253, расширение макроса 590 символы блок-схемы расширяемость 672, 741, 848, 852, символьная константа 910 символьное поле реализация класса 677 синтаксическая ошибка 60, редактор 39 система управления базами данных режим открытия файла 495 - - - а 498 скаляр - - - а+ 498 скалярная величина - - - r 498 сложение указателя с целым - - - r+ 498 сложное наследование 807, - - - w 498 смещение 330, событие 613 - указателей 326, создание экземпляра объекта 666 среднее сокрытие данных 666, 673 ссылка на базовый класс - информации 209 стандартизованные компоненты сообщение 55, 665, 670 программного обеспечения сортировка 267 стандартная библиотека С 37, 56, - двоичного дерева 554 стандартная ошибка (stderr) - погружением 268 стандартный ввод (stdin) - элементов массива 267 - вывод (stdout) составной оператор 97 - заголовочный файл состояния формата 898 - - - ввода/вывода 59 статическая сохранение программы 39 элемент-функция спецификатор класса памяти 206 статический локальный объект - - - auto 207 - период хранения 206, - - - extern 208, 607 - элемент данных - - - register 207 статическое связывание - - - static 208, 608 стек - преобразования 422 столбцовая диаграмма - - % 426, 427, 435 строка 55, 257, - - с 425, 435 - поиска - - d 62, 422, 434 - символов - - е или Е 423, 434 - управления форматом 421, - - f 423, 434 строковая константа - - g или G 424, 434 строковый литерал - - h 422, 434 структура FILE 493, 495, - - i 422, 434 - выбора if - - L 424, 435 - - if/else - - 1 422, 434 - - switch - - n 426,427, 435 - повторения do/while - - о 422, 434 - - for - - p 263, 426, 427, 435 - - while 98, - - s 201, 425, 435 - с двойным выбором - - u 422, 434 - с единичным выбором - - х или X 422, 434 - со множественным выбором спецификаторы доступа к элементам - ссылающаяся на себя 453, 671, 727 структурное программирование 39, - преобразования целых 422 спецификация внешней связи 649 структуры выбора - преобразования 61, 69, 71, 421 - повторения 90, список аргументов переменной суперкомпьютер длины 603 суперпозиция управляющих структур - инициализации массива 252 сравнение строк 388 суффикс float (f или F) - long double (1 или L) 611 - - производный класс - long int (l или L) 610 - - символ 333, - unsigned int (u или U) 610 - - структуру 453, - unsigned long (ul или UL) 610 - - указатель - -амперсанд (&) 637 - - функцию счетчик 100 - позиции файла - цикла 139 - производного класса Т - файла таблица виртуальных функций 863 унарная (одноместная) операция - значений 277 - операция разрешения области - истинности 159 действия ( :: ) 681, табличная форма 251 управление доступом к элементам тело функции 55 681, - цикла 98, 154 управление, поток управления терминал 34 - программой тернарная операция 95 управляющая строка формата 61, тильда (-) в имени деструктора 674 - структура тип возвращаемого значения 191 - - if - данных 669 управляющие структуры с одним - компоновки 206 входом / одним выходом 92, - переменной 63 управляющий символ - структуры 453 усечение - определяемый пользователем 666, ускоренная разработка прикладных 757 программ (RAD) типы ссылки 637 условие - указателей 309, 328 - завершения точка с запятой ;

(окончание - продолжения цикла 143, оператора) 55 условная компиляция точность 107, 429 - операция (?:) - по умолчанию 107, 423, 894 условное выполнение директив У препроцессора удаление узла 533, 538, 539 услуги, предоставляемые классом узел 531 устройство ввода узел-потомок 550 - вывода указатель 308 Ф - NULL 309, 530 фаза завершения - this 729 - инициализации - базового класса 811 - обработки - на void (void *) 328 файл - - абстрактный класс 852 - исходного кода - - базовый класс 850 - последовательного доступа - - объект базового класса 825 - произвольного доступа - - объект производного класса 825 файловый сервер фатальная ошибка 65, 97 - - precision фигурные скобки {} 55, 97 - - put фиктивное значение 102 флаг - - putback 421, 430 - - rdstate - пробел 430 - - read - - (минус) 430 - - setf 896, -# 431 - - tie - + (плюс) 430 - - unsetf 896, - 0 (нуль) 431 - - write флаги формата 898 ХЧЯ флаговое значение 102 хвост очереди формат целого без знака 422 целое - - со знаком 422 - типа long 422, форматирование в памяти 880 - типа short 422, форматированный ввод/вывод 500, - число 880 целочисленное деление функции математической библиотеки целостность (корректность) данных 188 687, 688, - преобразования строк 377 центральное процессорное - сравнения строк 388 устройство (CPU) функция 37, 56,187 цикл 92, - getchar 150 число с плавающей точкой 105, 423, - pow 147 - printf 58, 62 чисто виртуальная функция (=0) - scant 58, 61 шаблон - доступа 684 - класса - факториала 213 - функции - определяемая программистом 187 шестнадцатеричные цифры - -элемент 666, 670 - числа (начинаются с Ох или ОХ) - - bad 906 - - clear 906 шестнадцатеричный формат - - eof 906 ширина битового поля --fail 906 - поля 148, - - fill 901 экран 33, - - flags 896, 898 экспоненциальный формат с - - gcount 892 плавающей точкой - - get 889 элемент 453, - - getline 890 - данных 666, - - good 906 - массива - - ignore 891 - случайности - - operator void* 907 этикетка структуры 453, - - operator! 907 явное преобразование - - peek 891 - - типа (операция приведения) язык высокого уровня 36, - программирования ясность ячейка памяти    Книги, научные публикации