
- •3.8. Упражнения 49
- •Введение
- •1. Базовые элементы
- •1.1. Комментарии
- •1.2. Функция «main»
- •1.3. Идентификаторы и пространства имен
- •1.4. Типы
- •1.5. Переменные
- •1.6. Преобразование типов
- •1.7. Константы
- •1.8. Потоковый ввод – вывод
- •1.9. Операции
- •1.9.1. Арифметические операции
- •1.9.2. Поразрядные операции
- •1.9.3. Условный оператор
- •1.9.4. Операции отношения
- •1.9.5. Логические операции
- •1.10. Стандартные математические функции
- •1.11. Упражнения
- •2. Базовые конструкции
- •2.1 Ветвление
- •2.1.1. Конструкция «if – else»
- •2.1.2. Конструкция «switch»
- •2.2. Циклы
- •2.2.1. Цикл «for»
- •2.2.2. Цикл «while»
- •2.2.3. Цикл «do – while»
- •2.2.4. Операторы циклов
- •2.2.5. Вложенность
- •2.3. Упражнения
- •2.3.1. Ветвления
- •2.3.2. Циклы
- •2.3.3. Вложенность
- •3. Указатели. Массивы. Структуры
- •3.1. Указатели
- •3.2. Массивы
- •3.2.1. Статические массивы
- •3.2.2. Динамические массивы
- •3.4. Ссылки
- •3.5. Структуры
- •3.6. Объединение
- •3.7. Переопределение типов
- •3.8. Упражнения
- •3.8.1. Статические и динамические массивы
- •3.8.2. Многомерные массивы
- •3.8.3. Строки
- •4. Функции
- •4.1. Простые функции
- •4.2. Рекурсия
- •4.3. Указатели и ссылки
- •4.3.1. Передаваемые параметры
- •4.3.2. Возвращаемые значения
- •4.3.3. Ссылки и структуры в функциях
- •4.3.4. Указатели и массивы в функциях
- •4.3.5. Указатели и ссылки на функцию
- •4.4. Шаблоны функций
- •4.5. Упражнения
- •4.5.1. Простые функции
- •4.5.2. Параметры – ссылки и параметры — указатели
- •5. Стандартные классы
- •5.1. Класс «pair»
- •5.2. Класс «complex»
- •5.3. Класс «string»
- •5.4. Контейнеры. Алгоритмы. Итераторы
- •5.5. Класс «vector»
- •5.6. Упражнения
- •5.6.1. Класс «string»
- •5.6.2. Класс «vector»
- •6. Файловый ввод – вывод
- •6.1. Операции
- •6.2. Методы
- •6.3. Флаги
- •6.4. Двоичный режим
- •6.5. Упражнения
- •Ллитература
1. Базовые элементы 6
1.1. Комментарии 6
1.2. Функция «main» 7
1.3. Идентификаторы и пространства имен 7
1.4. Типы 8
1.5. Переменные 9
1.6. Преобразование типов 10
1.7. Константы 11
1.8. Потоковый ввод – вывод 12
1.9. Операции 15
1.9.1. Арифметические операции 15
1.9.2. Поразрядные операции 17
1.9.3. Условный оператор 19
1.9.4. Операции отношения 19
1.9.5. Логические операции 20
1.10. Стандартные математические функции 21
1.11. Упражнения 23
2. Базовые конструкции 25
2.1 Ветвление 25
2.1.1. Конструкция «if – else» 25
2.1.2. Конструкция «switch» 27
2.2. Циклы 28
2.2.1. Цикл «for» 28
2.2.2. Цикл «while» 30
2.2.3. Цикл «do – while» 30
2.2.4. Операторы циклов 31
2.2.5. Вложенность 32
2.3. Упражнения 33
2.3.1. Ветвления 33
2.3.2. Циклы 34
2.3.3. Вложенность 35
3. Указатели. Массивы. Структуры 37
3.1. Указатели 37
3.2. Массивы 39
3.2.1. Статические массивы 39
3.2.2. Динамические массивы 40
3.3. C – Строки 42
3.4. Ссылки 44
3.5. Структуры 45
3.6. Объединение 47
3.7. Переопределение типов 48
3.8. Упражнения 49
3.8.1. Статические и динамические массивы 49
3.8.2. Многомерные массивы 50
3.8.3. Строки 51
4. Функции 53
4.1. Простые функции 53
4.2. Рекурсия 56
4.3. Указатели и ссылки 57
4.3.1. Передаваемые параметры 57
4.3.2. Возвращаемые значения 58
4.3.3. Ссылки и структуры в функциях 59
4.3.4. Указатели и массивы в функциях 60
4.3.5. Указатели и ссылки на функцию 61
4.4. Шаблоны функций 63
4.5. Упражнения 65
4.5.1. Простые функции 65
4.5.2. Параметры – ссылки и параметры — указатели 66
5. Стандартные классы 67
5.1. Класс «pair» 67
5.2. Класс «complex» 68
5.3. Класс «string» 68
5.4. Контейнеры. Алгоритмы. Итераторы 70
5.5. Класс «vector» 73
5.6. Упражнения 77
5.6.1. Класс «string» 77
5.6.2. Класс «vector» 78
6. Файловый ввод – вывод 79
6.1. Операции 79
6.2. Методы 80
6.3. Флаги 81
6.4. Двоичный режим 82
6.5. Упражнения 83
Ллитература 85
Данное учебно-методическое пособие предназначено для студентов, изучающих программирование на языке высокого уровня. Целью пособия является формирование как общих, так и специализированных знаний и приобритение навыков программирования на объектно-ориентированном языке С++.
Каждый раздел данного пособия содержит теоретический материал о рассматриваемом предмете, иллюстрирующие примеры и практические задачи для усвоения материала и получения соответствующих навыков программирования. В первом разделе рассматриваются базовые элементы языка, знание которых является основопологающим при программировании. Второй раздел содержит описание базовых конструкций, составляющих неотъемлимую часть практически любой программы. Такие формы представления данных, как массивы и структуры, а также приемы работы с ними через указатели рассматривается в третьем разделе. Четвертый раздел описывает создание и применение функций. В пятом разделе рассматриваются стандартные классы, посредством которых осуществляются обработка и хранение различных типов данных. Шестой раздел содержит описание стандартных потоковых классов и методов их приминения.
Введение
В теории программирования существует несколько подходов к представлению всего того, чем оперирует программист при написании кода — парадигм. Из них можно выделить два наиболее распространенных — процедурное программирование (пример – языки С, Pascal) и объектно ориентированное (С++, Java, C#).
Программа, написанная на процедурном языке, представляет собой набор действий – инструкций, последовательное выполнение которых приводит к требуемому результату. При написании больших программ, отдельные инструкции объединяют в функции так, чтобы облегчить восприятие программы – повысить ее читабельность, а функции, аналогично инструкциям, объединяют в модули. Однако процедурный подход к написанию кода обладает некоторыми недостатками, среди которых неограниченность доступа функций к данным, а также разделение данных и операций над ними.
Основой объектно ориентированного подхода является объединение данных и операций, выполняемых над этими данными, в единое целое — объект. Тип объекта называется классом, а сам объект называется экземпляром данного класса. Функции объекта называются методами, они и реализуют операции над данными, когда как к самим данным прямого доступа нет. Это свойство называется сокрытием – инкапсуляцией.
В связи с тем, что язык С++ произошел из языка С, с одной стороны, любая конструкция языка С корректна и для С++, а с другой, сама структура программы на языке С++ основана на процедурных средствах, таких как операции над переменными, циклы, ветвления, работа с функциями.