Шрифт:
Эту программу нельзя назвать очень полезной, поскольку она не способна указать, в каком именно месте стоит повторяющееся слово, но этого для нас пока достаточно. Рассмотрим эту программу строка за строкой.
Это строковая переменная, в которую мы сразу же считываем текущее (т.е. только что прочитанное) слово с помощью оператора
Напомним, что для типа
Итак, мы должны считать текущее слово из потока ввода и сравнить его с предыдущим словом (уже хранящимся в памяти). Если они окажутся одинаковыми, мы сообщим об этом.
Теперь мы должны повторить описанную операцию. Для этого копируем значение переменной
Эта инструкция учитывает все возможные ситуации, кроме начальной. Что делать с первым словом, у которого нет предыдущего, с которым его следовало бы сравнивать? Эта проблема решается с помощью следующего определения переменной
Строка состоит из одного символа (пробела, который вводится путем нажатия клавиши пробела). Оператор ввода
покажет, что значения переменных не совпадают (что и требовалось).
ПОПРОБУЙТЕ
Выполните эту программу самостоятельно, записывая промежуточные результаты на лист бумаги. Для проверки используйте фразу “The cat cat jamped”. Даже опытные программисты используют этот прием для визуализации относительно неочевидных действий в небольших фрагментах кода.
ПОПРОБУЙТЕ
Запустите программу для выявления повторяющихся слов. Проверьте предложение “She she laughed He He because what he did did not look very very good good”. Сколько раз повторяются слова в этом предложении? Почему? Что значит слово в этой программе? А что значит повторяющееся слово? (Например, “She she” — это повтор или нет?).
3.6. Составные операторы присваивания