- •Е.А. Ганцева
- •Учебное пособие
- •Оглавление
- •Введение
- •Контрольные вопросы
- •2. Операции и основные типы данных
- •2.1. Операции
- •2.2. Указатели и массивы
- •2.3. Символы и строки символов
- •Контрольные вопросы
- •3. Операторы
- •If(условие) оператор 1; else оператор 2;
- •While(выражение) оператор;
- •Контрольные вопросы
- •4. Сложные типы данных
- •4.1. Составные деклараторы
- •4.2. Перечисления
- •4.3. Структуры
- •4.4. Объединения
- •4.5. Объявление tyрedef
- •4.6. Битовые поля
- •Контрольные вопросы
- •5. Функции
- •Контрольные вопросы
- •6. Организация ВводА/выводА
- •6.1. Ввод/вывод потоком
- •6.2. Функции ввода/вывода нижнего уровня
- •6.3. Функции ввода/вывода с консоли и порта
- •Контрольные вопросы
- •7. Директивы препроцессора
- •#Undef идентификатор
- •Контрольные вопросы
- •8. Видимость и время жизни переменных
- •Контрольные вопросы
- •9.1. Описание локальных переменных
- •9.2. Функциональная запись преобразования типов
- •9.3. Перегрузка функций
- •9.4. Перегрузка операторов
- •9.5. Модификаторы const и volatile
- •9.6. Доступ к глобальным переменным
- •Контрольные вопросы
- •10. Объектно–ориентированное программирование
- •10.1. Инкапсуляция
- •10.2. Классы и объекты
- •10.3. Друзья класса
- •10.4. Перегрузка операторов для классов
- •10.5. Конструкторы и деструкторы
- •10.6. Указатель this
- •10.7. Наследование
- •10.8. Доступность членов в иерархии классов
- •10.9. Виртуальные базовые классы
- •10.10. Виртуальные функции
- •Контрольные вопросы
- •11. Потоки ввода/вывода
- •11.1. Понятие потока
- •11.2. Библиотека iostream
- •11.3. Класс streambuf
- •11.4. Класс ios
- •11.5. Потоковый вывод
- •11.6. Встроенные типы
- •11.7. Манипуляторы
- •11.8. Потоковый ввод
- •11.9. Ввод типов, определенных пользователем
- •11.10. Простой ввод/вывод в файл
- •11.11. Обработка строкового потока
- •11.12. Потоки вывода на экран
- •Контрольные вопросы
- •Список использованных источников
МИНИСТЕРСТВО ОБЩЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Воронежский государственный технический университет
Е.А. Ганцева
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА Си/Си++
Учебное пособие
Воронеж 2000
УДК 681.3
Ганцева Е.А. Основы программирования на Си/Си++: Учебное пособие. Воронеж: Изд-во ВГТУ, 2000. 72 с.
Рассматриваются вопросы, связанные с составлением программ на современном языке программирования Си/Си++. Подробно описываются операторы языка, примеры их использования. Излагаются основные принципы объектно-ориентированного программирования.
Каждая глава содержит вопросы для самопроверки.
Издание предназначено для студентов специальности 220100 дневной формы обучения.
Издание подготовлено на магнитном носителе в текстовом редакторе MS WORD-97 и содержится в файле C.DOC.
Табл. 2. Библиогр.: 4 назв.
Научный редактор д-р техн. наук С.Л. Подвальный
Рецензенты: кафедра Прикладной метематики и экономико-математических методов Воронежской Государственной технологической академии;
Канд. техн. наук Т.М. Леденева
Печатается по решению редакционно-издательского совета Воронежского государственного технического университета.
© Ганцева Е.А., 2000
© Оформление. Издательство Воронежского государственного технического университета, 2000
Оглавление
ВВЕДЕНИЕ 5
1. ПРАВИЛА ОФОРМЛЕНИЯ ПРОГРАММ НА Си/Си++ 6
Контрольные вопросы 6
2. ОПЕРАЦИИ И ОСНОВНЫЕ ТИПЫ ДАННЫХ 7
2.1. Операции 7
2.2. Указатели и массивы 8
2.3. Символы и строки символов 12
2.4. Esc – последовательности 13
Контрольные вопросы 13
3. ОПЕРАТОРЫ 14
Контрольные вопросы 16
4. СЛОЖНЫЕ ТИПЫ ДАННЫХ 17
4.1. Составные деклараторы 17
4.2. Перечисления 17
4.3. Структуры 18
4.4. Объединения 19
4.5. Объявление TYРEDEF 19
4.6. Битовые поля 20
Контрольные вопросы 20
5. ФУНКЦИИ 21
Контрольные вопросы 24
6. ОРГАНИЗАЦИЯ ВводА/выводА 25
6.1. Ввод/вывод потоком 25
6.2. Функции ввода/вывода нижнего уровня 29
6.3. Функции ввода/вывода с консоли и порта 29
Контрольные вопросы 30
7. ДИРЕКТИВЫ ПРЕПРОЦЕССОРА 31
Контрольные вопросы 33
8. ВИДИМОСТЬ И ВРЕМЯ ЖИЗНИ ПЕРЕМЕННЫХ 34
Контрольные вопросы 35
9. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ Си++ 36
9.1. Описание локальных переменных 36
9.2. Функциональная запись преобразования типов 36
9.3. Перегрузка функций 37
9.4. Перегрузка операторов 38
9.5. Модификаторы const и volatile 38
9.6. Доступ к глобальным переменным 39
Контрольные вопросы 39
10. Объектно–ориентированное программирование 40
10.1. Инкапсуляция 40
10.2. Классы и объекты 42
10.3. Друзья класса 44
10.4. Перегрузка операторов для классов 45
10.5. Конструкторы и деструкторы 46
10.6. Указатель this 49
10.7. Наследование 51
10.8. Доступность членов в иерархии классов 53
10.9. Виртуальные базовые классы 58
10.10. Виртуальные функции 58
Контрольные вопросы 63
11. Потоки ввода/вывода 64
11.1. Понятие потока 64
11.2. Библиотека iostream 64
11.3. Класс streambuf 64
11.4. Класс ios 65
11.5. Потоковый вывод 65
11.6. Встроенные типы 65
11.7. Манипуляторы 66
11.8. Потоковый ввод 67
11.9. Ввод типов, определенных пользователем 68
11.10. Простой ввод/вывод в файл 69
11.11. Обработка строкового потока 70
11.12. Потоки вывода на экран 70
Контрольные вопросы 71
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 72