Программирование. Принципы и практика использования C++ Исправленное издание, стр. 37
покажет, что значения переменных не совпадают (что и требовалось).
ПОПРОБУЙТЕ
Выполните эту программу самостоятельно, записывая промежуточные результаты на лист бумаги. Для проверки используйте фразу “The cat cat jamped”. Даже опытные программисты используют этот прием для визуализации относительно неочевидных действий в небольших фрагментах кода.
ПОПРОБУЙТЕ
Запустите программу для выявления повторяющихся слов. Проверьте предложение “She she laughed He He because what he did did not look very very good good”. Сколько раз повторяются слова в этом предложении? Почему? Что значит слово в этой программе? А что значит повторяющееся слово? (Например, “She she” — это повтор или нет?).
3.6. Составные операторы присваивания
Операция инкрементации переменной (т.е. прибавление к ее значению единицы) настолько часто встречается в программах на языке С++, что для нее предусмотрена отдельная синтаксическая конструкция. Например, выражение
++counterозначает
counter = counter + 1Существует множество способов изменения текущего значения переменной. Например, мы можем захотеть прибавить
<b>7</b><b>9</b><b>2</b>a += 7; // означает a = a+7b –= 9; // означает b = b–9c *= 2; // означает c = c*2В целом для любого бинарного оператора
opera oper= ba= a oper b+=–=*=/=%=*=/=3.6.1. Пример: поиск повторяющихся слов
Вернемся к программе, выявляющей повторяющиеся соседние слова. Ее можно улучшить, если мы сможем определять место повторяющегося слова. Например, можно просто подсчитывать и выводить на экран количество повторяющихся слов.
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.7. Имена
Мы даем своим переменным имена, чтобы запоминать их и ссылаться на них в других частях программы. Какие сущности могут иметь имена в языке С++? В программе на языке С++ имя начинается с буквы и содержит только буквы, цифры и символ подчеркивания. Приведем несколько примеров.
xnumber_of_elementsFourier_transformz2PolygonПриведенные ниже слова не являются именами.
2x // имя должно начинаться с буквыtime$to$market // символ $ — не буква, не цифра и не подчеркиваниеStart menu // пробел — не буква, не цифра и не подчеркиваниеКогда мы говорим, что эти последовательности символов не являются именами, то имеем в виду, что компилятор языка С++ не считает их именами.
_fooИмена чувствительны к регистру; иначе говоря, буквы, набранные в нижнем и верхнем регистрах, отличаются друг от друга, так что
xX