Лабораторная работа №1
Знакомство со средой программирования
Microsoft Visual C++
1. Цель работы: Изучение меню и настроек интегрированной среды Visual C++.
ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
Среда программирования Microsoft Visual C++ входит в состав пакета Microsoft Visual Studio, а также поставляется в виде отдельного инструмента.
Visual Studio Express Editions – это серия инструментов семейства Visual Studio, представляющие собой упрощенную и облегченную среду разработки с усеченными возможностями профессиональных версий Visual Studio.
Например, Visual Studio 2008 Express Editions содержит следующие инструменты:
- Visual C# 2008 Express Edition;
- Visual Basic 2008 Express Edition;
- Visual C++ 2008 Express Edition;
- Visual Web Developer 2008 Express Edition — облегченный инструмент для создания динамически-обновляемых веб-сайтов и веб-сервисов.
Среда программирования Visual C++ состоит из следующих основных компонентов:
- редактор исходного текста;
- редактор ресурсов;
- компилятор кода;
- компилятор ресурсов – компилирует текстовые файлы с описанием ресурсов (RS) в двоичные RES – файлы;
- компоновщик – служит для формирования исполняемого Exe файла;
- отладчик – выполняет трассировку программы (пошаговое выполнение) с целью поиска ошибок в программе.
В связи с тем, что уровень сложности программного обеспечения очень высок, разработка приложений Windows с использованием только какого-либо языка программирования (например, языка C) значительно затрудняется. Программист должен затратить массу времени на решение стандартных задач по созданию многооконного интерфейса. Чтобы облегчить работу программиста практически все современные компиляторы языка C++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии OLE и взаимодействие с базами данных.
Библиотеки Visual C++:
1) Standard C++ Library;
2) библиотека классов Microsoft Foundation Class Library (MFC);
3) библиотека классов.Net Framework –;
4) Microsoft Active Template Library (ATL) – представляет собой средство построения элементов управления ActiveX.
5) Библиотека C Run-Time Library (CRT)
6) OLE DB Templates и др.
Одной из самых популярных библиотек C++ является библиотека классов MFC (Microsoft Foundation Class).
MFC – это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования под Windows.
Библиотека содержит многоуровневую иерархию классов, которые дают возможность создавать Windows-приложения на базе объектно-ориентированного подхода.
В Visual C++ могут быть встроены средства, позволяющие программисту облегчить разработку приложений. В первую очередь к ним относятся MFC AppWisard, ClassWizard и редактор ресурсов.
Мастер приложений (AppWizard) – генератор кода, создающий рабочую заготовку Windows-приложения с теми компонентами, именами классов, которые программист задает в его диалоговых окнах. Конечно, MFC AppWizard не всесилен. Прикладную часть приложения программисту придется разрабатывать самостоятельно. Исходный текст приложения, созданный MFC AppWizard, станет только основой, к которой нужно подключить остальное. Но работающий шаблон приложения – это уже половина всей работы. Исходные тексты приложений, автоматически полученных от MFC AppWizard, могут составлять сотни строк текста. Набор его вручную был бы очень утомителен.
Мастер классов (ClassWizard) – программа, реализованная как DLL (сокращ. от англ. Dynamic-Link Library – динамически подключаемая библиотека); избавляет программистов от монотонной работы, связанной с кодированием классов Visual С++ (с созданием новых классов, виртуальных функций и т.п.);
Консольные и оконные приложения
В среде программирования Visual C++ можно создавать консольные и оконные приложения.
Консоль — это монитор и клавиатура. Консольное приложение – приложение, не имеющее графического интерфейса, для которого устройством ввода является клавиатура, а устройством вывода — монитор. Такие программы работают в окнах, напоминающих окна сеансов DOS (рисунок 1).
Рисунок 1 – Консольное приложение
Консольные приложения удобны как иллюстрации при рассмотрении общих вопросов программирования, когда необходимо сосредоточиться на сути проблемы не задумываясь о пользовательском интерфейсе. На практике консольные приложения применяются для различного вида утилит, тестовых программ и т.д.
Оконное приложение (Windows-приложение) – приложение, в котором используется Windows-интерфейс GUI (Grphical User Interface – графический интерфейс пользователя).
Отправной точкой любой разработки в Visual C++ является диалоговое окно File→New→Project. Для создания консольного приложения следует выбрать CLR Console Application.
CLR, сокр. от Common Language Runtime – «общеязыковая среда выполнения» — это компонент пакета Microsoft.NET Framework, виртуальная машина, на которой исполняются все языки платформы.NET Framework.
Компиляция программы
Чтобы скомпилировать программу в интегрированной среде разработки (Integrated Development Environment — IDE) Visual C++ необходимо выбрать команду Start Debugging с панели инструментов, меню или клавишей F5 (рисунок 2).
Рисунок 2 – Компиляция программы
Продолжение рисунка 2
В результате работы С++-компилятора получается выполняемый объектный код. Для Windows-среды выполняемый файл будет иметь то же имя, что и исходный, но другое расширение, а именно расширение.ехе.
При попытке скомпилировать программу с ошибками компилятор выдаст сообщение о наличии синтаксических ошибок и укажет их количество (рисунок 3).
Рисунок 3 – Сообщение о наличии ошибок
Если компилятор «подозревает», но не «уверен» в ошибке (например, некорректность конструкции при видимой правильности с точки зрения синтаксиса), то он выдает предупреждение warning(s).
Оборудование
ПЭВМ IBM PC, SVGA монитор с разрешением не менее 800*600 пикселей, клавиатура, мышь, среда Visual Studio C++.
Задание на работу
Установить среду программирования Visual C++ и изучить ее интерфейс.
Порядок выполнения работы
1. Изучить теоретические положения
2. Запустить Visual C++ и создать консольное приложение.
3. Запустить программу на выполнение (сочетание клавиш Ctrl+F5)
4. Внести в программу ошибки
5. Скомпилировать программу и проанализировать результат
6. Оформить отчет
Содержание отчета
1. Номер и название лабораторной работы
2. Цель и задачи
3. Текст программы
4. Результаты и выводы по лабораторной работе
Лабораторная работа №2
Основы языка С/C++. Линейные программы
ЦЕЛЬ РАБОТЫ
Изучение меню и настройка интегрированной среды. Получение навыков по составлению и отладке простейших программ на языке Си. Изучение организации простейшего ввода-вывода на языке Си.
ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
Структура программы на языке Си
Общая структура программы на Си содержит следующие разделы:
# include <aa1> … # include <aaN> | Раздел подключения библиотек. aа1, aа2,… aaN - имена библиотек |
# define ип 1[1] значение1 … # define ип M значениеM | Раздел описания констант. ип1 ,…, ип M – константы. |
Тип1 ип 1,…,ип K; … ТипM1 ип 1,…,ип K1; | Раздел описания глобальных переменных |
Тип_ф-ции ИФ [2] (Тип1 ип 1,…,ип K); | Раздел объявления функций |
main() | |
{ | |
Тип1 ип 1,…,ип K; … ТипM ип 1,…,ип K1; | Раздел описания локальных переменных |
/* Тело функции main */ | |
return(); | |
} | |
Тип_ф-ции ИФ (Тип1 ип 1,…,ип K) | Раздел определения функций |
{ | |
return(); | |
} |
Переменные и типы языка Си
В языке Си все переменные должны быть описаны до их использования, обычно это делается в начале функции до первого выполняемого оператора.
Описание состоит из спецификатора типа и списка переменных, имеющих этот тип.
Тип int означает, что все переменные списка целые, т.е. числа, лежащие между -32768 и +32767.
Тип float предназначен для чисел с плавающей точкой, т.е. для чисел, которые могут иметь дробную часть и лежащие в диапазоне от 10е-38 до 10е+38.
Тип char - символ - один байт.
Тип double плавающее с двойной точностью (для 16-разрядных ПЭВМ 64 бита со знаком).
С типом можно использовать квалификаторы (модификаторы):
short (короткое),
long (длинное)
unsigned (без знака).
Функция printf()
Функция printf предназначена для вывода информации на экран. Формат ее прост и гибок:
printf("<форматная строка>",<аргумент>,<аргумент>,...);
Форматная строка - это строка, которая начинается и заканчивается двойными кавычками (" "). Целью функции printf является вывод этой строки на экран. До вывода аргументы, указанные в строке, преобразуются в соответствии со спецификаторами формата, указанными в форматной строке.
Для каждого спецификатора формата должен быть указан один и только один аргумент. Если аргумент принадлежит типу данных, который не соответствует указанному в спецификаторе формата, то Турбо-Си попытается проделать соответствующее преобразование. Аргументами могут быть переменные, константы, выражения, вызовы функций, т.к. они могут быть чем угодно, возвращающим значение, подходящее соответствующей спецификации формата.
Наиболее часто используются следующие спецификаторы форматов:
%d - целое
%u - беззнаковое целое
%p - значение указателя
%f - с плавающей точкой
%e - с плавающей точкой в экспоненциальной форме
%c - символ
%s - строка
%x или %X целое в шестнадцатеричном формате
Ширина поля может быть может быть указана цифрой, помещенной между знаком % и буквой. Например, десятичное поле шириной 4 символа будет указано так: %4d. Значение будет напечатано с выравниванием вправо (с ведущими нулями), так что общая длина поля будет равна 4 символам.
Если вам нужно напечатать знак процента, вставьте %%.
Пример. printf("значение переменной а =,%d\n");
Последовательность \n не является спецификатором формата. По традиции это называется esc-последовательностью и представляет собой символ перехода на новую строку, поэтому после печати строки маркер переходит в начало следующей строки.
Если нужно напечатать обратную косую черту - напечатайте две косых черты \\.
Функция scanf()
Основное назначение функции scanf - интерактивный ввод информации.
Формат функции scanf: scanf ("<форматная строка>",<адрес>,<адрес>,...);
Функция scanf использует многие из тех спецификаторов формата со знаком %, что и функция printf.
Однако, у этой функции есть важная отличительная черта: за форматной строкой следуют не значения, а адреса.
Например, следующая строка: scanf("%d%d",& a,& b) означает, что программа ожидает ввода двух десятичных целых значений, разделенных пробелом; первое значение будет присвоено переменной а, второе - переменной b.
Если вместо пробела вы хотите разделять свои переменные запятой, отредактируйте эту строку так: scanf("%d,%d",& a,& b). Такая строка позволит передавать в программу значения, разделяя их запятой.
Функция gets()
С помощью функции gets выполняется считывание символов из стандартного входного потока. Если входной поток прерывается символом перехода на новую строку ‘\n’, то этот символ отбрасывается и не попадает в строку s.
Формат функции gets:
gets(<аргумент – строка s>);