Краткие теоретические положения и задания




Цель работы

Изучить возможности по созданию простейших консольных программ на языке С++ в интегрированной среде разработки программ MS Visual Studio 2005/2008/2010; изучить основные принципы создания программ на языке С++.

Краткие теоретические положения и задания

Задание 1. Создание простейшей программы. Самыми простыми с точки зрения пользовательского интерфейса являются классические консольные приложения, то есть такие приложения, которые для ввода и вывода информации используют консоль - т.е. дисплей, работающий в текстовом режиме. Во времена, когда можно было работать в среде MS DOS, создание и отладка таких программ выполнялась с использованием таких IDE, как BC 3.1. Взаимодействие с консольным приложением в современных операционных системах происходит через консольное окно – окно для работы с командной строкой.

Рассмотрим простейшую С++-программу:

// Простейшая программа на С++

#include <iostream>

#include <conio.h>

 

using namespace std;

 

int main ()

{cout << "Hello All! \n";

getch();

return 0;

}

Эта программа, будучи откомпилирована и запущена на выполнение, должна выдавать приветствие на «черный экран». Рассмотрим процесс создания этой программы.

Для того, чтобы создать консольное приложение на языке С++, выберем в IDE-среде в меню File следующую последовательность опций: New -> Project -> -> Visual C++ -> Win32 Console Application. После этого определяем имя проекта в поле Name и местонахождение каталога с файлами проекта в поле Location. Отметим, что имя проекта является одновременно и именем каталога и подкаталога, которые будут созданы средой разработки. Например, если мы ввели имя проекта prog1 и местоположение D:\Progr\CPP, то файлы проекта и подкаталог Debug будут находиться в каталоге D:\Progr\CPP\prog1 (см. рис.).

После нажатия OK в окне New Project появится окно Win32 Application Wizard, в котором необходимо выбрать пункт Application Settings. В правой половине окна появится группа селективных кнопок Application Type для указания типа приложения и две группы кнопок-переключателей. Для консольного проекта необходимо выбрать селективную кнопку Console application и переключатель Empty Project, а затем нажать кнопку Finish.

В интегрированной среде разработки Visual Studio.NET проекты логически организуются в решения (solutions). После компиляции и линкования проекта мы получаем исполнимый модуль, называемый сборкой (например, модуль библиотеки DLL). Каждое решение состоит из одного или нескольких проектов. В свою очередь, каждый проект может состоять из любого количества исходных файлов, ссылок на внешние сборки (которые используются этим проектом) и прочих ресурсов, которые и образуют приложение.

После создания пустого проекта Prog1 в него необходимо добавить исходные файлы программы. Для этого выполним в окне менеджера проектов (Solution Explorer) выделим имя проекта (Prog1) или имя подраздела для исходных файлов (Source Files) и в контекстном меню выберем пункты Add | Add New Item. Далее выбираем Code | C++ File (*.cpp) и укажем имя файла Hello. (Отметим, что нажатие клавиши Del при выделенной пиктограмме файла приводит к удалению файла из проекта, при этом файл удаляется и из каталога, в котором располагаются файлы проекта.)

Далее в появившемся окне наберем указанный выше код Hello.cpp. У Вас должен получится примерно такой результат, как на следующем рисунке:

 

В среде Visual Studio.NET предусмотрена полная поддержка технологии IntelliSense, "подсказывающей" вам в то время, когда вы набираете код, и предлагающей закончить за вас начатую строку (вы выбираете один из предложенного набора вариантов и нажимаете Enter). Окна документации MSDN создаются при первом нажатии F1. По команде Help | Dynamic Help внутри среды Visual Studio.NET создается окно встроенной справки. Это позволяет не использовать Alt+Tab для переключения между окнами Visual Studio.NET и окнами документации MSDN. Содержимое окна встроенной справки динамически меняется в зависимости от того, какой именно элемент (окно, меню, ключевое слово в коде и т. п.) выделен в настоящий момент (см. рис. выше).

Теперь попробуем запустить программу на выполнение. Чтобы приложение заработало, его надо откомпилировать, то есть перевести написанное на языке С++ в машинные коды. В интегрированную среду Visual Studio встроен компилятор языка С++. Для компиляции и запуска новой программы требуется либо выбрать команду Debug|Start Debugging, либо нажать «горячую» клавишу F5. При выполнении этой команды интегрированная среда Visual Studio вначале запускает компилятор, а после его успешной работы запускает на выполнение нашу программу.

Если Вы правильно создали проект и верно ввели весь исходный код, то на экране откроется окно черного цвета с надписью Hello All!

 

Для завершения просмотра результатов нужно нажать любую клавишу на клавиатуры.

Если же интегрированная среда выдает сообщение об ошибках, то необходимо внимательно проверить текст программы, который Вы ввели в окне редактора, исправить ошибки и заново запустить программу на выполнение.

Объяснение созданной программы. Рассмотрим все строки нашей программы подробно. Первая строка, начинающаяся с двух косых линий – это комментарий. Комментарии помогают авторам и другим людям читать и понимать программу. Комментарий, приведенный в данной программе – однострочный. Бывают еще и многострочные комментарии. Они заключаются в символы /* */.

Вторая строка:

#include <iostream>

является директивой препроцессору, то есть сообщением препроцессору С++. Строки, начинающиеся с #, обрабатываются препроцессором перед компиляцией программы. Данная строка дает указание препроцессору включить в программу содержимое заголовочного файла потоков ввода вывода iostream.h. Этот файл используется для поддержки операций ввода-вывода, выполняемых в программе. Поток cout описан в файле iostream.h. Без этих деклараций фраза cout<<"Hello All!\n"; не имела бы смысла.

Следующая строка:

#include <conio.h>

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

using namespace std;

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

Остальная часть программы

int main() {... }

обозначает функцию с именем main(). В каждой программе на С++ должна быть функция с именем main(), и программа начинается с этой функции.

В С++ программы состоят из одной или нескольких функций (подпрограмм). Каждая функция имеет свое имя. Одна из них обязательно должна быть функцией main(). Именно этой функции передается управление после загрузки и инициализации программы. Таким образом, программа на С++ начинается с вызова функции main() и заканчивается возвратом из функции main().

Открытая фигурная скобка указывает на начало кода функции, а закрывающаяся – на конец кода данной функции.

Функция main () — это, конечно, частный случай функции вообще. Функции являются основными “строительными блоками” программы, или подпрограммами. Они, в свою очередь, строятся из операторов, составляющих тело функции. Каждый оператор оканчивается точкой с запятой (;).

Рассмотрим очередную строку программы:

cout << "Hello All! \n";

Это инструкция вывода данных на консоль. При ее выполнении на экране компьютера отобразится сообщение Hello All!. В этой инструкции используется оператор вывода << (Вообще, этот оператор означает поместить в поток). Он обеспечивает вывод выражения, стоящего с правой стороны на устройство, указанное с левой стороны. Слово cout представляет собой встроенный идентификатор (составленный из слов c onsole out put), который в большинстве случаев означает экран компьютера.

Сообщение "Hello All! \n" называется строкой. Под строкой в С++ понимается последовательность символов, заключенная в двойные кавычки. На экран выводятся все символы строки, кроме символов, следующих на обратным слэшем. Такие символы называются эскейп-символами (escape) и служат специальными «управляющими» символами. Так, например \n означает символ перехода на новую строку.

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

Следующая строка

getch();

представляет собой функцию, предоставляемую библиотекой conio и выполняющую операцию ожидания нажатия клавиши. Таким образом, файл соnio.h необходим нашей программе потому, что для ожидания нажатия клавиши мы применили низкоуровневую функцию ввода символа getch(). Символ, возвращаемый функцией, мы игнорировали.

В этой строкой завершается функция main():

return 0;

При ее выполнении функция main() возвращает вызывающему процессу, в роли которого выступает чаще всего операционная система, значение 0. Для большинства операционных систем нулевое значение, которое возвращает эта функция, свидетельствует о нормальном завершении программы. Другие значения могут означать завершение программы с какой-либо ошибкой. Слово return относится к числу ключевых (в Visual Studio IDE выделяется синим цветом). Таким образом, в конец каждой программы необходимо включать return 0;.

Задание 2. Изменение программы. Изменим нашу программу следующим образом:

То есть добавим одну строку для вывода «расширенного» приветствия. Сохраните программу, а затем нажмите F5 для запуска программы на выполнение. Проверьте работу программы.

Добавьте самостоятельно в программу инструкцию для вывода информации об авторах программы. Покажите результат преподавателю.

Задание 3. Создание программы с вычислениями. Разработаем программу, которая вычисляет сумму двух чисел. Создайте новый проект, как указано в задании 1. В файл с исходным кодом внесите следующий текст:

// Программа для сложения двух чисел

#include <iostream>

#include <conio.h>

using namespace std;

 

int main ()

{int x,y,z;

cout << "Enter a number: ";

cin >> x;

cout << "Enter a number: ";

cin >> y;

z=x+y;

cout << "z = " << z << "\n";

getch();

return 0;

}

Сохраните проект. Запустите его. После ввода каждого из чисел нажимайте Enter. Должен получится следующий результат:

Разберем основные моменты этой программы. Строка

int x,y,z;

объявляет три переменные целого типа с именами x, y, z.. Тип int – один из встроенных типов данных для хранения целых чисел (от англ. integer). Этот тип данных позволяет хранить целые числа со знаками. Кроме типа int в С++ имеются и другие встроенные типы данных. Например, тип float позволяет хранить вещественные числа (то есть дробные).

Объявление переменных должно заканчиваться точкой с запятой. В списке переменные должны перечисляться через запятую. Точно такие же три переменные могли бы быть объявлены и таким образом:

int x,y;

int z;

то есть на разных строках.

Другие примеры объявления переменных:

float a,b;

int i, count;

float bMax; int arrMaxIndex, k,asd;

Строка

cin >> x;

осуществляет ввод значения, введенного с клавиатуры в переменную х.

Аналогично с помощью инструкции cin >> y; осуществляется ввод переменной у.

Далее в этой программе вычисляется сумма и результат выводится на экран.

Для основных арифметический операций используются следующие знаки:

* умножение / деление

+ сложение - вычитание

% взятие по модулю (получение остатка от деления)

Операция взятия по модулю (%) применяется только к целочисленным операндам (например, int) и дает остаток от деления первого операнда на второй. Специальной операции деления нацело в С++ нет — для него применяется обычная операция деления (/). Если оба операнда ее являются целыми, то результат этой операции также будет целым, равным частному от деления с остатком первого операнда на второй.

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

volume = 4/3 * Pi * r*r*r;

Все операции в выражении правой части имеют одинаковый приоритет, и оценка выражения производится в последовательности слева направо. На первом шаге производится деление 4/3, но это будет делением нацело с результатом, равным 1, а дальше все идет как положено. Коэффициент в формуле, таким образом, получается равным 1.0 вместо ожидаемого 1.333...

Создайте самостоятельно следующие программы:

1. Дано действительное число х – сторона квадрата. Найти периметр и площадь квадрата.

2. Даны два целых числа a и b. Найти их сумму S, разность R, произведение P, частное N, остаток от деления R и среднее арифметическое M.

3. Дано натуральное число T, которое представляет длительность прошедшего времени в секундах. Вывести данное значение времени в виде:

НН часов ММ минут SS секунд

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: