Читаем Программирование полностью

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

++counter

означает

counter = counter + 1

Существует множество способов изменения текущего значения переменной. Например, мы можем захотеть прибавить 7, вычесть 9 или умножить на 2. Такие операции также непосредственно поддерживаются в языке С++. Рассмотрим пример.

a += 7; // означает a = a+7

b –= 9; // означает b = b–9

c *= 2; // означает c = c*2

В целом для любого бинарного оператора oper выражение a oper= b означает a= a oper b (см. раздел А.5). Благодаря этому правилу можно составить операторы +=, –=, *=, /= и %=. Эта компактная запись позволяет просто и ясно выражать свои идеи. Например, во многих приложениях операторы *= и /= означают масштабирование.

<p id="AutBody_Root032"><strong>3.6.1. Пример: поиск повторяющихся слов</strong></p>

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

int main()

{

  int number_of_words = 0;

  string previous = " ";  // не слово

  string current;

  while (cin >> current) {

    ++number_of_words;    // увеличиваем счетчик слов

    if (previous == current)

      cout << " количество слов " << number_of_words

      << " repeated: " << current << '\n';

    previous = current;

  }

}

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

++number_of_words;

Таким образом, первое слово имеет номер 1, второе — 2 и т.д. Эту операцию можно записать иначе:

number_of_words += 1;

или даже так:

number_of_words = number_of_words+1;

но выражение ++number_of_words короче и выражает идею инкрементации намного проще. 

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

<p id="AutBody_Root033"><strong>3.7. Имена</strong></p>

Мы даем своим переменным имена, чтобы запоминать их и ссылаться на них в других частях программы. Какие сущности могут иметь имена в языке С++? В программе на языке С++ имя начинается с буквы и содержит только буквы, цифры и символ подчеркивания. Приведем несколько примеров.

x

number_of_elements

Fourier_transform

z2

Polygon

Приведенные ниже слова не являются именами.

2x             // имя должно начинаться с буквы

time$to$market // символ $ — не буква, не цифра и не подчеркивание

Start menu     // пробел — не буква, не цифра и не подчеркивание

Когда мы говорим, что эти последовательности символов не являются именами, то имеем в виду, что компилятор языка С++ не считает их именами.

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

Имена чувствительны к регистру; иначе говоря, буквы, набранные в нижнем и верхнем регистрах, отличаются друг от друга, так что x и X — это разные имена. Приведем небольшую программу, в которой сделано по крайней мере четыре ошибки.

#include "std_lib_facilities.h"

int Main()

{

  STRING s = "Прощай, жестокий мир!";

  cOut << S << '\n';

}

Как правило, использование имен, отличающихся лишь регистром, например one и One, — плохая идея; это не может ввести компилятор в заблуждение, но легко сбивает с толку самого программиста.

ПОПРОБУЙТЕ

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

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

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

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

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

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

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

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

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