Читаем Программирование. Принципы и практика использования C++ Исправленное издание полностью

  if (t1 == clock_t(–1)) { // clock_t(–1) означает "clock()

                           // не работает "

    cerr << "Извините, таймер не работает \n";

    exit(1);

  }

  for (int i = 0; i

  clock_t t2 = clock(); // конец отсчета

  if (t2 == clock_t(–1)) {

    cerr << "Извините, таймер переполнен \n";

    exit(2);

  }

  cout << "do_something() " << n << " работала "

       << double(t2–t1)/CLOCKS_PER_SEC << " секунд "

       << " (точность измерения: " << CLOCKS_PER_SEC

       << " секунд )\n";

}

Явное преобразование double(t2–t1) перед делением является необходимым, потому что число clock_t может быть целым. Для значений t1 и t2, возвращаемых функцией clock(), величина double(t2–t1)/CLOCKS_PER_SEC является наилучшим системным приближением времени в секундах, прошедшего между двумя вызовами.

Если функция clock() не поддерживается процессором или временной интервал слишком длинный, то функция clock() возвращает значение clock_t(–1).

<p id="AutBody_Root693"><strong>Б.10.6. Другие функции</strong></p>

В заголовке определены следующие функции.

Функция для сравнения (cmp), используемая функциями qsort() и bsearch(), должна иметь следующий тип:

int (*cmp)(const void* p,const void* q);

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

• оно является отрицательным, если *p меньше, чем *q;

• оно равно нулю, если *p равно *q;

• оно больше нуля, если *p больше, чем *q.

Подчеркнем, что функции exit() и abort() не вызывают деструкторы. Если хотите вызывать деструкторы для статических объектов и объектов, созданных автоматически (см. раздел A.4.2), генерируйте исключение.

Более полную информацию о функциях из стандартной библиотеки можно найти в книге K&R или другом авторитетном справочнике по языку С++.

<p id="AutBody_Root694"><strong>Б.11. Другие библиотеки</strong></p>

Исследуя возможности стандартной библиотеки, вы, конечно, не найдете чего-то, что могло бы быть полезным для вас. По сравнению с задачами, стоящими перед программистами, и огромным количеством доступных библиотек, стандартная библиотека языка C++ является довольно скромной. Существует много библиотек, предназначенных для решения следующих задач.

• Графические пользовательские интерфейсы.

• Сложные математические вычисления.

• Доступ к базам данных.

• Работа в сети.

• XML.

• Дата и время.

• Система манипуляции файлами.

• Трехмерная графика.

• Анимация.

• Прочее

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

<p id="AutBody_Root695"><strong>Приложение В</strong></p><p><strong>Начало работы со средой разработки Visual Studio</strong></p>

“Вселенная не только страннее,

чем мы себе представляем,

но и страннее, чем мы можем представить”.

Дж. Б.С. Холдейн (J.B.S. Haldane)

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

<p id="AutBody_Root696"><strong>В.1. Запуск программы</strong></p>

Для того чтобы запустить программу, вам необходимо как-то собрать файлы вместе (чтобы, если ссылаются друг на друга — например, исходный файл на заголовочный — они могли найти друг друга). Затем необходимо вызвать компилятор и редактор связей (если не потребуется сделать что-то еще, он позволит по крайней мере связать программу со стандартной библиотекой языка С++) и запустить (выполнить) программу. Существует несколько способов решения это задачи, причем в разных операционных системах (например, Windows и Linux) приняты разные соглашения и предусмотрены разные наборы инструментов. Тем не менее, все примеры, приведенные в книге, можно выполнить во всех основных системах, используя один из распространенных наборов инструментов. В этом приложении показано, как это сделать в одной из наиболее широко распространенных систем — Microsoft Visual Studio.

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных