- •Изучаемые понятия
- •Буквы и цифры
- •Пробельные символы
- •Знаки пунктуации и специальные символы
- •Операции
- •Константы
- •Целые константы
- •Константы с плавающей точкой
- •Константа-символ
- •Строковые литералы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Лексемы
- •Исходные тексты примеров
- •Конструкции принятия решений и циклы вопросы и ответы
- •Структура программы
- •Исходная программа
- •Объявления
- •Спецификаторы типов
- •Деклараторы
- •Деклараторы массивов, функций и указателей
- •Составные деклараторы
- •Об"явления переменной
- •Объявление простой переменной
- •Объявление перечисления
- •Объявления структур
- •Битовые поля
- •Об"явление совмещений
- •Об"явление массива
- •Об"явление функций
- •Классы памяти
- •Об"явления переменной на внешнем уровне
- •Об"явление переменной на внутреннем уровне
- •Об"явление функции на внешнем и внутреннем уровнях
- •Инициализация
- •Базовые типы и типы указателей
- •Составные типы
- •Строковые инициализаторы
- •Об"явления типов
- •Типы структур, совмещений и перечислений
- •Об"явления 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
- •Заключение
- •Вопросы и ответы
- •Как написать процедуру общего назначения для копирования между входным ивыходным файловым потоком?
- •Практикум Контрольные вопросы
- •Упражнение
Астраханский государственный технический университет
Кафедра «Информационных
технологий и коммуникаций»
Конспект лекций по дисциплине
«Основы алгоритмического языка С++»
для специальности 220200.
Астрахань 2000 г.
1.Переменные и операции языка С++ 4
ИЗУЧАЕМЫЕ ПОНЯТИЯ 4
Буквы и цифры 5
Пробельные символы 6
Знаки пунктуации и специальные символы 6
ESC- последовательности 7
Операции 8
Константы 9
Целые константы 10
Константы с плавающей точкой 11
Константа-символ 12
Строковые литералы 12
Идентификаторы 13
Ключевые слова 14
Комментарии 14
Лексемы 15
ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 15
2.Конструкции принятия решений и циклы 21
ВОПРОСЫ И ОТВЕТЫ 22
СТРУКТУРА ПРОГРАММЫ 24
Исходная программа 24
ОБЪЯВЛЕНИЯ 25
Спецификаторы типов 26
Деклараторы 28
Деклараторы массивов, функций и указателей 28
Составные деклараторы 29
Об"явления переменной 31
Объявление простой переменной 32
Объявление перечисления 33
Объявления структур 34
Битовые поля 35
Об"явление совмещений 36
Об"явление массива 38
Об"явление функций 41
Классы памяти 43
Об"явления переменной на внешнем уровне 44
Об"явление переменной на внутреннем уровне 46
Об"явление функции на внешнем и внутреннем уровнях 48
Инициализация 48
Базовые типы и типы указателей 49
Составные типы 49
Строковые инициализаторы 52
Об"явления типов 52
Типы структур, совмещений и перечислений 52
Об"явления typedef 53
Имена типов 54
КОНТРОЛЬНЫЕ ВОПРОСЫ: 55
Функции 56
Объявление и определение функций 56
ТИПОВЫЕ ВОПРОСЫ С ОТВЕТАМИ 60
ПРАКТИКУМ 60
Контрольные вопросы 60
Массивы 63
СОРТИРОВКА массива - ПРИМЕР в файле list6_4cpp. 66
ПОИСК в массиве 66
БИБЛИОТЕЧНЫЕ ФУНКЦИИ ПОИСКА и СОРТИРОВКИ в непрерывных массивах: 66
Строки и управление вводом/выводом 67
Форматированный потоковый вывод 68
Листинг 1. Исходный текст программы OUT1.CPP 68
Функция printf 70
Функция printf 70
Таблица 1. Еsс - последовательности 70
Таблица 7.2. Значения флагов строки формата функции printf 71
Таблица 3. Символы типов данных строки формата функции printf 71
Листинг 3. Исходный текст программы OUT2.CPP в файле List7-3.CPP 72
Таблица 4. Результат действия спецификаций форматирования в функции printf из строки 13 73
Ввод строк 74
Функция getline 74
Присвоение значений строкам 75
Инициализация строки 75
Функция strcpy 75
Функция strdup 76
Функция strncpy 76
Определение длины строки 76
Функция strlen 76
Функция strcat 77
Функция strncat 77
Сравнение строк 77
Функция strcmp 78
Пример 78
Функция stricmp 78
Пример 78
Функция strncmp 78
Пример 79
Пример 79
(см. List7_5.cpp - Исходный текст программы STRING2.CPP) 79
Преобразование строк 79
Функция strlwr 79
Пример 79
Функция strupr 80
Пример 80
Обращение строк 80
Функция strrev 80
Поиск символов 80
Функция strchr 80
Функция strrchr 81
Пример 81
Функция Strspn 81
Пример 81
Функция strcspn 81
Пример 82
Функция strpbrk 82
Пример 82
Поиск строк 82
Функция strstr 82
Пример 82
Функция strtok 83
Пример 83
Основы объектно-ориентированного программирования СИНТАКСИС ОСНОВНЫХ КОНСТРУКЦИЙ 84
Объявление базовых классов 84
Конструкторы 86
Деструкторы 89
Объявление иерархии классов 89
Виртуальные функции 90
Дружественные функции 93
Операции и дружественные операции 94
Виртуальные функции 96
Правило виртуальной функции 97
Операции и дружественные операции 100
ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ 101
ВОПРОСЫ И ОТВЕТЫ 101
Контрольные вопросы 102
ФАЙЛОВЫЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА 103
Stream-библиотека C++ 104
ОБЩИЕ ФУНКЦИИ ПОТОКОВОГО ВВОДА/ВЫВОДА 104
Функция-компонент open 104
Функция-компонент close 105
ПОСЛЕДОВАТЕЛЬНЫЙ ТЕКСТОВЫЙ ПОТОК ВВОДА/ВЫВОДА 106
Функция-элемент getline 106
ПОСЛЕДОВАТЕЛЬНЫЙ ДВОИЧНЫЙ ФАЙЛОВЫЙ ВВОД/ВЫВОД 108
Функция-элемент write 108
Функция-элемент read 108
Файловый ввод/вывод с прямым доступом 111
Функция-элемент seekg 112
Заключение 113
Вопросы и ответы 114
Практикум 114
Контрольные вопросы 114
Упражнение 114
Переменные и операции языка С++
Здесь представлены базовые компоненты программ на С++. В их число
входят типы данных, переменные, константы и выражения.
Изучаемые понятия
- Предопределенные типы данных в С++ включают в себя типы int, char,
float, double и void. В языке С++ гибкость типов данных увеличивается
благодаря применению модификаторов типов. Эти модификаторы изменяют
точность представления и диапазон значений переменных. Модификаторами
типа являются signed, unsigned, short и long.
- Идентификаторы в С++ могут иметь длину до 32 символов и
должны начинаться с буквы или подчеркивания. Последующие символы
идентификатора могут быть буквой, цифрой или подчеркиванием. Иден-
тификаторы С++ чувствительны к регистру. Ограничение на 32 символа
может быть, однако, изменено путем установки опций компилятора.
- Директива #include является специальной командой компилятора. Она
предписывает компилятору включить в программу содержимое опреде-
ленного файла, как если бы вы сами ввели его в текущий исходный
файл.
- Объявление констант предусматривает использование директивы #define
для объявления констант, определенных при помощи макросов, или ис-
пользование ключевого слова const для объявления формальных кон-
стант. Формальные константы требуют от вас определения их типа
(значением по умолчанию является int), имени и ассоциированного с
ними значения.
- Объявление переменной требует, чтобы вы задали ее тип и имя, С++
дает вам возможность инициализировать переменную при ее объявлении.
Вы можете объявить несколько переменных в одном операторе объявле-
ния.
- Арифметическими операциями являются +, -, *, / и % (деление по
модулю).
- Арифметические выражения различаются по сложности. Самое простое
выражение содержит единственный элемент данных (литерал, константу
или переменную). Сложные выражения включают набор операций, функ-
ции, литералы, константы и переменные.
- Операции инкремента и декремента используются в префиксной и пост-
фиксной формах. Язык С++ дает вам возможность применять эти опе-
рации к переменным, в которых хранятся символы, целые числа и даже
числа с плавающей точкой.
- Арифметические операции присваивания дают вам возможность записы-
вать более короткие арифметические выражения, в которых первый опе-
ранд является также переменной, принимающей результат вычислений.
- Оператор sizeof возвращает как для типов данных, так и для переменных
их размер в байтах.
- Механизм приведения типа дает вам возможность форсировать преобра-
зование типа выражения.
- Операции отношений и логические операции дают вам возможность стро-
ить логические выражения.
- Булевы выражения объединяют операции отношений и логические опе-
рации для формулирования нетривиальных условий. Эти выражения позволяют
программе принимать сложные решения.
- Условное выражение предлагает вам короткую форму для простого опе-
ратора if-else с двумя альтернативами.
- Операции манипулирования битами выполняют поразрядные операции
AND, OR, XOR и NOT. Кроме того, в С++ поддерживаются поразрядные
операции сдвига << и >>.
- Операции манипулирования битами с присваиванием предлагают корот-
кие формы для простых операций манипулирования битами.