Лысаков. Основы программирования (1247269), страница 3
Текст из файла (страница 3)
4. Добавление файлов в проектВведите имя нового файла, нажмите Add, и вы увидите, что в спискефайлов проекта появился новый элемент. Файл автоматически откроетсяКак видно, проект Test не содержит никаких исходных текстов; дляв редакторе — можно начинать программировать (рис. 6).того чтобы начать программировать, нужно добавить в проект файлисходного кода. Откройте панель структуры проекта (Solution Explorer),1516www.phys.nsu.ruотладочной информации, но удобную для тестирования (например,предварительнонастроеннуюнатестовыеданные),третью —оптимизированную, готовую для демонстрации заказчику и т.
д.Очевидно, все эти версии программы должны строиться из одних и техже исходных файлов, иначе работа программиста превратится в кошмар.Возможность настроить различные варианты сборки программы даютконфигурации.Конфигурация — это набор настроек, которому дано имя. Конфигурация определяется в рабочем пространстве, но распространяет влияниеРис. 6. Вид рабочего проектатакже и на все проекты, входящие в пространство. На уровне рабочего1.4.3. Сборка проектапространства конфигурация определяет, во-первых, какие проектыПосле того как программист написал некоторое количество исходногонеобходимо собирать, а во-вторых, куда помещать основной выводкода, у него обычно возникает желание посмотреть, как этот код работает.(Primary Output) этих проектов. На уровне проекта можно для каждойДля этого нужно скомпилировать и скомпоновать программу.возможной конфигурации задать полный набор настроек.Компилятор и компоновщик запускаются из меню Build->Build SolutionПо умолчанию новое рабочее пространство имеет две конфигурации:(или нажатием соответствующей «горячей клавиши»).
Кроме того, можноDebug и Release. Настройки этих конфигураций соответствуют названиям:скомпилировать только тот файл, который вы в данный моментDebug предназначена для сборки отладочной версии, Release — длязапуститьрабочей. Соответственно отладочная версия содержит полную отладочнуюисполнение кода не получится: для этого необходимо скомпилироватьинформацию, код не оптимизируется компилятором, объявлена директиваи скомпоновать весь проект.препроцессораредактируете(Build->Compile),однаковэтомслучаеЕсли всё получилось (в коде нет ошибок), то результатом работыкомпилятора и компоновщика будет исполняемый файл (с расширениемexe), который можно будет запустить. Запускать можно прямо из средыразработки: выбор Debug->Start Without Debugging запускает программув виде самостоятельного процесса, Debug->Start Debugging запускает_DEBUG.Врабочейверсиивсёнаоборот:кодоптимизируется, отладочная информация не генерируется, объявленадиректива препроцессора _RELEASE.1.4.5.
Файловая структура рабочего пространстваКогда вы создаёте новый проект с именем, например, sample, VisualStudio создаёт следующие директории и файлы:программу в режиме отладки.1.4.4. Конфигурации проектов• [sample] — корневая директория рабочего пространства. Всё, чтоотносится к рабочему пространству и вложенным в него проектам,В реальной жизни разработчику часто бывает необходимо иметьсоздаётся и содержится в этой директории, если ничего не менятьнесколько вариантов одной и той же программы: одну — с отладочнойв настройках. Все директории и файлы, перечисленные ниже, создаются винформацией и без оптимизации, для рабочей отладки, другую — безкорневой директории;1718www.phys.nsu.ru• [sample \ debug] — директория, в которой создаются результатыВсе файлы с исходными текстами (*.c, *.cpp) и заголовочные файлысборки проектов, входящих в рабочее пространство sample, при выборе(*.h) среда разработки тоже предлагает создавать в корневой директорииконфигурации debug.
Как правило, это основной вывод (Primary Output)соответствующего проекта.проектов — исполняемые файлы (*.exe), базы данных для отладки (*.pdb)и некоторые другие файлы. После того как вы закрыли среду разработки,Использование справочной системы1.5.можно удалить эту директорию со всем содержимым, потому что онаСправочная система — без преувеличения главный помощник програм-будет создана заново при следующей сборке проектов, входящих в рабочеемиста. В ней описаны стандартные функции, классы, интерфейсыпространство;и библиотеки.
Кроме того, справочная система содержит весьма подробное• [sample \ release] — аналогично [sample \ debug], но дляописание языка программирования, включающее сведения о синтаксисе,типах данных, приоритетах операций и т. п.конфигурации release;• Sample \ sample.sln — рабочее пространство sample;Справку можно вызвать двумя способами: через меню Help->Index или• Sample \ sample.ncb, sample \ sample.suo — служебные файлы Visualнепосредственно из текстового редактора: по любому слову в программе,Studio, относящиеся к рабочему пространству sample.
Эти два файлабудь то идентификатор стандартной функции, ключевое слово языка илигенерируются средой разработки, и их тоже можно удалить, еслидиректива препроцессора, установив курсор в середине слова и нажав F1.свободного места на диске остро не хватает, закрыв предварительносоответствующее рабочее пространство;Для ускорения загрузки рекомендуется выбирать локальные файлысправки.• [sample \ sample] — корневая директория проекта sample, входящегоОбычно справочная система предлагает несколько статей. Многиев рабочее пространство sample. Все файлы, относящиеся к проекту sample,стандартные функции имеют различные реализации для разных платформ,по умолчанию создаются в этой директории;поэтому, если в настройках не указаны предпочтения, вам предложатo [sample \ sample\debug] — директория, в которой создаются всепромежуточные файлы при сборке проекта sample в конфигурации debug.После того как вы закрыли среду разработки, можно удалить этудиректорию со всем содержимым, потому что она будет создана занововыбор доступных вариантов.
Для функций стандартной библиотеки Cобычно следует выбирать вариант C Runtime Library.Вбольшинствестатей,описывающихприводится пример использования (обычно в конце статьи).при следующей сборке проекта;o [sample \ sample \ release] — аналогично предыдущему, только дляконфигурации release;o [Sample \ sample \ sample.vcproj] — файл проекта sample, входящего в рабочее пространство sample.19стандартные20функции,www.phys.nsu.ru2. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКОВ С И С++Данная глава посвящена описанию основных принципов построенияпрограмм, включая не только функциональное описание программнойреализации, но и стиль написания.2.1.•std:: – префикс, означающий, что используется реализация изстандартной библиотеки.•<< – в данном контексте, это операция берущая данные, указанныеслева, преобразующая их в текстовый вид, и отсылающая, в поток,указанный слева.Потоки ввода / выводаПоток — это абстракция источника (поток ввода) или назначения(поток вывода) при последовательной передаче данных.
Посредствомразличных реализаций потоков программа может взаимодействоватьс файламинажёсткомдиске,клавиатурой,экраном,внешнимиДля упрощения операций ввода-вывода существует возможностьвключить в программу библиотеку iostream и сразу указать, что всекоманды будут по умолчанию использоваться из стандартной библиотеки.Для этого необходимо написать следующим образом:устройствами и даже памятью, используя унифицированный набор#include <iostream>операций.using namespace std;Для того чтобы пользоваться стандартными потоками, необходимоуказать библиотеку, в которой находится реализация этих потоков.
Такаябиблиотека имеет название iostream (сокрашщение от InputOutputStream –В этом случае, префикс std:: можно опустить, и команда вывода строкна экран будет выглядеть следующим образом:потоки ввода-вывода) и включается в текст программы следующимcout << "Hello"образом:#include <iostream>Здесь #include – служебная команда, означающая, что необходимо ктексту описываемой ниже программы включить указанную в угловых2.2.ПеременныеПеременная — это именованная область памяти, в которую могутбыть записаны различные значения.
Также из этой области памяти можетскобках библиотеку.быть извлечено значение переменной, используя ее имя. В каждый моментПосле включения таким образом библиотеки, пользователь можетиспользовать стандартный ввод-вывод следующим образом:std::cout << "Hello"•cout – поток вывода. Обычно поток cout связан с экраном, и все чтовремени переменная может иметь только одно значение.Значения, которые может хранить переменная, определяется ее типом.В простейшем виде переменную можно определять следующимобразом:Тип список_имен_переменныхпередается в поток печатается в текстовом виде на экране консоли.2122www.phys.nsu.ruТип переменной определяет значения, которые может приниматьпеременная.2.3.Структура программыКлассической первой программой, которую обычно пишут, являетсяТипы могут быть следующими:вывод на экран «Hello World!».
Ниже приведен код программы, котораяchar — целое значение, 8 бит (диапазон от –128 до 127);это делает.int— целое значение, обычно 4 байта, зависит от платформы;float — вещественные числа;double — вещественные числа удвоенной точности.Каждый из целочисленных типов может быть определен как знаковыйsigned либо как беззнаковый unsigned (по умолчанию signed).Пример определения переменных:char my_symbolint val, val2double ResultПосле того как переменная создана, ей можно присваивать значения.Это можно сделать как при определении переменной, так и после этого:Тип имя_переменной = начальное_значение;имя_переменной = начальное_значение;Например:int val = 5val = 5;123456#include <iostream>using namespace std;void main(){cout << "Hello World!";7 }Разберем подробно структуру программы.В строках 1 и 2 происходит подключение стандартной библиотеки дляиспользования потоками ввода-выводаСтрочка 3 остается пустой для большей наглядности программыВ строке 4 описывается функция void main().
Подробное изучениефункций происходи ниже, поэтому пока такое описание необходимопринять за аксиому.В 5 строке открывается фигурная скобка, которая обозначает началофункции main, а в 7 строке фигурная скобка закрывается, обозначая чтоНеобходимо помнить, что задавать значения переменной можно толькопосле того, как эта переменная создана. А если значение явно нефункция закончена. Внутри этих скобок собственно и происходитописание функции.определено при создании, то по умолчанию оно ничему не присваивается.Функция main является главной функцией программы, так как толькоТо есть попытка вывести значения неинициализированной переменной наона исполняется в программе.