- •1.2. Понятие системы и среды программирования
- •И интегрированные среды разработки (ide)
- •1.3.2. Бесплатные интегрированные среды разработки (ide)
- •1.7. Основные этапы выполнения программ в интегрированной среде (ide)
- •1.8. Настройка русского языка в консольных программах-Вар1
- •2. Задание
- •3. Требование к отчету
- •Краткие теоретические сведения.
- •4. Контрольные вопросы
1.3.2. Бесплатные интегрированные среды разработки (ide)
Dev-C++
http://www.bloodshed.net/devcpp.html
Поддерживаемая система: Windows 95/98/NT/2000/XP
Поддерживаемые компиляторы: семейства GNU GCC (MinGW, Cygwin)
Если вы уже искали или только ищите бесплатную IDE под ОС семейства Windows для C++ то, я уверен на 100 %, хоть раз да услышали (услышите) про Dev-C++. Это весьма функциональная и компактная среда разработки может стать хорошим подспорьем как начинающему программисту, так и профессионалу. К сожалению, Dev-C++ уже давно не поддерживается - остановив свое развитие на версии 5 beta. Но не стоит из-за этого сразу сбрасывать эту IDE со счетов, а стоит обратиться к wxDev-C++ - развитию проекта Dev-C++ (который, помимо всей функциональности Dev-C++, содержит и дизайнер форм для кросс-платформенной библиотеки wxWidgets).
Итак, что мы получаем решив использовать Dev-C++:
- поддержка компилятора GCC
- интегрированная отладка (используется GDB)
- менеджер проекта
- настраиваемый редактор кода с подсветкой синтаксиса
- просмотрщик классов
- автозавершение кода
- список функций
- поддержка профилей
- быстрое создание Windows-приложений, консольных программ, статичных библиотек и DLL (шаблоны)
- поддержка шаблонов, позволяющих создавать свои собственные типы проектов
- создание makefile'а
- редактирование и компиляция файлов ресурсов
- менеджер инструментов
- поддержка печати
- средства поиска/замены (забавно было бы их не обнаружить :-))
- поддержка CVS
Ну что вы уже загорелись желанием заполучить эту "лапочку"? ;-) Тогда смело качайте Dev-C++ либо wxDev-C++!
MinGW Developer Studio
http://koti.mbnet.fi/vaultec/mingwstudio.php
Поддерживаемая система: Windows 95/98/NT/2000/XP/Vista/7
Поддерживаемые компиляторы: MinGW
Еще один "старичок" в полку IDE. Как видно из названия, работает с портированой версией GCC - MinGW, хотя в большинстве обзоров данную среду характеризуют как кросс-платформенную. Если вы программировали на языке C++ в MS Visual Studio 6.0, то эта среда вам явно придется по душе, ибо автор MinGW Developer Studio при разработке интерфейса постарался повторить эту IDE от Microsoft. Существенным минусом является лишь то, что с 2005 года проект не разрабатывается, а с 2008 года даже перестал работать официальный сайт. Но мир не без добрых людей и, если вы все же заинтересованы в использовании MinGW Developer Studio, вы всегда можете скачать актуализированную версию с сайта VaulTec. Ничего нового, по сравнению с финальной официальной версией, конечно, там нет - гарантируется лишь работа с одной из последних версий MinGW.
Исходя из доступной информации, рассматриваемая среда разработки обладает следующими "плюшками":
- интерфейс, поддерживающий работу с несколькими документами
- подсветка синтаксиса
- управление проектом (надо думать "менеджер проекта" :-)) с настройками для debug и release сборок
- сворачивание кода
- интегрированая помощь
- поддержка отладки
- и еще много других, о которых авторы постеснялись рассказать.
Code::Blocks
http://www.codeblocks.org/
Поддерживаемая система: Linux/Mac OS X/Windows
Поддерживаемые компиляторы: GCC(MinGW)/Digital Mars C/C++/Microsoft Visual C++ 6/Microsoft Visual C++ Toolkit 2003/Microsoft Visual C++ 2005/2008/Borland C++ 5.5/Watcom/Intel C++ compiler
Первая действительно кросс-платформенная среда разработки в этом обзоре. Хотя проект и достаточно молодой, но это не помешало стать ему популярным среди программистов, особенно разрабатывающих приложения одновременно для нескольких операционных систем. Создатели Code::Blocks пошли по пути открытой архитектуры, тем самым предоставив возможность сторонним разработчиками расширять возможности среды за счет собственных плагинов (на момент написания обзора таких насчитывалось более двух десятков). Об одном плагине стоит сказать отдельно - wxSmith, по сути являющимся wxWidgets RAD инструментом, позволяющим проектировать оконные формы и прочие визуальные объекты используя библиотеку wxWidgets (библиотека wxWidgets устанавливается отдельно). Многим, я думаю, придется по душе и наличие большого числа шаблонов создаваемого проекта - начиная от статичной библиотеки и заканчивая такими проектами как Qt4 и Ogre. Конечно, "матерые" программеры все это и сами могут написать, что не скажешь о новичках, только-только вставших на зыбкий путь программирования :-), для которых это будет хорошим подспорьем в начинаниях. Как гласит народная мудрость - "лучше один раз пощупать, чем сто раз услышать" ;-), поэтому, тем кто заинтересовался Code::Blocks милости просим на страницу загрузки, а тем, кто еще сомневается, еще пару положительных моментов (помимо уже указанных):
- подсветка кода (ну куда уж без нее :-))
- сворачивание кода C++ и XML
- автозавершение кода
- просмотрщик классов
- быстрая система сборки (не требуются make-файлы)
- поддержка параллельных сборок (удобно для многоядерных процессоров)
- импорт проектов MS VC
- импорт проектов Dev-C++
- поддержка дебагеров GNU GDB и MS CDB (правда реализована пока не вся функциональность MS CDB)
- и др.
Eclipse C/C++ Development Tools
http://www.eclipse.org/cdt/
Поддерживаемая система: AIX/FreeBSD/HP-UX/Linux/Mac OS X/OpenSolaris/Solaris/QNX/Windows
Поддерживаемые компиляторы: преимущественно основанные на GNU GCC
Одна из известнейших сред разработки, "краеугольный камень" которой заложила IBM. По сути, Eclipse C/C++ Development Tools (CDT), является плагином одной большой интегрированной среды разработки модульных кроссплатформенных приложений и имя ей - Eclipse. Таким образом Eclipse включает в себя набор плагинов позволяющих создавать приложения на Java, C/C++, PHP и др. Разработкой всей этой махины руководит Eclipse Foundation, бегло ознакомиться с которой вы можете, например, на сайте Википедии. Громкие имена компаний, стоящие за разработкой и развитием платформы Eclipse, позволяют с уверенностью говорить о функциональности и стабильности этой среды. Так CDT имеет в своем арсенале все то, что должна иметь современная IDE для C/C++:
- подсветка синтаксиса
- автозавершение кода
- сворачивание кода
- ссылочная навигация по коду (гипертекстовые ссылки)
- рефакторинг кода
- создание и управление проектами для различных инструментальных средств
- стандартная make сборка
- визуальные средства отладки
- и многие другие
Добавьте к этому различные плагины расширяющие функциональность Eclipse C/C++ Development Tools и вы получите практически идеальную среду разработки. Почему практически идеальную? А потому, что разработана она на Java и, соответственно, требует установленную в системе виртуальную машину Java версии не ниже 1.5. Именно это, зачастую, становится решающим фактором для некоторых разработчиков, поскольку при слабой аппаратной части значительно увеличивает время, как компиляции разрабатываемого приложения, так и реагирования самой среды на действия пользователя. Закачать же CDT вы всегда можете со страницы загрузки Eclipse.
NetBeans IDE
http://www.netbeans.org/
Поддерживаемая система: FreeBSD/Linux/Mac OS X/OpenSolaris/Solaris/Windows
Поддерживаемые компиляторы: GNU GCC
Как и рассмотренная уже Eclipse C/C++ Development Tools, среда разработки NetBeans написана на языке Java (соответственно так же требует установленной виртуальной машины Java). В общем приближении эти среды даже можно назвать похожими. В NetBeans так же реализована модель компонент (плагинов) позволяющих расширять базовый функционал как новыми возможностями, так и поддержкой новых языков программирования - Java, Ruby, C/C++, Groovy, PHP. Естественно, данная среда изначально ориентирована на разработку Java-приложений, но, тем не менее, можно скачать и отдельную сборку IDE поддерживающей написание приложений только на языке C/C++. Конечно же в NetBeans вы найдете все те возможности и инструменты, что доступны и в Eclipse C/C++ Development Tools поэтому выделять что-то отдельное нет смысла. Зачастую, сравнивая эти 2 IDE, основная масса разговоров сводится к теме, какая из них быстрее работает, а не к обсуждению возможностей. Так что, если вы заинтересованы в среде разработки подобного типа, можете смело качать обе и тестировать какая вам придется более по душе.
Microsoft Visual Studio Express
http://www.microsoft.com/express/
Поддерживаемая система: Windows XP SP3/Vista/Server 2003/Server 2008/7
Поддерживаемые компиляторы: MS Visual C++ 2008/2010
Интенсивное развитие бесплатных средств разработки, особенно продуктов за которыми стоят такие титаны ИТ бизнеса как IBM, Oracle, Intel, AMD, очевидно вынудило пересмотреть политику Microsoft на свои продукты для разработчиков ПО. Так с 2005 года каждый желающий может скачать с сайта компании бесплатную версию популярной IDE - Visual Studio Express. Эта редакция Visual Studio представляет собой набор урезанных средств разработки для языков Visual Basic, C#, интересный нам C++ и Visual Web Developer Express и позиционируется Microsoft как IDE начального уровня для лиц не занимающихся профессионально программированием (учащихся, студентов, любителей etc.). Не переживайте - графический интерфейс и возможность создать оконные приложения вам дадут, а вот пользоваться наработками компании в области оптимизации и рефакторинга кода - практически нет. Так же вы не получите и, так всеми любимой в Visual Studio, возможности быстро устанавливать подключения к удаленным базам данных в дизайнере данных, как не получите и поддержки плагинов и компиляцию 64-битных приложений. Но это все не повод отказываться от Visual Studio Express, напротив тем, кто желает научиться программировать в среде Windows и для среды Windows, это будет полезная стартовая площадка, а подключив и MSDN - прекрасным справочным пособием по языку и API Windows.
Qt Creator
http://qt.nokia.com/products/developer-tools/
Поддерживаемая система: Linux/Mac OS X/Windows
Поддерживаемые компиляторы: GNU GCC
Последняя IDE в этом обзоре, но далеко не последняя в функциональных возможностях. В отличии от всех уже рассмотренных сред разработки, Qt Creator изначально разрабатывался и развивается как IDE для фреймворка Qt. Конечно, никто не отрицает возможности написания на нем стандартного консольного приложения, но согласитесь качать ради этого ~ 46 мб (а в установленном виде порядка 100 Мб) - не выглядит весьма рациональным решением ;-). Поэтому сам так делаю, и всем рекомендую - рассматривать Qt Creator исключительно как среду разработки для кроссплатформенного фреймворка Qt. В этом отношении вы высоко оцените интеграцию IDE с дизайнером форм (Qt Designer) и справочной системой (Qt Assistant). Для начинающих осваивать Qt (и для ленивых мэтров :-)) разработчик, на сайте продукта, предлагает сразу скачать Qt SDK - набор всех необходимх программ для разработки приложений использующих Qt - библиотеку Qt, Qt Creator, компилятор MinGW (для Windows пользователей). Исходя из целевой направленности Qt Creator, можно выделить следующие его особенности:
- интеграция дизайнера форм Qt и справочной системы Qt
- расширяемость (посредством плагинов)
- поддержка дебагеров GDB (графический фронтенд) и CDB
- подсветка кода с поддержкой нескольких языков и разметок
И много других, напрямую не зависимые от Qt Creator'а, а реализуемые посредством Qt, например, возможность создавать приложения для мобильных телефонов под управлением операционной системы Symbian и Maemo.
На этой радостной, надеюсь, ноте я хотел бы закончить свой обзор. Чем пользоваться в своей работе каждый волен выбирать сам, либо ему диктуют корпоративные правила. Хочется верить, что кому-то этот очерк позволит так же определиться в своем выборе. Для меня, лично, это стала связка Code::Blocks + MinGW и, конечно же, Qt SDK.
В следующей таблице включены пакеты программ, которые являются интегрированными средствами разработки.
Таблица 1.1
Интегрированные средства разработки
IDE |
Лицензия |
Windows |
Linux |
Другие платформы |
Отладчик |
Разработка GUI |
Toolchain |
Профилирование |
Покрытие кода |
Автодополнение |
Статический анализ кода |
GUI Based Design |
Браузер классов |
Anjuta |
GPL |
Нет |
Да |
|
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Да |
C++ Builder |
проприетарная |
Да |
Нет |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Да |
Да |
Да |
Неизвестно |
Code::Blocks |
GPL |
Да |
Да |
Mac OS X |
Да |
Да |
Да |
Да |
Неизвестно |
Да |
Да [3] |
Да [4] |
Да |
Codeforge |
проприетарная |
Нет |
Да |
Нет |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Да |
Да |
Да |
Да |
Codelite |
GPL |
Да |
Да |
Mac OS X |
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Да |
Да |
Неизвестно |
Да |
Dev-C++ |
GPL |
Да |
Да |
|
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Нет |
Неизвестно |
Eclipse CDT |
EPL |
Да |
Да |
JVM |
Да |
Да |
Нет |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Нет |
Нет |
Geany |
GPL |
Да |
Да |
|
Нет |
Нет |
Нет |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Неизвестно |
Да |
GNAT Programming Studio |
GPL |
Да |
Да |
Solaris |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
KDevelop |
GPL |
Нет |
Да |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Да |
Kuzya |
GPL |
Да |
Да |
FreeBSD, Mac OS X |
Неизвестно |
Нет |
Да |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Неизвестно |
MonoDevelop |
GPL |
Да |
Да |
Mac OS X |
Да |
Да |
Нет |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Да |
NetBeans C/C++ pack |
CDDL |
Да |
Да |
JVM |
Да |
Нет |
Нет |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Нет |
Да |
Pelles C |
Freeware |
Да |
Нет |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Qt Creator |
GPL |
Да |
Да |
Mac OS X |
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Неизвестно |
Sun Studio |
проприетарная |
Нет |
Да |
Solaris |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Неизвестно |
Да |
Rational Software Architect |
проприетарная |
Да |
Да |
JVM |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Turbo C++ Explorer |
Freeware |
Да |
Нет |
Да |
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Turbo C++ Professional |
проприетарная |
Да |
Нет |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Ultimate++ |
BSD |
Да |
Да |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Microsoft Visual Studio |
проприетарная |
Да |
Нет |
|
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Да |
Microsoft Visual Studio Express |
Freeware |
Да |
Нет |
|
Да |
Да |
Да |
Неизвестно |
Неизвестно |
Да |
Да |
Да |
Да |
wxDev-C++ |
GPL |
Да |
Нет |
|
Да |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Да |
Неизвестно |
Да |
Неизвестно |
Xcode |
Freeware |
Нет |
Нет |
Mac OS X |
Да |
Да |
Да |
Да |
Да |
Да(*) |
Да |
Да |
Да |
Open Watcom |
Sybase Open Watcom Public License |
Да |
Да |
OS/2 |
Да |
Нет |
Да |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
Неизвестно |
1.4. Интегрированная среда разработки Dev-C++ (версия 4.9.9.2)
Dev-C++ - удобная и бесплатная система для программистов, использующих язык С++.
Dev-C++ - интегрированная среда разработки и компилятор для языка Си++. Программа позволит вам создавать ваши собственные программы.
Bloodshed Dev-C++ - Редактор и компилятор для написания программ на C++. Bloodshed Dev-C++ содержит все необходимые инструменты для написания, компилирования, проверки и выполнения программ, написанных на С++. Есть также инструмент для создания инсталляционных пакетов для созданных вами программ.
Бесплатная система для разработки программного обеспечения Dev-C++ состоит из редактора и компилятора. После установки Dev-C + + вы сможете начать программировать. В редакторе вы вводите строки кода. В систему встроен бесплатный компилятор GNU C + +, который транслирует ваш исходный код в язык понятный компьютеру. Если в вашей программе не содержится ошибок, Dev-C + + завершит создание программы и создаст исполняемый файл.
Dev-C++ Интегрированная среда (IDE) - это программная система, предназначенная для разработки, отладки и исполнения программ, написанных на языке Си, имеющая встроенный редактор текстов, подсистему работы с файлами, систему помощи (Help), встроенный отладчик, подсистему управления компиляцией и редактированием связей, компилятор и редактор связей. IDE дает возможность, таким образом, получить .exe - файл не используя другие программы.
Dev-C++ — свободная интегрированная среда разработки приложений для языков программирования C/C++. В дистрибутив входит компилятор MinGW.
Проект поддерживается SourceForge. Основатель проекта Колин Лаплас, компания Bloodshed Software.
На настоящий момент не разрабатывается, вместо него активно разрабатывается порт интерфейса Dev-C++ на wxWidgets — wxDev-C++.
Компилятор MinGW (англ. Minimalist GNU for Windows), ранее mingw32, — нативный программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. MinGW позволяет разработчикам создавать нативные приложения Microsoft Windows. В MinGW включены расширения для библиотеки времени выполнения
wxDev-C++ является развитием проекта Dev-C++, но также содержит дизайнер форм для библиотеки разработки wxWidgets. WxDev-C++ включает все свойства Dev-C++, а также новейшую версию wxWidgets необходимую дизайнеру форм для среды быстрой разработки приложений (rapid application development — RAD).
Современные системы программирования на С++ состоят из нескольких составных частей. Это такие части, как сама среда программирования, язык, стандартная библиотека С-функций и различные библиотеки С-классов.
Как правило, чтобы выполнить программу на С++, необходимо пройти через 6 этапов: редактирование, препроцессорную (то есть предварительную) обработку, компиляцию, компоновку, загрузку и выполнение. Мы с Вами остановим свое внимание на системе С++ программирования Dev-C++.
Первый этап представляет создание и редактирование файла с исходным текстом программы. Он может выполняться с помощью простейшего редактора текстов программ. Программист набирает в этом редакторе свою С++ программу. При необходимости он снова обращается к ней и вносит с помощью этого редактора изменения в исходный текст программы. Далее программа запоминается на диске. Имена файлов C++ программ оканчиваются на "cpp". Однако, среда Dev-C++ имеет встроенный редактор, которым также можно пользоваться.
На втором этапе компилятор начинает препроцессорную обработку текста программы прежде чем ее компилировать. Компилятор. Что он делает? Он переводит программу в машинный код. То есть это объектный код программы.
Следует знать, что в системе С++ программирования перед началом этапа самой трансляции всегда выполняется программа предварительной обработки. Что она делает? Она отыскивает так называемые "директивы трансляции" или "директивы препроцессора", которые указывают, какие нужно выполнить преобразования перед трансляцией исходного текста программы. Обычно это включение других текстовых файлов в файл, который подлежит компиляции. Препроцессорная обработка инициируется компилятором перед тем, как программа будет преобразована в машинный код. Это позволяет забирать нужные программы-функции в текст компилируемой программы до начала процесса компоновки.
Третий этап это компиляция. Как правило, программы на языке С++ содержат ссылки на различные функции, которые определены вне самой программы. Например, в стандартных библиотеках или в личных библиотеках программистов. Объектный код, созданный компилятором содержит "дыры" на месте этих отсутствующих частей.
Четвертый этап - компоновка. Компоновщик связывает объектный код с кодами отсутствующих функций и создает таким образом исполняемый загрузочный модуль (без пропущенных "дыр").
Пятый этап - загрузка. Перед выполнением программа должна быть размещена в памяти. Это делается с помощью загрузчика, который забирает загрузочный модуль программы с диска и перемещает его в память.
Наконец шестой этап - это выполнение. Программа редко заработает с первой попытки. Каждый из названных этапов может заканчиваться ошибкой или неудачей из-за ошибки.
Тогда программист должен вернуться к редактированию исходного текста программы. Он должен внести необходимые изменения в текст программы, предварительно его хорошо проанализировав. Затем снова пройти через все этапы работы с исходным текстом программы до получения работающего без ошибок загрузочного модуля.
1.5. Запуск Dev-C++
Dev-C++ запускается из главного меню путем нажатия на кнопку "Пуск" и последовательного выбора следующих пунктов меню "Программы" "Bloodshed Dev-C++" "Dev-C++"
Рис. 4. Запуск Dev-C++
1.6. Элементы интерфейса IDE Dev-C++
После запуска отображается основное окно IDE, изображенное на рис.5.
Рис. 5. Общий вид окна Dev-C++
Окно среды разработки содержит строку заголовка, главного меню, панели инструментов. В рабочей области среды разработки содержится окно редактора для ввода программного кода, окно Обозревателя проектов.
Верхняя строка окна - главное меню, позволяющее обратиться к следующим подсистемам: меню файловой системы (Файл), меню редактирования (Правка), меню поиска и замещения (Поиск), меню управления проектом (Проект), меню управления компиляцией и исполнением программ (Выполнить), меню встроенного отладчика программ (Отладка), меню опций (Сервис), меню интеграции с системами контроля версий (CVS), меню управления окнами (Окно), меню помощи (Справка). Переход к главному меню осуществляется с помощью клавиши F10;