Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга C++.doc
Скачиваний:
24
Добавлен:
10.11.2019
Размер:
2.48 Mб
Скачать

Оглавление:

Предварительные рассуждения 5

Инсталляция Visual C++ 6.0 7

Начнем! 10

Вывод данных 17

И запустим ее (Build ->Execute Resume.exe). 20

Типы данных 20

Хороший стиль программирования 21

Переменные и константы 24

Ввод данных 27

Например: 27

Пример: 27

Арифметические операции с числами 29

Литералы 32

Некоторые примеры 32

Домашнее задание 33

Преобразование типов 33

Перечисляемые типы 35

Типичная ошибка 36

Хороший стиль программирования 36

Типичная ошибка 36

Выражения 37

Оператор if 39

Структура программы 42

Логические операции 43

Структура множественного выбора switch 47

Пример 50

Домашнее задание 51

Задача 1 51

Задача 2 51

Задача 3 52

Задача 4 52

Цикл while 52

Практический пример 55

Цикл for 56

Практический пример 60

Цикл do-while 61

break и continue 62

Домашнее задание 63

Дано произвольное целое число n. Написать программу, которая разбивает число n на цифры и выводит их на экран; подсчитывает сколько цифр в числе n; находит сумму цифр числа n; меняет порядок цифр числа n на обратный 64

Введение в мир функций 64

Вызов функции 66

return 67

Прототипы функций 71

Область видимости 74

Аргументы по умолчанию 79

Встраивание 80

Перегрузка функций 82

Учебный пример перегруженных функций. Иллюстрация перегрузки 83

Результат работы программы 84

Практические примеры 85

Домашнее задание 90

Примеры домашней работы урока 1 90

Пример №1 90

Как работает программа 91

Пример №2 91

Как работает программа 91

Примеры домашних работ на создание функций 92

Пример №1 92

Как работает программа 93

Пример №2 93

Как работает программа 94

Массивы 95

Объявление массивов 96

Примеры использования массивов 96

Программа 1 96

Программа 2 97

Обратите внимание! 97

Типичная ошибка программирования 98

Типичная ошибка программирования 98

Программа 3 98

Типичная ошибка программирования 99

Замечание по технике программирования 99

Программа 4 99

Программа 5 100

Программа нахождения минимального и максимального элементов массива 101

Сортировка массивов 102

Поиск 105

Домашнее задание 110

Что такое указатели? 111

За кулисами... 111

Как работать с указателями?.. 112

Зачем нужны указатели? 113

Указатели и Массивы. 113

Примеры задач 116

Указатели - аргументы функций. 119

Ссылки 122

Ссылочные параметры 124

Примеры решения задач 128

Домашнее задание 132

Операторы свободной памяти new и delete 133

Работа со строками в С++ 135

Функции работы со строками из библиотеки обработки строк 139

Работа со строками в С++. Примеры 142

Пример 1. 142

Пример2 143

Пример 3 145

Пример задачи на новый материал 146

Домашнее задание 150

двухмерные массивы, как частный случай многомерных массивов 150

Пример 154

Многомерные динамические массивы 158

Пример на многомерные динамические массивы 161

Домашнее задание 169

Рекурсия 169

Рекурсии или итерации 172

Указатели на функции 173

Пример №1 174

Результат выполнения программы: 175

Пример №2 175

Результат выполнения программы 177

Пример №3 177

Результаты выполнения программы 179

Определения структур 179

Пример #1 на использование структур 185

Пример #2 на использование структур 187

Оператор указателя на структуру 191

Домашнее задание 193

Группа ___________________Ф. И. О. ______________________ 194

Объектно-ориентированное программирование. 197

Наследование (Inheritance). 200

Инкапсуляция (Encapsulation). 201

Определение класса 203

Конструкторы и деструкторы 208

Домашнее задание 216

Конструктор копирования 216

Пример 217

Синтаксис конструктора копирования 220

Памятка 220

Пример использования конструктора копирования. 220

Указатели на объекты 222

Пример 222

Новая информация 223

Пример 223

Важно 224

Пример 224

Перегруженные конструкторы 226

Экскурс в историю 226

Пример 226

Маленькое замечание 227

Пример 227

Вывод 230

this 230

Домашнее задание 232

Создание класса ''СТРОКА'' 233

Перегрузка операций. 236

Общие принципы перегрузки операторов. 241

Преобразования, определяемые классом 242

Пример строкового класса с перегруженными операторами 243

Домашнее задание 246

Дружественные функции (Friend Functions) 247

Пример строкового класса с перегруженными операторами и дружественными функциями 253

Перегрузка инкремента (++) и декремента (--) 259

Перегрузка операторов new и delete 263

Перегрузка оператора индексирования 264

Класс вектор. Часть1. 265

Класс вектор. Часть 2. 267

Класс вектор. Часть 3. 275

Домашнее задание 276

Наследование (Inheritance). Часть 1. 276

Наследование (Inheritance). Часть 2. 281

Множественное наследование (multiple inheritance) 285

Пример множественного наследования 293

Домашнее задание 295

Статические члены данных 296

Раннее и позднее связывание 300

Виртуальные функции 301

Пример. 302

Абстрактные классы 306

Виртуальный базовый класс 306

Практический пример 312

Домашнее задание 316

Ввод-вывод в языке С++. 316

Файловый ввод-вывод с применением потоков. 318

Ввод/вывод массива в/из файл(-а). 323

Практический пример: перекодировка файла. 326

Домашнее задание 328

Немного о файлах... 328

И снова файлы... 332

Пример "Телефонная книга" 334

Ввод-вывод в языке С++. 342

Использование аргументов командной строки. 345

Ввод/вывод в С. 346

Домашнее задание 348

Определение шаблонов функций 348

Переопределение шаблонов функций 351

Шаблоны классов 352

Шаблонный класс вектор 354

Шаблонный класс вектор 356

Шаблонный класс вектор 366

Введение 366

Обработка исключительных ситуаций 367

Практический пример 371

Домашнее задание 374

Экзамен 374 Предварительные рассуждения Вступительное слово

Добро пожаловать, в мир программирования! Что такое программирование? Наверное, каждый из Вас когда-то слышал это слово. Перефразировав известную цитату, можно сказать так: "Программист - это звучит гордо!". И это действительно так. Если Вы, бороздя просторы Internet, наталкивались на сайты с предложением о работе, то обращали внимание на размер заработной платы, которая предлагается программистам. Естественно, тут же возникает вопрос: почему такой высокий уровень оплаты труда программиста? Все согласно законам рынка: есть спрос на программистов, но, на данный момент, их количество слишком мало. Конечно, если бы программистом можно было стать за короткий срок, заучив ряд слов, профессия вряд ли была такой популярной. Но не расстраивайтесь! Мы, Ваши преподаватели, постараемся сделать все от нас зависящее для того, чтобы нетолько рассказать Вам как программировать, а научить Вас жить программируя. Однако, наша с Вами совместная работа должна быть с взаимной. Преподаватель, как бы он не старался, не сможет обучить студента, если тот этого не захочет. Работа, только постоянная работа над собой сможет провести Вас к вершине мастерства.

Искренне надеемся на то, что Вы увлечетесь волшебным миром программирования на С++!!!

Исторические факты

Рассмотрим несколько исторических фактов развития науки, которая называется computer-science...

Английский математик XIX века Шенкс потратил более 20 лет своей жизни на вычисление числа Пи с точностью 707 значащих цифр после запятой. Этот результат получил славу рекорда вычислений XIX века. Однако впоследствии было обнаружено, что Шенкс ошибся в 520-м знаке, и поэтому все последующие значащие цифры были вычислены неверно.

В 1804 году французский изобретатель Жозеф Мари Жаккар создал "программно-управляемый" ткацкий станок. Для управления станком использовались перфокарты, соединенные друг с другом в виде ленты. Деревянные шпильки "читающего устройства" станка по расположению отверстий в перфокарте определяли, какие нити следует поднять, а какие опустить для получения нужного узора.

В 1890 году в США изобретателем Германом Холлеритом разработана электромеханическая счетная машина - табулятор, управляемая перфокартами, была использована для составления таблиц с результатами переписи населения США. Основанная Холлеритом фирма по производству табуляторов впоследствии превратилась в корпорацию International Business Machines (IBM).

В 1936 году двадцатипятилетний студент Кембриджского университета англичанин Алан Тьюринг опубликовал статью "О вычислимых числах", в которой рассматривалось гипотетическое устройство ("машина Тьюринга"), пригодное для решения любой разрешимой математической или логической задачи, - прообраз программируемого компьютера.

В 1941 году немецкий инженер Конрад Цузе построил действующий компьютер Z3, в котором использовалась двоичная система счисления. Программы записывались на перфоленте.

В 1945 году в высшем техническом училище Пенсильванского университета (США) физик Джон Мочли и инженер Проспер Экерт построили полностью электронную машину "Эниак". Для задания программы было необходимо вручную установить тысячи переключателей и воткнуть сотни штекеров в гнезда контактной панели.

1 июня 1945 года был разослан отчет американского математика венгерского происхождения Джона фон Неймана "Предварительный отчет о машине Эдвак", содержащий концепцию хранения команд компьютера в его собственной внутренней памяти.

21 июня 1948 года в Манчестерском университете (Великобритания) на машине "Марк-1" выполнена первая в мире хранимая в памяти машины программа - поиск наибольшего сомножителя заданного числа.

В 1949 году под руководством Мориса Уилкса создан компьютер "Эдсак". Проектировщики "Эдсака" ввели систему мнемонических обозначений, где каждая машинная команда представлялась одной заглавной буквой, и автоматизировали настройку подпрограмм на определенное место в памяти. Морис Уилкс назвал мнемоническую схему и библиотеку подпрограмм собирающей системой (assembly system) - отсюда слово "ассемблер".

В 1949 году в Филадельфии (США) под руководством Джона Мочли создан "Краткий код" - первый примитивный интерпретатор языка программирования.

В 1951 году в фирме Remington Rand американская программистка Грейс Хоппер разработала первую транслирующую программу. Хоппер назвала ее компилятором (compiler - компоновщик).

В 1957 году на 20-м этаже штаб-квартиры фирмы IBM на Мэдисон-авеню в Нью-Йорке родился язык Фортран (FORmula TRANslation - трансляция формул). Группой разработчиков руководил 30-летний математик Джон Бэкус. Фортран - первый из "настоящих" языков высокого уровня.

В 1972 году 31-летний специалист по системному программированию из фирмы Bell Labs Деннис Ритчи разработал язык программирования Си.

Первое описание языка было дано в книге Б. Кернигана и Д. Ритчи, которая была переведена на русский язык. Долгое время это описание являлось стандартом, однако ряд моментов допускали неоднозначное толкование, которое породило множество трактовок языка С. Для исправления этой ситуации при Американском национальном институте стандартов (АNSI) был образован комитет по стандартизации языка С

1983 году был утвержден стандарт языка С, получивший название ANSI С.

В начале 80-х годов в той же Веll Lаbоratory Бьерном Страуструпом в результате дополнения и расширения языка С был создан новый по сути язык, получивший название "С с классами".

В 1983 году это название было заменено на С++.

Наши занятия будут посвящены изучению языка программирования С++.

Инсталляция Visual C++ 6.0

Итак, для изучения С++ нам будет необходимо установить Microsoft Visual C++ версии 6.0. Для этого - установите компакт-диск в CD-привод, запустите проводник, найдите на диске файл Setup.exe и запустите его.

Если Вы удачно справились с запуском инсталяции, то перед Вами должно появиться диалоговое окно, преведенное ниже на рисунке. В даном диалоговом окне выбираем пункт Workstation Tools and Components и нажимаем кнопку Next.

Перед Вами появиться окно, в котором будут убедительно просить чуть-чуть подождать пока подготавливается установка Microsoft Visual Studio 6.0 .

Так, выясним откуда появилось словосочетание Microsoft Visual Studio 6.0, если мы хотим установить Microsoft Visual С++ 6.0 . Все очень просто. Microsoft Visual С++ 6.0 входит в группу программных продуктов объединенных одним именем Microsoft Visual Studio 6.0.

Далее следуйте подсказкам программы установки. На вопрос: "Какой тип инсталяции Вы хотите произвести?" выберите вариант Custom. В появившемся диалоговом окне установите "галочки" напротив следующих пунктов: Microsoft Visual C++ 6.0, ActiveX, Data Access, Enterprise Tools, Tools. В конечном итоге, окно выбора будет выглядить примерно следующим образом:

Нажимаете кнопку Continue и, пока ожидаете завершение процесса инсталяции, можете спокойно перейти к следующему разделу нашего занятия!..