![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
1.1. Структура программы на языке С++
Для того чтобы описать структуру программы, написанной на C++, рассмотрим простейшую программу, выводящую на экран строку Hello, world.
// Program1.cpp
#include <iostream.h>
void main()
{
cout << "\nHello, world\n";
}
В первой строке данной программы находится однострочный комментарий. В приведенном комментарии указано имя файла, в котором хранится исходный текст программы. В С++ комментарии могут быть заданы двумя способами. Для однострочных комментариев используют символы //, как в нашем примере. Для многострочных комментариев можно использовать символы /*, */, между которыми и должен находится сам текст комментария. В тексте комментария могут содержаться любые символы, а вся последовательность символов эквивалентна символу пропуска (например, символу пробела). Комментарии одного типа не могут быть вложенными, однако можно использовать символы // для того, чтобы закомментировать символы /*… */, а символами /*…*/можно закомментировать //.
Во второй строке программы помещена команда препроцессора (директива) #include, позволяющая подключить стандартные библиотеки функций используемого компилятора или оттранслированные модули, написанные самим программистом. Директива #include имеет два формата:
#include <имя_файла>
#include “имя_файла”.
В первом случае имя_файла определяет текстовый (заголовочный) файл, содержащий прототипы (описания) той или иной группы стандартных для данного компилятора функций. Например, в нашем случае директива #include <iostream.h> обеспечивает включение стандартных возможностей потока ввода и вывода, находящихся в файле iostream.h (мнемоника: “i” (input) – ввод, “o” (output) – вывод, stream – поток, “h” (head)- заголовок). Стандартным потоком вывода по умолчанию считается вывод на экран монитора, стандартный поток ввода обеспечивает чтение данных с клавиатуры. Приведем еще несколько примеров использования директивы #include. Если программист хочет использовать в своей программе такие стандартные функции как косинус (cos), синус (sin), степень числа (pow), то он должен использовать директиву #include <math.h>, для использования функции ожидания ввода любого символа с клавиатуры без отображения на экране, то есть функции задержки экрана (getch) – директиву #include <conio.h>, функцию конкатенации строк (strcat)- директиву #include <string.h>. Если в программе, например, используется функция cos (функция вычисления косинуса), но не указана директива #include <math.h>, то на этапе компиляции возникнет ошибка. Ниже приведено функциональное значение основных заголовочных файлов:
math.h –математические функции;
ctype.h – функции проверки и преобразования символов;
stdio.h – функции ввода вывода для стандартных файлов;
string.h, stdlib.h – функции для работы со строками;
alloc.h – функции для выделения и освобождения памяти;
conio.h – функции для работы с терминалом в текстовом режиме;
graphics.h – функции для работы с графикой.
Если имя_файла после директивы #include указано в кавычках, это означает, что используется не стандартный заголовочный файл, а файл, созданный самим программистом.
Третья строка программы является заголовком функции с именем main. Каждая программа должна содержать функцию с именем main, и работа программы начинается с выполнения этой функции. Перед именем main помещено служебное слово void – спецификатор типа, указывающий, что функция main в данной программе не возвращает никакого значения. Круглые скобки после main требуются в связи с синтаксисом заголовка любой функции и содержат список параметров. В нашем примере параметры не нужны и этот список пуст.
Тело любой функции в языке С++ – это заключенная в фигурные скобки последовательность описаний и операторов. Каждое описание и оператор заканчивается символом ‘;’. В данном примере в теле функции main нет явных описаний, а есть только один оператор
cout << "\nHello, world\n";
Имя cout, в соответствии с информацией, содержащейся в файле iostrem.h, является именем объекта, который обеспечивает вывод информации на экран монитора. (Поэтому, если строка #include <iosteam.h> будет отсутствовать в программе, то имя cout будет воспринято как неизвестное на этапе компиляции программы). Операция << (“поместить в”) пишет свой второй аргумент в первый (в данном случае, строковую константу "\nHello, world\n" в стандартный поток вывода cout). Строковая константа в языке С++ - это последовательность символов, заключенная в двойные кавычки. В строке символ обратной косой черты ‘\’, за которым следует другой символ, обозначает один специальный символ, в данном случае, ‘\n’ является символом новой строки. Таким образом, выводимые символы в данном случае состоят из символа перевода строки, символов Hello, world и еще одного символа перевода строки.
Отметим, что обратная косая черта ‘\’ позволяет не только записывать символы, не имеющего графического изображения и некоторые другие, но и выводить символьные константы, явно задавая их коды в восьмеричном или шестнадцатеричном виде. Последовательность литер, начинающаяся с символа ‘\’ называют esc-последовательностями (ескейп-последовательностями). Их допустимые значения приведены в таблице 1.
Отметим несколько особенностей использования стандартного потока вывода cout.
1. Строки, помещенные в два подряд идущих потока cout, при условии, что в них нет символа перевода строки, будут выведены на экран как одна строка, то есть операторы
cout << “Это”;
cout << “строка”;
обеспечивают вывод на экран текста: Это строка.
2. Несколько строк, последовательно помещенных в поток cout, при условии, что в них нет символа перевода строки, будут выведены на экран как одна, то есть оператор
cout << “С” “т” “рока”;
обеспечивает вывод на экран текста: Строка.
3. Длинную текстовую строку можно разместить подряд в нескольких строках программы, используя символ \. Например, оператор
cout << “Это \
строка”
обеспечит вывод строки: Это строка. (Обратите внимание, что пробелы из второй строки сохраняются).
Методы организации вывода числовой информации и ввода данных будут рассмотрены в следующей главе.
Таблица 1. Допустимые ESC-последовательности
Дата публикования: 2015-10-09; Прочитано: 138 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!