УЧИМСЯ
ПРОГРАММИРОВАТЬ НА С++
Учебное пособие
Гурьянов Л.В., Гуьянова Л.С., Казакова Е.А.
СОДЕРЖАНИЕ
Стр.
ВВЕДЕНИЕ_ 4
Процесс построения исполняемой программы_ 4
Библиотеки функций_ 4
Заголовочные файлы С++_ 4
Главная программа_ 4
Консольное приложение_ 5
Первая программа_ 5
1. ОСНОВЫ. СИНТАКСИС, ЗНАЧЕНИЯ И УПРАВЛЯЮЩИЕ СТРУКТУРЫ_ 7
1.1 Синтаксические элементы_ 7
1.2 Значения и типы_ 7
1.3 Константы и переменные_ 9
1.4 Операции и выражения_ 10
1.5 Ввод и вывод_ 12
1.6 Управляющие структуры_ 14
1.7 Структура простой программы_ 17
1.8 Примеры программ_ 18
1.9 Задания для самостоятельной работы_ 21
1.9.1 Составление простых программ_ 21
1.9.2 Программирование с использованием управляющих структур_ 22
2. ФУНКЦИИ. ОТ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ К МОДУЛЬНОМУ_ 24
2.1 Определение и вызов функций_ 24
2.2 Глобальные данные и параметры_ 26
2.3 Параметры по умолчанию_ 27
2.4 Рекурсия_ 28
2.5 Библиотечные функции_ 30
2.6 Перегрузка и шаблоны функций_ 31
2.7 Задания для самостоятельной работы_ 32
2.7.1 Разработка простых и рекурсивных функций_ 32
3. СТРУКТУРЫ ДАННЫХ. МАССИВЫ, СТРОКИ, УКАЗАТЕЛИ И СТРУКТУРЫ_ 34
3.1 Массивы_ 34
3.2 Строки – массивы символов_ 36
3.3 Указатели и ccылки_ 37
3.4 Указатели и массивы_ 39
3.5 Указатели и ссылки как параметры_ 41
3.6 Передача массивов в качестве параметров_ 42
3.7 Структуры_ 43
3.8 Примеры программ_ 44
3.8.1 Стек как одномерный статический массив_ 44
3.8.2 Динамический двумерный массив_ 46
3.8.3 Односвязный список 48
3.9 Задания для самостоятельной работы_ 51
3.9.1 Разработка функций обработки числовых массивов и строк 51
3.9.2 Разработка динамических структур данных и функций их обработки_ 53
4. КЛАССЫ И ОБЪЕКТЫ_ 57
4.1 Конструкторы и деструкторы_ 60
4.2 Перегрузка операций для классов_ 61
4.3 Наследование и полиморфизм_ 65
4.4 Примеры программ_ 69
4.4.1 Класс «Одномерный динамический массив»_ 69
4.4.2 Класс «Динамически размещаемая срока»_ 72
4.4.3 Базовый и наследуемый классы для работы с линейным списком_ 74
4.5 Задания для самостоятельной работы_ 80
4.5.1 Разработка классов для работы с динамическими структурами данных_ 80
ВВЕДЕНИЕ
Процесс построения исполняемой программы
Процесс построения исполняемой программы (exe -файла) из исходной программы на языке С++ включает этапы компиляции и компоновки. На этих этапах широко применяются такие стандартные программные средства языка С++, какзаголовочные файлы и библиотеки функций.

Библиотеки функций
Язык С++ не содержитвстроенных функций, например для операций ввода-вывода или математических вычислений. Все эти функции, а также функции работы со строками и многие другие функции, необходимые для разработки программ, включены в стандартные библиотеки функций языка. Имеется множество специализированных коммерческих библиотек функций для работы с графикой, базами данных, сетевыми ресурсами. Библиотеки функций являются составной частью С++ и позволяют значительно сократить время разработки программ.
Заголовочные файлы С++
Заголовочные файлы содержат определения данных и функций, которые используется компилятором для генерации исполняемой программы. Заголовочные файлы содержат информацию, необходимую для выполнения пограммой математических операций, определения даты и времени, операций ввода-вывода и многих других операций. Включение в программу определений заголовочного файла осуществляется:
Borland C ++: # include <имя_файла. h >
Microsoft Visual Studio C++: #include < имя _ файла >
using namespace имя_пространства_имен;
Главная программа
Каждая программа на С++ имеет главную программу, main – часть программы, которая всегда выполняется первой.
Консольное приложение
Все примеры программ на С++, рассматриваемые далее, ориентированны на выполнение в режиме консоли. Этот режим не требует создания графического интерфейса пользователя и в качестве устройства ввода даных использует клавиатуру, а в качестве устройства вывода – дисплей.
В Borland C ++ режим консоли устанавливается автоматически.
В Microsoft Visual Studio следует задать этот режим – Win 32 Console Application – при выборе типа создаваемого проекта.

Первая программа
Наша первая программа Ex _001 выводит нечетные значения одномерного массива. Исходный код Ex _001, представленный в среде Borland C ++ и Microsoft Visual Studio, показывает, что С++ не так прост, как, например, Pascal или Basic.
Для обращения к элементам массива С++ позволяет использовать адресную арифметику – m + i. Да, это сложение, но не двух целых чисел, а адреса первого элемента массива m и смещения i. Разыменование адреса – *(m + i) – дает значение, которое храниться по этому адресу. Впрочем, С++ прекрасно понимает и обычную нотацию для обращения к i -ому элементу массива – m [ i ].
Как видно из этих примеров в консольном приложении различие исходного кода заключается прежде всего в операциях ввода-вывода. В примере для Borland C ++ были использованы операторы языка C – scanf, printf, а в Microsoft Visual Studio – операторы языка C ++ cin, cout.
С++ не только наследует выразительность и лаконичность языка С, но также включает всю мощь средств объектно-ориентированного программирования.
Сегодня, С++ один из востребованных языков программирования и его знание является необходимой основой для разработки современного программного обеспечения.








