Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
new_Лекции_1-7.docx
Скачиваний:
117
Добавлен:
05.03.2016
Размер:
1.49 Mб
Скачать

Міністерство освіти і науки, молоді та спорту України

Херсонський державний університет

Кафедра інформатики

В. В. Губанов

ОСНОВИ ПРОГРАМУВАННЯ на С++

(частина 1)

Конспект лекцій

для студентів факультету фізики, математики і інформатики

спеціальність 6.050103. “Програмна інженерія”

Затверджено

вченою радою ХДУ

Протокол № від

Херсон

2012

Рецензенти:

Львов М.С. - кандидат фізико-математичних наук, професор кафедри інформатики

Кравцов Г.М. - кандидат фізико-математичних наук, доцент кафедри інформатики

Зайцева Т.М. - кандидат педагогічних наук, доцент кафедри інформатики

Губанов В. В.

ОСНОВИ ПРОГРАМУВАННЯ на С++ (частина 1)

Конспект лекцій для студентів факультету фізики, математики

і інформатики, спеціальність 6.050103. “Програмна інженерія”

Обговорено на засіданні кафедри інформатики

Протокол № від 2012р.

Розглянуто на засіданні навчально-методичної ради факультету фізики, математики та інформатики

Протокол № від 2012р.

Схвалено науково-методичною радою ХДУ

Протокол № від 2012р.

Рекомендовано до друку Вченою радою ХДУ

Протокол № від 2012р.

У даному конспекті лекцій приведені матеріали необхідні для початкового вивчення мови програмування С++. Конспект містить теоретичну частину основ мови з використанням великої кількості прикладів, підготовлених і відлагоджених в середовищі Microsoft Visual Studio 2010. Призначен для студентів спеціальностей 6.050103. “Програмна інженерія”, 6.040302. “Інформатика” і всіх, хто хоче почати вивчення мови С++.

Введение

Данный конспект лекций освещает теоретические и практические приемы программирования на языке С++.

Предшественник языка С++ язык С предназначался для системного программирования при создании операционных систем, системных утилит и встраиваемого программного обеспечения. Он обладал всеми необходимыми для этого свойствами: программы, написанные на нем, очень эффективны, не требуют специальной среды поддержки времени выполнения. Программы на языке С имеют низкие требования к аппаратной части вычислительной системы. Характерной особенностью языка С является отсутствие ответственности за действия программиста. Например, в нем не предусматривается контроль выхода за границы массивов (числовых или символьных). Основной принцип данного языка состоит в том, чтобы позволить программисту делать все, что он хочет, но и за последствия отвечает не язык, а программист.

Язык C оказал большое влияние на индустрию разработки программного обеспечения. Синтаксис многих его инструкций лежит в основе таких языков, как С++, С#, Java.

Язык С++, сохранил в себе все достоинства языка С. Является языком компилирующего типа, полностью поддерживающий как процедурное и структурное программирование, так и объектно-ориентированное программирование (ООП), включая его четыре главных понятия : инкапсуляция, скрытие данных, наследование и полиморфизм.

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

Цель пособия - дать правильное представление о возможностях языка С++ и способах его применения, а также подготовить студентов к дальнейшему его изучению. Поэтому в первой части данного конспекта лекций рассматриваются не только встроенные типы данных, базовые конструкции языка и технология структурного программирования, но и вводится концепция типов данных, определяемых программистом, т.е. осуществляется введение в объектно-ориентированное программирование.

Пособие предназначено для начального изучения языка С++ в течение первого семестра по программе курса «Основы программирования» на специальности 6.050103. “Программная инженерия”. Конспект состоит из 7 тем, каждая из которых содержит лекции с примерами, практические задания и контрольные вопросы. После изучения материала лекции и примеров программного кода необходимо ответить на контрольные вопросы. Предлагаемые практические задания предназначены для самостоятельного решения (программирования) и составляют основу для проведения лабораторных занятий.

Библиографический список литературы позволит желающим самостоятельно дополнить знания по языку программирования С++.

Тема 1: Введение в С++

Лекция 1.1. Эволюция языка С++. Цикл разработки приложения

План лекции

  1. Эволюция языков программирования

  2. Интерпретаторы и компиляторы

  3. Процедурное и объектно-ориентированное программирование

  4. Характеристики языка С++

  5. Скрытие данных, наследование и полиморфизм

  6. Компиляторы С++ и текстовые редакторы

  7. Основные шаги подготовки приложения на С++

  8. Схема цикла разработки приложения на С++

  9. Ошибки

  10. Интегрированная среда разработки

  1. Эволюция языков программирования

Компьютерные языки прошли огромный эволюционный путь . Сначала программисты пользовались машинным языком и команды программы для компьютера представляли собой длинные строки, состоящие из 0 и 1. Затем появились ассемблерные языки, позволяющие придать машинным инструкциям мнемонический вид, более понятный и осмысленный для человека. Со временем стали развиваться языки высокого уровня, такие как FORTRAN, BASIC , COBOL, ALGOL, PL/1, PASCAL, C и т.д.

  1. Интерпретаторы и компиляторы

Инструкции программы, написанной на языке высокого уровня переводятся в язык машинных команд с помощью интерпретаторов или компиляторов. Интерпретатор (interpretator) переводит и выполняет инструкции программы по мере чтения ее команд. Компилятор (compiler) преобразует код в промежуточную форму и результатом компиляции является объектный файл (*.obj), который затем обрабатывается редактором связей (компоновщик, linker) и создается исполняемая программа (приложение, application, *.exe). Использование компиляторов дает следующие преимущества:

  • более высокую скорость выполнения приложения;

  • возможность распространения приложения без компилятора.

  1. Процедурное и объектно-ориентированное программирование Эволюционное развитие прошли также и методы разработки программ. В процедурном программировании программы рассматриваются как набор процедур (подпрограмм, procedure, subroutine) и функций (function), обрабатывающих данные. Данные изолированы от процедур и по мере увеличения размеров программы становится очень сложно управлять логикой работы приложения.

В структурном программировании программа рассматривается как набор заданий (модулей, module) . Любое задание, которое сложно описать, просто разбивается на ряд меньших модулей, то тех пор, пока эти задания не станут небольшими и автономными, а также простыми и понятными. Объектно-ориентированное программирование делает программирование более похожим на моделирование. В программе создаются и выполняют действия различные объекты – модели реально существующих предметов материального мира. Каждый объект имеет определенные свойства (properties), умеет выполнять набор действий (methods) и реагирует на события операционной системы (events).

  1. Характеристики языка С++

С++ - язык компилирующего типа, полностью поддерживающий как процедурное и структурное программирование, так и объектно-ориентированное программирование (ООП) , включая его четыре главных понятия : инкапсуляция, скрытие данных, наследование и полиморфизм.

  1. Скрытие данных, наследование и полиморфизм

Свойство замкнутости объекта в себе называется инкапсуляцией (encapsulation). Возможность использования инкапсулированного объекта без рассмотрения того, как он устроен внутри, называется скрытием данных (data hiding). В С++ описание объектов и поддержание в них свойств инкапсуляции и скрытия данных реализуются путем создания новых типов данных, называемых классами. Однажды созданный, хорошо спроектиро­ванный класс, действует как полностью инкапсулированный объект. Операции происхо­дящие внутри класса спрятаны от пользователя класса. Пользователю класса не нужно знать как устроен класс, ему нужно знать как пользоваться этим классом.

C++ поддерживает идею повторного использования и изменения поведения уже существующего объекта с помощью механизма наследования (inheritance). Можно объявить новый (производный) класс, который является расширением уже существующего (базового) класса и в него добавить нужные вам новые свойства и методы объекта. При этом объекты производных классов могут выполнять по разным алгоритмам методы с одинаковыми названиями – это полиморфизм (polymorphism) функций.

  1. Компиляторы С++ и текстовые редакторы

Для разработки программ на С++ могут быть применены компиляторы различных фирм Borland, Microsoft, Watcom, Symantec. Независимо каким компилятором вы будете пользоваться, важно помнить, что текст программы должен быть текстовым файлом, подготовленным обычным текстовым редактором, например Notepad, и иметь расширение имени cpp (реже cp, c ). Пользоваться текстовыми процессорами типа Word, вставляющими внутрь текста специальные символы форматирования, не рекомендуется. При использовании подобных редакторов нужно сохранить файл как текстовый!

  1. Основные шаги подготовки приложения на С++

Приложения в С++ создаются путем компоновки (связывания) одного или нескольких объектных файлов, получаемых в результате компиляции, с библиотеками объектных файлов. Библиотека (library) – это набор объектных файлов, поставляемых в составе компилятора. Все компиляторы С++ снабжены библиотекой функций и классов, которые вы можете подключить и использовать в своей программе. Выделяют следующие шаги подготовки приложения и его выполнения :

  • создание исходного файла программы с расширением имени .CPP.

  • препроцессорная обработка и компиляция исходного кода в объектный файл с расширением .OBJ.

  • компоновка объектного файла и получение приложения с расширением .EXE.

  • загрузка приложения в ОЗУ (RAM) и его выполнение.

  1. Схема цикла разработки приложения на С++

Цикл разработки приложения с учетом возможных ошибок приведен на рисунке:

  1. Ошибки

Ошибки (errors) компиляции могут происходить по самым разным причинам. Обычно они являются следствием опечаток или несоблюдением правил языка. Хороший компилятор не только укажет вам на ошибку, но и покажет место (часто окрестности места) в программе, где допущена ошибка и даже подскажет как ее исправить. Различают следующие типы ошибок в программе :

  • предупреждения (warnings) – приложение создается, но возможно будет неправильно работать;

  • ошибки (errors) – приложение не создается;

  • серьезные ошибки (severe, fatal errors) – приложение не создается;

  • логические ошибки (logical errors) – компилятором не обнаруживаются, приложение создается, но работает неправильно – это проблема программиста.

  1. Интегрированная среда разработки

Современные компиляторы С++ оснащены интегрированной средой разработки (IDEintegrated development environment). IDE предоставляет программисту простой и удобный сервис для выполнения перечисленных этапов подготовки приложения путем выбора команд из меню или нажатием кнопок на панелях инструментов. В состав IDE языка С++ входят:

  • редактор текстов (text editor) - выделяет основные элементы программы;

  • препроцессор (preprocessor)- обрабатывает текст программы до ее компиляции;

  • компилятор (compiler)– проверяет текст программы и создает объектный файл;

  • компоновщик (linker)– создает приложение из объектного файла и библиотек;

  • загрузчик (loader) – загружает приложение в ОЗУ и инициирует его выполнение;

  • отладчик (debugger) – помогает программисту найти ошибки в программе;

  • справочник (help) – набор книг и документов по языку С++.

IDE Microsoft Visual Studio 2010

IDE QT Creator

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]