Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Этапы подготовки исполняемой программы




Максимов М.Н.

 

Электронный учебник текстовый с соответствующим сервисом по дисциплине «Информатика»

 

 

Таганрог 2016

  Максимов  М.Н.
  Название: Электронный учебник текстовый с соответствующим сервисом по дисциплине «Информатика». -Таганрог, 2008.

 

 

Анотация

Данный электронный учебник является электроным изданием, дополняющим курс лекций, читаемых по дисциплине «Информатика». Он предназначено для студентов, обучающихся по специальностям «Радиотехника», «Аудиовизуальная техника», «Сети связи и системы коммутации».

 

Введение

Государственный образовательный стандарт практически по всем техническим специальностям подразумевает изучение одного из алгоритмических языков высокого уровня. Язык С++ идеально подходит для этой цели, так как является одним из самых распространённых и мощных средств разработки современных программных приложений.

К сожалению, в наше время, для того чтобы научится писать современные программные приложения на хорошем уровне, недостаточно ограничится изучением синтаксиса языка. Необходимо также изучить принципы написания программ под Windows, познакомиться с API функциями, библиотекой MFC или ATL, а лучше с тем и другим. Изучить способы применения стандартной библиотеки шаблонов STL. Дать студентам представление о современных алгоритмах и технологии объектно-ориентированного программирования.

Другими словами в двух семестровом курсе необходимо изложить материал пяти – шести солидных книг по программированию, на изучение которых студенту при самостоятельном способе обучение потребовалось бы несколько лет. Для того чтобы решить эту задачу необходимо использовать современные методы обучения и данный электронный учебник безусловно поможет в этом.

 

 

Общие положения

Курс «Информатика» читается студентам в 1 и 2  семестрах. Каждый из семестров содержит по два учебных модуля. Основная задача курса научить студентов пользоваться при решении своих профессиональных задач языком программирования высокого уровня в данном случае языком С++. Для этой цели студенты в течение двух семестров прослушивают курс лекций, выполняют 9 лабораторных работ, 3 индивидуальных задания и самостоятельно работают с рекомендуемой литературой.


Оглавление

ВВЕДЕНИЕ.. 8

МОДУЛЬ 1. 8

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

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

1.2. Этапы подготовки исполняемой программы.. 10

1.3. Системы счисления. 13

2. ЛЕКСИЧЕСКИЕ ОСНОВЫ ЯЗЫКА Си++. 17

2.1. Общие сведения о программах, лексемах и алфавите. 17

2.2. Идентификаторы и служебные слова. 18

2.3. Типы данных. 19

2.4. Константы.. 22

2.5. Операции. 29

2.6. Разделители. 43

2.7. Первоначальные сведения о функциях языка Си++.. 46

3. СКАЛЯРНЫЕ ТИПЫ И ВЫРАЖЕНИЯ.. 51

3.1. Определение и описание переменных. 51

3.2. Явное и неявное преобразование типа. 62

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

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

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

Список литературы... 74

МОДУЛЬ 2. 74

4. ОПЕРАТОРЫ ЯЗЫКА Си++. 74

4.1. Последовательно выполняемые операторы.. 75

4.2. Операторы выбора. 76

4.3. Операторы цикла. 80

4.4. Операторы передачи управления. 86

4.5. Примеры численного моделирования цепей первого порядка. 91

5. АДРЕСА, УКАЗАТЕЛИ, МАССИВЫ, ПАМЯТЬ.. 95

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

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

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

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

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

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

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

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

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

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

Модуль 3. 130

6. ФУНКЦИИ, УКАЗАТЕЛИ, ССЫЛКИ.. 131

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

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

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

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

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

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

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

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

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

МОДУЛЬ 4. 168

7 СТРУКТУРЫ, ОБЪЕДИНЕНИЯ И КЛАССЫ... 168

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

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

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

7.4 Деревья. 188

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

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

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

7.8 Особенности реализации конструктора копии, деструктора и оператора-функции operator=() для классов имеющих компонентные данные в виде указателей. 210

7.9 Доступ к компонентам структурированного объекта. 215

7.10 Классы и шаблоны.. 220

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

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

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

Модуль 5. 227

8 НАСЛЕДОВАНИЕ И ДРУГИЕ ВОЗМОЖНОСТИ КЛАССА.. 227

8.1 Наследование классов. 227

8.2 Множественное наследование и виртуальные базовые классы.. 241

8.3 Виртуальные функции и абстрактные классы.. 245

8.4 Виртуальные деструкторы.. 256

Модуль 6. 257

9 СТАНДАРТНАЯ БИБЛИОТЕКА ШАБЛОНОВ (STL) 257

9.1 Компоненты STL. 257

9.2 Контейнеры.. 260

9.3 Последовательные контейнеры.. 261

9.4 Ассоциативные контейнеры.. 266

9.5 Контейнерные адаптеры.. 267

9.6 Итераторы.. 268

9.7 Примеры использования ассоциативных контейнеров. 272

9.8 Примеры использования отображений и мультиотображений. 275

9.9 Отображение как ассоциативный массив. 276

9.10 Категории итераторов. 278

9.11 Алгоритмы.. 280

9.12 Интервалы.. 283

9.13 Общие возможности контейнеров. 288

9.14 Реализация ссылочной семантики. 288

СПИСОК ЛИТЕРАТУРЫ... 292

ПРИЛОЖЕНИЕ 1. 292

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

ПРИЛОЖЕНИЕ 2. 298

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

 


 

 

ВВЕДЕНИЕ

Язык программирования Си++ был разработан на основе языка Си Бьярном Страуструпом (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. По достижению этой точки программа завершает свою работу.

 

Этапы подготовки исполняемой программы

Файл, содержащий текст программы, написанный на языке Си++, - это обычный текстовый файл, который можно отредактировать или создать в любом текстовом редакторе. Но поскольку он всё же содержит текст программы, а не просто текст, то для него обычно вместо расширения *.txt выбирают расширение *.cpp, *.c или *.h.

С текстом программы принято работать не в обычном текстовом редакторе, а в среде программирования, например Borland или Microsoft Visual, которая содержит свой специфичный текстовый редактор. Преимущество такой организации работы в том, что текстовый редактор среды с помощью цвета или пробелов делает программу более читабельной, например, выделяя каждый своим цветом ключевые слова языка, константы, комментарии и т.д. Кроме того, среда программирования предназначена для компиляции и компоновки из исходного текстового файла нового исполняемого файла (программы), содержащего инструкции процессора и имеющего обычно расширение *.exe. Этапы подготовки исполняемой программы приведены на рис. 1.1.         

Рис. 1.1. Этапы подготовки исполняемой программы

 

Исходный текст программы на первом этапе обрабатывается препроцессором, задача которого выполнить директивы препроцессора (строки программы, начинающиеся с #). Например, в тексте программы hello.cpp есть только одна директива include. С помощью этой директивы в исходный текст программы препроцессор вставляет содержимое текстового файла iostream.h. В результате мы получаем полный текст программы.

На втором этапе текст программы анализируется компилятором (Compiler), и если в программе отсутствуют синтаксические ошибки, то создаётся так называемый объектный файл с расширением *.obj, который является исходным файлом для третьего этапа – компоновки. Если же компилятор обнаруживает синтаксические ошибки в тексте программы, то объектный файл не создаётся, и программисту в отдельном окне message выводятся сообщения об ошибках с указанием, в какой строке программы, по мнению компилятора, присутствует ошибка и в чём она заключается. В 90% случаев компилятор правильно указывает строку с ошибкой и её тип, но иногда ошибка может находиться выше в тексте программы. 

Кроме ошибок компилятор может выдавать предупреждения. Одним из типичных предупреждений является сообщение компилятора о том, что программист определил переменную, но дальше в тексте программы нигде её не использовал. С предупреждениями компилятора желательно ознакомится и по возможности устранить, так как некоторые предупреждения, могут быть не столь безобидны, как описанное выше, и являются указанием программисту на возможную скрытую ошибку в программе. Тем не менее, наличие только предупреждений не препятствует созданию объектного модуля и переходу к этапу компоновки.

 При компоновке Linker (компоновщик) создаёт исполняемый файл, обрабатывая объектный файл и включая в него код из библиотечных файлов. Компоновщик, как и компилятор, тоже может выдавать сообщения об ошибках. Это происходит тогда, когда программист описал объект, но забыл его определить. В этом случае исполняемый файл не будет создан, пока программист не исправит ошибки и не запустит компоновщик заново.

В компиляторах обычно предусмотрена возможность выполнения отдельных этапов подготовки программы по отдельности или вместе. Так в компиляторе фирмы Borland при выборе в меню команды Compile будет выполнена только компиляция программы с созданием её объектного модуля. При выборе в меню команды Link запустится только компоновщик, который воспользуется объектным модулем программы и создаст исполняемую программу. При выборе в меню команды Build all будут выполнены все этапы подготовки программы. 

 

Системы счисления

В языке Си++ используются константы, представленные в десятичной, восьмеричной и шестнадцатеричной системах счисления. Для понимания того, как выполняются некоторые операции языка Си++, необходимо уметь переводить числа из одной системы счисления в другую. Поэтому остановимся кратко на способах представления чисел в разных системах счисления и перевода их из одной системы в другую. В табл. 1 показано представление чисел от 0 до 16 в разных системах счисления.

Таблица 1.1





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 361 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студенческая общага - это место, где меня научили готовить 20 блюд из макарон и 40 из доширака. А майонез - это вообще десерт. © Неизвестно
==> читать все изречения...

4344 - | 4246 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.