Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_c+.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
464.38 Кб
Скачать

Министерство образования и науки РФ

Санкт-Петербургский государственный

электротехнический университет “ЛЭТИ”

__________________________________________________________________

Программирование на языках С и С++

в среде Microsoft Visual C++

Методические указания

к лабораторным работам

по дисциплинам “Информатика”, “Программирование”

Санкт-Петербург

Издательство СПбГЭТУ “ЛЭТИ”

2006

УДК 004.438

Программирование на языках С и С++ в среде Microsoft Visual C++: Методические указания к лабораторным работам по дисциплинам “Информатика”, “Программирование” /Сост.: Зуев И.С., Хигай А.Г. СПб.: Изд-во СПбГЭТУ “ЛЭТИ”, 2006. 32 с.

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

Предназначены для студентов СПбГЭТУ “ЛЭТИ” специальности 22.01.00 дневной и вечерней форм обучения.

Утверждено

редакционно-издательским советом университета

в качестве методических указаний

 СПбГЭТУ “ЛЭТИ”, 2006

Введение

Настоящие Методические указания предназначены для продвинутых студентов 1-го, 2-го курса, имеющих некоторый опыт программирования, и студентов 3-го курса, начинающих осваивать дисциплину “Объектно-ориентированное программирование”. Однако, раздел “Инструкция программиста” следует начинать изучать с первого курса, возвращаясь к нему повторно после освоения объектно-ориентированного программирования.

Поздравляем Вас с переходом на третий курс обучения в нашем университете. Вы уже освоили первые две буквы в алфавите искусства программирования: букву “А” – программирование на языке С и букву “В” – программирование на языке ассемблера. Следующая буква “С” – программирование на языке С++.

Осваивая новый инструмент программирования, Вы, вместе с тем, не начинаете процесс с нуля. Следует подчеркнуть, что язык С++ полностью включает С в качестве подмножества. И поэтому, прежде всего Вам следует вспомнить то, что Вы изучали на первом курсе по книгам и методическим указаниям [1–3].

Новый язык Вы будете изучать в новой среде программирования – Microsoft Visual C++, котораяпо сравнению со средой Borland С 3.1 является гораздо более совершенной и удобной для профессионального программиста. Оборотной стороной является то, что это, соответственно, гораздо более сложный инструмент, начиная от большого количества типов проектов и кончая неисчерпаемым многообразием режимов обработки. Помощниками в освоении новой среды для Вас будет уже знакомый Вам практикум [2] и настоящие методические указания.

В этом курсе Вы познакомитесь с фундаментальной концепцией класса и освоите азы объектно-ориентированного программирования. Было бы грубой ошибкой считать, что после данного курса Вы познаете все в области программирования. Впереди еще оконные интерактивные приложения с меню, кнопками, рабочим полем экрана для создания некоторого полезного пользователю объекта. За примерами таких приложений далеко ходить не надо. Вы уже пользовались редактором Microsoft Word, в котором создавали полезный для Вас объект – отчет о лабораторной работе. Теперь будете пользоваться интерактивной средой Microsoft Visual C++, в которой создается объект “программа”. Именно оконные интерактивные приложения являются наиболее актуальными на современном этапе технического развития. В них, например, разрабатываются схемы электрические принципиальные устройств и топология микросхем. Все это – основа специальности, которую Вы избрали. Для создания таких приложений знание языка С++ и объектно-ориентированного программирования – это, в свою очередь, азы. Отнеситесь к изучению Азов серьезно.

Желаем успехов!

1. Назначение и общая характеристика языка программирования С++

Наш мир представляет собой совокупность объектов различной природы, будь то автомобиль или транзистор в интегральной схеме. Но прежде чем создать рукотворный объект, необходимо сначала спроектировать его детальное описание (определение). Проект автомобиля хранится в единственном экземпляре на заводе, а автомобилей такого проекта (объектов) ездит по стране десятками тысяч; также как транзистор имеет одно определение, а на интегральной схеме может быть сотни тысяч объектов типа транзистор. То есть следует отличать тип, который практически не потребляет ресурсов, от объекта данного типа, который потребляет ресурсы в соответствии с его определением – автомобиль, в отличие от его проекта, имеет габариты в пространстве и ездит по дорогам, потребляя бензин.

В соответствии с такой природой вещей язык программирования, моделирующий свойства этих вещей, не должен ограничиваться примитивными объектами типа int, double, char, … . Он должен давать возможность создавать типы и операции над объектами (методы) данных типов.

Отражением этой общей концепции является понятие класса (class) в языке программирования С++. Это понятие является обобщением структуры в языке С. Класс определяет две главные составляющие модели объекта: его информационные параметры (то есть данные) и действия (операции), которые над этим объектом можно произвести. Именно программирование операций является главным расширением, которое позволяет создавать полноценные модели объектов. Операции моделируются функциями, аналогичными функциям языка С и объявляемыми внутри самого класса. Эта важная особенность позволяет иметь одинаковые имена действий объектов, сходных по выполняемым функциям. Например, в проекте интегральной схемы каждый элемент прорисовывает на экране сам себя с помощью функции draw() (“Нарисовать”), но эта функция имеет разное содержание для транзистора или связи.

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

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

Язык С++ является высокоуровневым языком программирования, он удобен и, нагляден и позволяет создавать более компактные программы, чем язык С. Например, в нем можно иметь дело со строкой как единым целым, а не с указателем на ее первый элемент char*; аналогично можно оперировать списком, а не указателем на его первый элемент.

Следующим концептуальным уровнем обобщения является параметризация классов по используемым типам элементов, входящих в класс. Например, интересно иметь список не конкретных элементов (типа double), а элементов произвольной сложности, определяемых в качестве параметра списка. Таким образом, мы приходим к понятию “Шаблон”. В системе С++ есть целая библиотека стандартных шаблонов (STL – Standard Template Library), позволяющих делать многие полезные широко распространенные вещи, в том числе и упомянутые выше.

В мире, однако, ничего бесплатного не бывает. Платой за новую концепцию проектирования программ является некоторая потеря эффективности. Объекты классов обрабатываются несколько медленнее, чем встроенные объекты; если Вы, например, замените все простые переменные типа int, double, char соответствующими классами с определением дополнительных функций обработки, то Ваша программа будет работать до 2-х раз медленнее. Кроме того, при проектировании класса довольно трудно решить, какие операции над соответствующими объектами действительно необходимы, что может порождать избыточность с соответствующим перерасходом труда программиста и памяти на хранение кода обработчика. Поэтому с появлением языка С++ язык С не умирает, он широко используется там, где важна предельная эффективность объектного кода – в операционных системах, в программах управления, при программировании алгоритмов, требующих больших временных ресурсов.

Вашей задачей в этом семестре будет изучение языка С++ и основ объектно-ориентированного программирования. Настоящие методические указания – это только очень короткое введение, которое позволит Вам начать процесс изучения и понять основное с наименьшими усилиями. Настоятельно рекомендуется читать первоисточник [4], в котором Вы найдете огромное количество деталей, нюансов и даже концепций, выходящих за рамки процесса университетского обучения. Только овладев всем этим богатством, Вы станните профессионалом в области программирования.