Программирование >>  Инициализация объектов класса, структура 

1 2 3 4 [ 5 ] 6 7 8 ... 395


int main() {

readIn() ; sort(); compact(); print ();

return 0;

может выглядеть эта функция для нашего алгоритма:

Исполнение программы начинается с выполнения первой инструкции функции main() , в нашем случае - вызовом функции readIn() . Затем одна за другой исполняются все дальнейшие инструкции, и, выполнив последнюю инструкцию функции main() , программа заканчивает работу.

Функция состоит их четырех частей: типа возвращаемого значения, имени, списка параметров и тела функции. Первые три части составляют прототип функции.

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

В нашем примере тело функции main() содержит вызовы функций readIn() , sort() , compact() и print() . Последней выполняется инструкция

return 0;

Инструкция return обеспечивает механизм завершения работы функции. Если оператор return сопровождается некоторым значением (в данном примере 0), это значение становится возвращаемым значением функции. В нашем примере возвращаемое значение 0 говорит об успешном выполнении функции main(). (Стандарт С++ предусматривает, что функция main() возвращает 0 по умолчанию, если оператор return не использован явно.)

Третья инструкция является инструкцией вывода. cout - это выходной поток, направленный на терминал, << - оператор вывода. Эта инструкция выводит в cout - то есть на терминал - сначала символьную константу, заключенную в двойные кавычки ( значение переменной book count: ), затем значение, содержащееся в области памяти, отведенном под переменную book count. В результате выполнения данной инструкции мы получим на терминале сообщение:

I значение переменной book count: 11273

если значение book count равно 11273 в данной точке выполнения программ:.

Инструкции часто объединяются в именованн1е группы, называемые функциями. Так, группа инструкций, необходимых для чтения исходного файла, объединена в функцию readIn() . Аналогичным образом инструкции для выполнения оставшихся подзадач сгруппированы в функции sort() , compact() и print() .

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



void readIn() { cout << readIn()\n ; }

void sort() { cout << sort()\n ; } Для начала вполне подойдут заглушки:

void compact() { cout << compact() \n ;

void print() { cout << print ()\n ; }

Тип void используется, чтобы обозначить функцию, которая не возвращает никакого значения. Наши заглушки не производят никаких полезных действий, они только выводят на терминал сообщения о том, что были вызваны. Впоследствии мы заменим их на реальные функции, выполняющие нужную нам работу.

Пошаговый метод написания программ позволяет справляться с неизбежными ошибками. Попытаться заставить работать сразу всю программу - слишком сложное занятие.

Имя файла с текстом программы, или исходного файла, как правило, состоит из двух частей: собственно имени (например, bookstore) и расширения, записываемого после точки. Расширение, в соответствии с принятыми соглашениями, служит для определения назначения файла. Файл bookstore.h является заголовочным файлом для С или С++ программы. (Необходимо отметить, что стандартные заголовочные файлы С++ являются исключением из правила: у них нет расширения.)

Файл bookstore.c является исходным файлом для нашей С программы. В операционной системе UNIX, где строчные и прописные буквы в именах файлов различаются, расширение .C обозначает исходный текст С++ программы, и в файле bookstore.C располагается исходный текст С++.

В других операционных системах, в частности в DOS, где строчные и прописные буквы не различаются, разные реализации могут использовать разные соглашения для обозначения исходных файлов С++. Чаще всего употребляются расширения .cpp и .cxx: bookstore .cpp, bookstore.cxx.

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

Итак, создадим текст законченной С++ программы (используя любой текстовый редактор):

Давайте закончим нашу программу, чтобы ее можно было откомпилировать и выполнить. Во-нервых, мы должны определить функции readIn (), sort(), comipact() и print().



#include <iostream> using namespace std;

void readIn() { cout << readIn()\n ; }

void sort() { cout << sort()\n ; }

void compact() { cout << compact()\n ; } void print() { cout << print ()\n ; }

main()

readIn(); sort();

compact();

print();

return 0;

Здесь iostream - стандартный заголовочный файл библиотеки ввода/вывода (обратите внимание: у него нет расширения). Эта библиотека содержит информацию о потоке cout, используемом в нашей программе. #include является директивой препроцессора, заставляющей включить в нашу программу текст из заголовочного файла iostream. (Директивы препроцессора рассматриваются в разделе 1.3.)

Непосредственно за директивой препроцессора

#include <iostream> следует инструкция

using namespace std;

Эта инструкция называется директивой using. Имена, используемые в стандартной библиотеке С++ (такие, как cout), объявлены в пространстве имен std и невидимы в нашей программе до тех пор, пока мы явно не сделаем их видимыми, для чего и применяется данная директива. (Подробнее о пространстве имен говорится в разделах 2.7

и 8.5.)1

После того как исходный текст программы помещен в файл, скажем prog1.C, мы должны откомпилировать его. В UNIX для этого в1полняется следующая команда:

$ CC prog1.C

Здесь $ представляет собой приглашение командной строки. CC - команда вызова компилятора С++, принятая в большинстве UNIX-систем. Команды вызова компилятора могут быть разными в разных системах.

Одной из задач, выполняемых компилятором в процессе обработки исходного файла, является проверка правильности программы. Компилятор не может обнаружить

1 Во время написания этой книги не все компиляторы С++ поддерживали пространства имен. Если ваш компилятор таков, откажитесь от данной директивы. Большинство программ, приводимых нами, используют компиляторы, не поддерживающие пространство имен, поэтому директива using в них отсутствует.



1 2 3 4 [ 5 ] 6 7 8 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика