- •Введение
- •Структура программы на языке Си
- •Директивы препроцессора
- •Константы
- •Переменные
- •Арифметические выражения
- •Операция присваивания
- •Ввод информации с клавиатуры и вывод на экран
- •Логические выражения
- •Операторы управления
- •Оператор условного перехода if
- •Оператор выбора варианта
- •Перечисляемый тип данных
- •Циклы
- •Оператор цикла while
- •Оператор цикла do-while
- •Оператор цикла for
- •Локальные и глобальные переменные
- •Переменные с индексами (массивы)
- •Примеры обработки одномерных массивов
- •Многомерные массивы
- •Массивы и указатели
- •Арифметические и логические операции с указателями
- •Обработка массивов с помощью указателей
- •Обработка массивов переменной размерности
- •Обработка матриц переменной размерности
- •Обработка текстовой информации
- •Стандартные строки языка С++
- •Пример 1. Определение длины строки.
- •Пример 2. Копирование одной строки в другую
- •Пример 3. Исключение из строки символа.
- •Пример 4. Вставка в строку символа
- •Пример 5. Проверка правильности расстановки скобок.
- •Строки типа string
- •Массивы указателей
- •Указатели на функции
- •Сводная таблица форм объявления указателей
- •Преобразование типов
- •Ссылки
- •Структуры
- •Объединения
- •Файлы
- •Чтение файла в матрицу
- •Чтение файла в структуру
- •Функции для обработки произвольных полей структур
- •Связные списки
- •Контейнерные классы
- •Стеки
- •Рекурсия
- •Вопросы для самопроверки
- •Литература
2
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Э.А.ЧЕРНОВ
ЯЗЫК С++ В КОНСОЛЬНЫХ ПРИЛОЖЕНИЯХ
Учебное пособие
МОСКВА 2009
2 |
|
Оглавление |
|
Введение ...................................................................................................... |
4 |
Структура программы на языке Си............................................................. |
5 |
Директивы препроцессора.......................................................................... |
6 |
Константы................................................................................................... |
13 |
Переменные............................................................................................... |
17 |
Арифметические выражения.................................................................... |
21 |
Операция присваивания ........................................................................... |
22 |
Ввод информации с клавиатуры и вывод на экран................................. |
27 |
Логические выражения.............................................................................. |
32 |
Операторы управления............................................................................. |
40 |
Оператор условного перехода if............................................................... |
40 |
Оператор выбора варианта ...................................................................... |
44 |
Перечисляемый тип данных ..................................................................... |
46 |
Циклы.......................................................................................................... |
48 |
Оператор цикла while ................................................................................ |
49 |
Оператор цикла do-while ........................................................................... |
51 |
Оператор цикла for .................................................................................... |
54 |
Локальные и глобальные переменные .................................................... |
55 |
Переменные с индексами (массивы) ....................................................... |
56 |
Примеры обработки одномерных массивов............................................ |
60 |
Многомерные массивы.............................................................................. |
69 |
Массивы и указатели................................................................................. |
79 |
Арифметические и логические операции с указателями ....................... |
84 |
Обработка массивов с помощью указателей .......................................... |
86 |
Обработка массивов переменной размерности...................................... |
88 |
Обработка матриц переменной размерности.......................................... |
90 |
Обработка текстовой информации........................................................... |
93 |
Стандартные строки языка С++................................................................ |
94 |
Пример 1. Определение длины строки.............................................. |
98 |
Пример 2. Копирование одной строки в другую................................ |
99 |
Пример 3. Исключение из строки символа. ..................................... |
101 |
Пример 4. Вставка в строку символа............................................... |
103 |
Пример 5. Проверка правильности расстановки скобок................. |
109 |
3 |
|
Строки типа string..................................................................................... |
111 |
Массивы указателей................................................................................ |
113 |
Указатели на функции............................................................................. |
115 |
Сводная таблица форм объявления указателей.................................. |
120 |
Преобразование типов............................................................................ |
120 |
Ссылки...................................................................................................... |
123 |
Структуры................................................................................................. |
126 |
Объединения............................................................................................ |
131 |
Файлы ....................................................................................................... |
132 |
Чтение файла в матрицу......................................................................... |
139 |
Чтение файла в структуру....................................................................... |
140 |
Функции для обработки произвольных полей структур........................ |
144 |
Связные списки........................................................................................ |
147 |
Контейнерные классы.............................................................................. |
148 |
Стеки......................................................................................................... |
156 |
Рекурсия................................................................................................... |
157 |
Вопросы для самопроверки.................................................................... |
167 |
Литература............................................................................................... |
169 |
4
Введение
Язык C++ занимает особое место среди языков программирования. Обеспечивая естественную форму записи большинства операторов, присущей языкам высокого уровня, он в то же время обладает и возможностями машинно-ориентированных языков (такими как возможности обработки отдельных двоичных разрядов кодов чисел и символов, возможности непосредственного доступа к внутренним структурам операционной системы и др.).
Простота формирования модулей программы (функций), возможность введения типов данных пользователя и работы с библиотеками обеспечивают большие удобства для программиста.
Язык C, появившись на рубеже 1970-80 гг, прошел эволюционный путь развития. В 80-х годах появился язык С++(++ обозначает инкремент языка С), в котором были реализованы принципы объектноориентированного программирования, а затем появился язык C# (произносится «Си шарп», # (диез) - в музыке обозначает повышение на полтона), предназначенный в том числе и для реализации приложений, работающих в компьютерных сетях.
Наиболее распространенным для языка С++ для операционной системы MS DOS был компилятор фирмы Borland версии 3.11, который в настоящее время иногда используется при проведении олимпиад по программированию.
В данном учебном пособии рассматриваются основы языка С++ на базе разработки консольных приложений в среде Visual С++ фирмы Microsoft последних версий (2003 ÷ 08 гг.). Различие между версиями в основном заключается в подключаемых библиотеках, автоматизации формировании кода для часто используемых операций, возможностях работы с сетями, некоторых изменениях интерфейса и т. д. Однако с точки зрения разработки консольных приложений эти версии одинаковы.
Язык Visual С++, соответствующий новому стандарту ISO/IEC 14882 (этот стандарт можно бесплатно скачать по адресу www.iso.org/iso/catalogue_detail.htm, или выполнить в Интернете по-