
- •Изучаемые понятия
- •Буквы и цифры
- •Пробельные символы
- •Знаки пунктуации и специальные символы
- •Операции
- •Константы
- •Целые константы
- •Константы с плавающей точкой
- •Константа-символ
- •Строковые литералы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Лексемы
- •Исходные тексты примеров
- •Конструкции принятия решений и циклы вопросы и ответы
- •Структура программы
- •Исходная программа
- •Объявления
- •Спецификаторы типов
- •Деклараторы
- •Деклараторы массивов, функций и указателей
- •Составные деклараторы
- •Об"явления переменной
- •Объявление простой переменной
- •Объявление перечисления
- •Объявления структур
- •Битовые поля
- •Об"явление совмещений
- •Об"явление массива
- •Об"явление функций
- •Классы памяти
- •Об"явления переменной на внешнем уровне
- •Об"явление переменной на внутреннем уровне
- •Об"явление функции на внешнем и внутреннем уровнях
- •Инициализация
- •Базовые типы и типы указателей
- •Составные типы
- •Строковые инициализаторы
- •Об"явления типов
- •Типы структур, совмещений и перечислений
- •Об"явления typedef
- •Имена типов
- •Контрольные вопросы:
- •Функции Объявление и определение функций
- •Типовые вопросы с ответами
- •Практикум Контрольные вопросы
- •Массивы
- •Сортировка массива - пример в файле list6_4cpp.
- •Поиск в массиве
- •Библиотечные функции поиска и сортировки в непрерывных массивах:
- •Строки и управление вводом/выводом
- •Форматированный потоковый вывод
- •Листинг 1. Исходный текст программы out1.Cpp
- •Функция printf
- •Функция printf
- •Листинг 3. Исходный текст программы out2.Cpp в файле List7-3.Cpp
- •Ввод строк
- •Функция getline
- •Присвоение значений строкам
- •Определение длины строки
- •Функция strlen
- •Функция strcat
- •Функция strncat
- •Сравнение строк
- •Функция strcmp
- •(См. List7_5.Cpp - Исходный текст программы string2.Cpp)
- •Поиск символов
- •Функция strchr
- •Функция strrchr
- •Основы объектно-ориентированного программирования синтаксис основных конструкций Объявление базовых классов
- •Конструкторы
- •Деструкторы
- •Объявление иерархии классов
- •Виртуальные функции
- •Дружественные функции
- •Операции и дружественные операции
- •Виртуальные функции
- •Правило виртуальной функции
- •Операции и дружественные операции
- •Исходные тексты примеров
- •Вопросы и ответы
- •Контрольные вопросы
- •Файловые операции ввода/вывода
- •Общие функции потокового ввода/вывода
- •Функция-компонент open
- •Функция-компонент close
- •Последовательный текстовый поток ввода/вывода
- •Функция-элемент getline
- •Листинг 10.1. Исходный код программы trim.Cpp
- •Последовательный двоичный файловый ввод/вывод
- •Функция-элемент write
- •Функция-элемент read
- •Листинг 10.2. Исходный код программы array.Cpp
- •Файловый ввод/вывод с прямым доступом
- •Функция-элемент seekg
- •Заключение
- •Вопросы и ответы
- •Как написать процедуру общего назначения для копирования между входным ивыходным файловым потоком?
- •Практикум Контрольные вопросы
- •Упражнение
1.Переменные и операции языка С++ 3
ИЗУЧАЕМЫЕ ПОНЯТИЯ 3
Буквы и цифры 4
Пробельные символы 5
Знаки пунктуации и специальные символы 5
ESC- последовательности 6
Операции 7
Константы 8
Целые константы 9
Константы с плавающей точкой 10
Константа-символ 11
Строковые литералы 11
Идентификаторы 12
Ключевые слова 13
Комментарии 13
Лексемы 14
ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 14
2.Конструкции принятия решений и циклы 20
ВОПРОСЫ И ОТВЕТЫ 21
СТРУКТУРА ПРОГРАММЫ 23
Исходная программа 23
ОБЪЯВЛЕНИЯ 24
Спецификаторы типов 25
Деклараторы 27
Деклараторы массивов, функций и указателей 27
Составные деклараторы 28
Об"явления переменной 30
Объявление простой переменной 31
Объявление перечисления 32
Объявления структур 33
Битовые поля 34
Об"явление совмещений 35
Об"явление массива 37
Об"явление функций 40
Классы памяти 42
Об"явления переменной на внешнем уровне 43
Об"явление переменной на внутреннем уровне 45
Об"явление функции на внешнем и внутреннем уровнях 47
Инициализация 47
Базовые типы и типы указателей 48
Составные типы 48
Строковые инициализаторы 51
Об"явления типов 51
Типы структур, совмещений и перечислений 51
Об"явления typedef 52
Имена типов 53
КОНТРОЛЬНЫЕ ВОПРОСЫ: 54
Функции 55
Объявление и определение функций 55
ТИПОВЫЕ ВОПРОСЫ С ОТВЕТАМИ 59
ПРАКТИКУМ 59
Контрольные вопросы 59
Массивы 62
СОРТИРОВКА массива - ПРИМЕР в файле list6_4cpp. 65
ПОИСК в массиве 65
БИБЛИОТЕЧНЫЕ ФУНКЦИИ ПОИСКА и СОРТИРОВКИ в непрерывных массивах: 65
Строки и управление вводом/выводом 66
Форматированный потоковый вывод 67
Листинг 1. Исходный текст программы OUT1.CPP 67
Функция printf 69
Функция printf 69
Таблица 1. Еsс - последовательности 69
Таблица 7.2. Значения флагов строки формата функции printf 70
Таблица 3. Символы типов данных строки формата функции printf 70
Листинг 3. Исходный текст программы OUT2.CPP в файле List7-3.CPP 71
Таблица 4. Результат действия спецификаций форматирования в функции printf из строки 13 72
Ввод строк 73
Функция getline 73
Присвоение значений строкам 74
Инициализация строки 74
Функция strcpy 74
Функция strdup 75
Функция strncpy 75
Определение длины строки 75
Функция strlen 75
Функция strcat 76
Функция strncat 76
Сравнение строк 76
Функция strcmp 77
Пример 77
Функция stricmp 77
Пример 77
Функция strncmp 77
Пример 78
Пример 78
(см. List7_5.cpp - Исходный текст программы STRING2.CPP) 78
Преобразование строк 78
Функция strlwr 78
Пример 78
Функция strupr 79
Пример 79
Обращение строк 79
Функция strrev 79
Поиск символов 79
Функция strchr 79
Функция strrchr 80
Пример 80
Функция Strspn 80
Пример 80
Функция strcspn 80
Пример 81
Функция strpbrk 81
Пример 81
Поиск строк 81
Функция strstr 81
Пример 81
Функция strtok 82
Пример 82
Основы объектно-ориентированного программирования СИНТАКСИС ОСНОВНЫХ КОНСТРУКЦИЙ 83
Объявление базовых классов 83
Конструкторы 85
Деструкторы 88
Объявление иерархии классов 88
Виртуальные функции 89
Дружественные функции 92
Операции и дружественные операции 93
Виртуальные функции 95
Правило виртуальной функции 96
Операции и дружественные операции 99
ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 100
ВОПРОСЫ И ОТВЕТЫ 100
Контрольные вопросы 101
ФАЙЛОВЫЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА 102
Stream-библиотека C++ 103
ОБЩИЕ ФУНКЦИИ ПОТОКОВОГО ВВОДА/ВЫВОДА 103
Функция-компонент open 103
Функция-компонент close 104
ПОСЛЕДОВАТЕЛЬНЫЙ ТЕКСТОВЫЙ ПОТОК ВВОДА/ВЫВОДА 105
Функция-элемент getline 105
ПОСЛЕДОВАТЕЛЬНЫЙ ДВОИЧНЫЙ ФАЙЛОВЫЙ ВВОД/ВЫВОД 107
Функция-элемент write 107
Функция-элемент read 107
Файловый ввод/вывод с прямым доступом 110
Функция-элемент seekg 111
Заключение 112
Вопросы и ответы 113
Практикум 113
Контрольные вопросы 113
Упражнение 113
Переменные и операции языка С++
Здесь представлены базовые компоненты программ на С++. В их число
входят типы данных, переменные, константы и выражения.
Изучаемые понятия
- Предопределенные типы данных в С++ включают в себя типы int, char,
float, double и void. В языке С++ гибкость типов данных увеличивается
благодаря применению модификаторов типов. Эти модификаторы изменяют
точность представления и диапазон значений переменных. Модификаторами
типа являются signed, unsigned, short и long.
- Идентификаторы в С++ могут иметь длину до 32 символов и
должны начинаться с буквы или подчеркивания. Последующие символы
идентификатора могут быть буквой, цифрой или подчеркиванием. Иден-
тификаторы С++ чувствительны к регистру. Ограничение на 32 символа
может быть, однако, изменено путем установки опций компилятора.
- Директива #include является специальной командой компилятора. Она
предписывает компилятору включить в программу содержимое опреде-
ленного файла, как если бы вы сами ввели его в текущий исходный
файл.
- Объявление констант предусматривает использование директивы #define
для объявления констант, определенных при помощи макросов, или ис-
пользование ключевого слова const для объявления формальных кон-
стант. Формальные константы требуют от вас определения их типа
(значением по умолчанию является int), имени и ассоциированного с
ними значения.
- Объявление переменной требует, чтобы вы задали ее тип и имя, С++
дает вам возможность инициализировать переменную при ее объявлении.
Вы можете объявить несколько переменных в одном операторе объявле-
ния.
- Арифметическими операциями являются +, -, *, / и % (деление по
модулю).
- Арифметические выражения различаются по сложности. Самое простое
выражение содержит единственный элемент данных (литерал, константу
или переменную). Сложные выражения включают набор операций, функ-
ции, литералы, константы и переменные.
- Операции инкремента и декремента используются в префиксной и пост-
фиксной формах. Язык С++ дает вам возможность применять эти опе-
рации к переменным, в которых хранятся символы, целые числа и даже
числа с плавающей точкой.
- Арифметические операции присваивания дают вам возможность записы-
вать более короткие арифметические выражения, в которых первый опе-
ранд является также переменной, принимающей результат вычислений.
- Оператор sizeof возвращает как для типов данных, так и для переменных
их размер в байтах.
- Механизм приведения типа дает вам возможность форсировать преобра-
зование типа выражения.
- Операции отношений и логические операции дают вам возможность стро-
ить логические выражения.
- Булевы выражения объединяют операции отношений и логические опе-
рации для формулирования нетривиальных условий. Эти выражения позволяют
программе принимать сложные решения.
- Условное выражение предлагает вам короткую форму для простого опе-
ратора if-else с двумя альтернативами.
- Операции манипулирования битами выполняют поразрядные операции
AND, OR, XOR и NOT. Кроме того, в С++ поддерживаются поразрядные
операции сдвига << и >>.
- Операции манипулирования битами с присваиванием предлагают корот-
кие формы для простых операций манипулирования битами.