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

Грамматическое определение инструкций языка C++ приведено ниже (opt означает “необязательный”).

инструкция:

  объявление

  { список_инструкции opt }

 try { список_инструкции opt } список_обработчиков

  выражение opt;

  инструкция_выбора

  инструкция_итерации

  инструкция_с_метками

  управляющая_инструкция

инструкция_выбора:

  if (условие) инструкция

  if (условие) инструкция else инструкция

  switch (условие) инструкция

инструкция_итерации:

  while (условие) инструкция

  do инструкция while (выражение);

  for (инструкция_инициализации_for условие opt; выражение opt) инструкция

инструкция_с_метками:

  case константное_выражение: инструкция

  default: инструкция

  identifier: инструкция

управляющая_инструкция:

  break; 

  continue;

  return выражение opt;

  goto идентификатор;

список_инструкции:

  инструкция список_инструкции opt

условие:

  выражение

  спецификатор_типа объявляемый_объект = выражение

инструкция_инициализации_for:

  выражение opt;

  спецификатор_типа объявляемый_объект = выражение;

список_обработчиков:

  catch (объявление_исключения) { список_инструкции opt }

  список_обработчиков список_обработчиков opt

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

• Итерация (for и while); см. раздел 4.4.2.

• Ветвление (if, switch, case и break); см. раздел 4.4.1. Инструкция break прекращает выполнение ближайшей вложенной инструкции switch, while, do или for. Иначе говоря, следующей будет выполнена инструкция, следующая за последней в теле одной из перечисленных выше инструкций.

• Выражения; см. разделы A.5 и 4.3.

• Объявления; см. разделы A.6 и 8.2.

• Исключения (try и catch); см. разделы 5.6 и 19.4.

Рассмотрим пример, созданный просто для того, чтобы продемонстрировать разнообразие инструкций (какую задачу они решают?).

int* f(int p[],int n)

{

  if (p==0) throw Bad_p(n);

  vector v;

  int x;

  while (cin>>x) {

    if (x==terminator) break; // выход из цикла while

    v.push_back(x);

  }

  for (int i = 0; i

    if (v[i]==*p)

      return p;

    else

      ++p;

  }

  return 0;

}

<p id="AutBody_Root598"><strong>A.7. Объявления</strong></p>

Объявление (declaration) состоит из трех частей:

• имя объявляемой сущности;

• тип объявляемой сущности;

• начальное значение объявляемой сущности (во многих случаях необязательное).

Мы можем объявлять следующие сущности:

• объекты встроенных типов и типов, определенных пользователем (раздел A.8);

• типы, определенные пользователем (классы и перечисления) (разделы A.10–А.11, глава 9);

• шаблоны (шаблонные классы и функции) (раздел A.13);

• альтернативные имена (раздел A.16);

• пространства имен (разделы A.15 и 8.7);

• функции (включая функции-члены и операторы) (раздел A.9, глава 8);

• перечисления (значения перечислений) (разделы A.11 и 9.5);

• макросы (разделы A.17.2 и 27.8).

<p id="AutBody_Root599"><strong>A.7.1. Определения</strong></p>

Определение с инициализацией, резервирующее область памяти или как-то иначе поставляющую компилятору всю информацию, необходимую для использования имени в программе, называется определением (definition). Каждый тип, объект и функция в программе должны иметь только одно определение. Рассмотрим примеры.

double f();               // объявление

double f() { /* ... */ }; // также определение

extern const int x;       // объявление

int y;                    // также определение

int z = 10;               // определение с явной инициализацией

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

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

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

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

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

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

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

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

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