Шаг 10.
Microsoft Visual C++ 2010. Язык С/С++.
Задание текста консольного приложения (окончание)

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

    Теперь запускаем компилятор клавишей F7. Результат показан на рисунке 1.


Рис.1. Текст программы после подключения необходимой библиотеки и результат его компиляции

    Заметим, что Редактор текста программы рассматривает две косые черты // как начало комментария - набора символов, не участвующих в выполнении программы. Заметим также, что на самом деле не запускают отдельно компиляцию, а выполняют режим Build Solution (Построить решение). Такой режим мы использовали, когда первый раз запускали нашу программу.

    Как видно из рисунка, ошибка исчезла. Теперь можно запускать программу на выполнение. Для этого требуется либо выполнить команду Debug | Start Without Debugging (Отладка | Запуск без отладки), либо нажать клавиши Ctrl+F5, либо войти в каталог, в котором сформировался после построения ехе-модуль (результат работы программы-построителя проекта), и дважды щелкнуть мышью на значке exe-файла (рисунок 2).


Рис.2. Местоположение exe-файла

    Если программу выполнить, то в окне черного цвета (рисунок 3) высветится текст "Hello!". Если теперь нажать любую клавишу, то программа завершится и мы снова увидим ее текст. Сохраним новый проект, выполнив команду File | Save Аll (Файл | Сохранить все).


Рис.3. Результат выполнения консольной программы

    Поясним суть программы. Любая С/С++-программа строится из множества элементов, называемых функциями, - блоков программных кодов, выполняющих определенные действия. Имена этих блоков-кодов, построенных по специальным правилам, задает либо программист (если он сам их конструирует), либо имена уже заданы в поставленной со средой программирования библиотеке стандартных функций. Имя главной функции, с которой собственно и начинается выполнение приложения, задано в среде программирования. Это имя - main ().

    В процессе выполнения программы сама функция main () обменивается данными с другими функциями и пользуется их результатами. Обмен данными между функциями происходит через параметры функций, которые указываются в круглых скобках, расположенных вслед за именем функции. Функция может и не иметь параметров, но круглые скобки после имени всегда должны присутствовать - по пим коспилятор узнает, что перед ним функция, а не что-нибудь другое. В нашем примере в главной функции main () использованы две функции: это функция printf () и функция _getch ().

    Функция printf () в качестве аргумента имеет строку символов (символы, заключенные в двойные кавычки). Среди символов этой строки есть специальный символ, записанный так: \n. Это так называемый управляющий символ - один из первых 32-х символов таблицы кодировки символов ASCII.

    Управляющие символы не имеют экранного отображения и используются для управления процессами. В данном случае символ \n служит для установки указателя изображения символов на экране в первую позицию - в начало следующей строки. Если в программе убрать _getch (), то мы ничего не увидим в результате: задержки вывода не произойдет и консольное окно закроется самостоятельно. При наличии функции _getch () программа станет ждать, пока будет введен хотя бы один символ. Как только такой символ будет введен (например, символ 'а'), функция завершит свою работу, а вместе с ней завершит работу и вся программа, т. к. функция была последним исполняемым оператором (выполнение программы идет сверху вниз подряд, если не встречаются операторы, изменяющие последовательность исполнения).

    Функция _getch() - это функция ввода одного символа с клавиатуры: она ждет нажатия какой-либо клавиши. Благодаря этой функции результат выполнения программы задерживается на экране до тех пор, пока мы не нажмем любую клавишу.

    Начинающий программист должен знать о подобном приеме задержки "убегания" экрана. Следует отметить, что основное назначение функции _getch () - вводить символы с клавиатуры и передавать их символьным переменным, о которых речь пойдет чуть позже. Но мы воспользовались побочным свойством функции - ожиданием ввода с клавиатуры и тем самым не позволили программе завершиться прежде, чем посмотрели результат ее предыдущей работы.

    На следующем шаге мы рассмотрим циклическую программу.




Предыдущий шаг Содержание Следующий шаг