Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Максимов_электронный_учебник_текст.doc
Скачиваний:
42
Добавлен:
01.06.2015
Размер:
3.24 Mб
Скачать

5. Адреса, указатели, массивы, память 96

5.1. Указатели и адреса объектов 96

5.2. Адресная арифметика, типы указателей и операции над ними 98

5.3. Свойства указателя типа void* 109

5.4. Свойства объекта cout 111

5.5. Массивы и указатели 112

5.6. Многомерные массивы, массивы указателей, динамические массивы 116

ПРОЕКТНЫЕ ЗАДАНИЯ К МОДУЛЮ 127

ТЕСТЫ РУБЕЖНОГО КОНТРОЛЯ 128

Квалиметрическая оценка 132

Список Литературы 132

Модуль 3 132

6. Функции, указатели, ссылки 133

6.1. Определение, описание и вызов функции 133

6.2. Функции с переменным количеством параметров 139

6.3. Рекурсивные функции 143

6.4. Подставляемые (инлайн-) функции 145

6.5. Функции и массивы 147

6.6. Указатели на функции 160

Проектные задания 167

Тесты рубежного контроля 168

Квалиметрическая оценка 170

МОДУЛЬ 4 171

7 Структуры, объединения и классы 171

7.1 Структура как тип и совокупность данных 172

7.2 Реализация линейного списка на языке СИ++ 180

7.3 Объединения разнотипных данных 188

7.4 Деревья 191

7.5 Битовые поля структур и объединений 194

7.6 Компонентные функции структурированных объектов 198

7.7 Расширение действия (перегрузка) стандартных операций 208

7.8 Доступ к компонентам структурированного объекта 214

7.9 Классы и шаблоны 219

Проектные задания 222

Тесты рубежного контроля 223

Квалиметрическая оценка 227

список ЛИТЕРАТУРЫ 227

ПРИЛОЖЕНИЕ 1 228

Таблицы кодов ASCII 228

ПРИЛОЖЕНИЕ 2 234

Стандартная библиотека функций языка Си 234

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Введение

Язык программирования Си++ был разработан на основе языка Си Бьярном Страуструпом (Bjarne Stroustrup, США) в начале 80-х годов. И с тех пор прочно занял одно из лидирующих мест среди алгоритмических языков программирования. Это в первую очередь объясняется тем, что автору удалось, с одной стороны, сохранить преемственность языков Си и Си++ (в программах на языке Си++ можно использовать тексты на языке Си и обращаться к библиотечным функциям языка Си), а с другой стороны, реализовать в нём поддержку концепции абстракции данных и технологии объектно-ориентированного программирования.

С начала 80-х годов язык Си++ непрерывно развивался и совершенствовался. В 1985 и в 1989 годы вышли первая и вторая коммерческие версии языка и в 1998 году был ратифицирован его стандарт. В стандарт вошли такие нововведения как стандартная библиотека шаблонов (STL), пространство имён (namespaces), механизм идентификации типов во время выполнения (RTTI), явное приведение типов (cast – операторы ) и другие, которых не было в предыдущих версиях языка. Необходимо отметить, что стандарт добавил к языку новые возможности, но не вычеркнул из него хорошо зарекомендовавшие себя базовые основополагающие механизмы, изложению которых и посвящено данное пособие.

Модуль 1

Цель данного модуля является познакомить студентов с лексическими основами языка Си++, со средой программирования и основными типами данных.

1. НЕФОРМАЛЬНОЕ ВВЕДЕНИЕ В ЯЗЫК СИ++

1.1. Простые программы на языке Си++

Следуя традициям, напишем первую программу на языке Си++, выводящую на экран монитора строку «Здравствуй Мир!».

//Программа 1.1 hello.cpp //1

#include "stdafx.h" //Не обязательная строка

#include <iostream> //2

void main(){ //3

std::cout<<"\n Hello World!"; //4

getchar(); //

}

Первая строка программы является комментарием. Комментарии в языке Си++ могут быть однострочными и многострочными. Однострочные комментарии вводятся с помощью двух символов //, и все, что стоит после них в строке программы, воспринимается компилятором как комментарий. Пример:

//Это однострочный комментарий.

Многострочным комментарием в программе является всё, что расположено между символами \* *\. Пример:

\* Это многострочный

комментарий *\

Вторая строка программы начинается с символа #. Этот символ сообщает компилятору, что за ним следует директива препроцессора. В данном случае include (вставить). С помощью этой директивы в текст программы вставляется содержимое текстового файла iostream.h. Текстовые файлы с расширением *.h принято называть в языке Си++ заголовочными файлами. Вид скобок < >, в которые заключён заголовочный файл iostream.h, информирует компилятор о том, что этот файл является библиотечным и, следовательно, должен находится в директории INCLUDE. Библиотечный заголовочный файл iostream.h включён в текст программы, для того чтобы проинформировать компилятор, что идентификатор cout (а также cin, сerr и др.) является объектом класса iostream. Сейчас нет необходимости подробно останавливаться на классах. Поэтому просто необходимо запомнить, что для того чтобы с помощью объекта cout и его операции (<<) вывести на экран информацию, необходимо с помощью директивы include включить в текст программы заголовочный файл iostream.h.

Любая программа, написанная на языке Си++, начинается с выполнения операторов функции с именем main (или WinMain). Функция с таким именем должна быть единственной во всём тексте программы. Синтаксис определения любой функции, в том числе и функции main, задаётся следующими правилами:

тип_функции имя_функции(список формальных параметров) { тело функции}

где тип_функции – тип возвращаемого в точку вызова функцией значения (в нашем примере тип функции main  void ); имя_функции – в общем случае определяется пользователем (в данном примере определена только одна функция – main); список формальных параметров  список типов данных, передаваемых функции (в данном примере отсутствует); тело функции – последовательность заключённых в фигурные скобки операторов, реализующих алгоритм работы программы на языке Си++ (в нашем примере тело функции представлено одним оператором, реализующим вывод строки на экран монитора).

В четвёртой строке программы с помощью объекта cout и перегруженной операции << осуществляется вывод строковой константы ”\n Здравствуй Мир” на экран монитора. В общем случае с помощью объекта cout на экран монитора можно выводить константы, значения переменных, значения выражений. Например:

cout<<”\n 5+3 = “<<(5+3);.

И в последней пятой строке программы стоит закрывающая фигурная скобка, которая обозначает конец тела функции main. По достижению этой точки программа завершает свою работу.