- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
Шрифт:
Интервал:
Закладка:
if (i==0 || words[i–1]!=words[i]) // это новое слово?
Если удалить эту проверку из программы, то вывод изменится.
a
a
man
panama
plan
Мы не любим повторений, поэтому удаляем их с помощью данной проверки. Что она делает? Она выясняет, отличается ли предыдущее слово от вновь веденного (words[i-1]!=words[i]), и если отличается, то слово выводится на экран, а если нет, то не выводится. Очевидно, что у первого слова предшественника нет (i==0), поэтому сначала следует проверить первый вариант и объединить эти проверки с помощью оператора || (или).
if (i==0 || words[i–1]!=words[i]) // это новое слово?
Обратите внимание на то, что мы можем сравнивать строки. Для этого мы используем операторы != (не равно); == (равно), < (меньше), <= (меньше или равно), > (больше) и >= (больше или равно), которые можно применять и к строкам. Операторы, и тому подобные основаны на лексикографическом порядке, так что строка "Ape" предшествует строкам "Apple" и "Chimpanzee".
ПОПРОБУЙТЕ
Напишите программу, заглушающую нежелательные слова; иначе говоря, считайте слова из потока cin и выведите их в поток cout, заменив нежелательные слова словом BLEEP. Начните с одного нежелательного слова, например
string disliked = "Broccoli";
Когда отладите программу, добавьте еще несколько нежелательных слов.
4.7. Свойства языка
В программах для вычисления средней температуры и формирования словаря используются основные свойства языка, описанные в данной главе: итерация (инструкции for и while), выбор (инструкция if), простые арифметические инструкции (операторы ++ и +=), логические операторы и операторы сравнения (==, != и ||), переменные и функции (например, main(), sort() и size()). Кроме того, мы использовали возможности стандартной библиотеки, например vector (контейнер элементов), cout (поток вывода) и sort() (алгоритм).
Если подсчитать, то окажется, что мы рассмотрели довольно много свойств языка. Каждое свойство языка программирования описывает некую фундаментальную идею, и их можно комбинировать бессчетное количество раз, создавая все новые и новые полезные программы. Это принципиальный момент: компьютер — не устройство с фиксированными функциями. Наоборот, компьютер можно запрограммировать для любых вычислений и при наличии устройств, обеспечивающих его контакт с внешним миром, с ним можно делать все, что угодно.
Задание
Выполните задание шаг за шагом. Не следует торопиться и пропускать этапы. На каждом этапе проверьте программу, введя по крайней мере три пары значений — чем больше, тем лучше.
1. Напишите программу, содержащую цикл while, в котором считываются и выводятся на экран два целых числа. Для выхода из программы введите символ.
2. Измените программу так, чтобы она выводила на экран строку "Наименьшее из двух значений равно:", а затем — меньшее и большее значения.
3. Настройте программу так, чтобы она выводила только равные числа.
4. Измените программу так, чтобы она работала с числами типа double, а не int.
5. Измените программу так, чтобы она выводила числа, которые почти равны друг другу. При этом, если числа отличаются меньше, чем на 1.0/100, то сначала следует вывести меньшее число, а затем большее.
6. Теперь измените тело цикла так, чтобы он считывал только одно число типа double за один проход. Определите две переменные, чтобы определить, какое из них имеет меньшее значение, а какое — большее среди всех ранее введенных значений. За каждый проход цикла выводите на экран одно введенное число. Если оно окажется наименьшим среди ранее введенных, выведите на экран строку "Наименьшее среди ранее введенных". Если оно окажется наибольшим среди ранее введенных, выведите на экран строку "Наибольшее среди ранее введенных".
7. Добавьте к каждому введенному числу типа double единицу измерения; иначе говоря, введите значения, такие как 10cm, 2.5in, 5ft или 3.33m. Допустимыми являются четыре единицы измерения: cm, m, in, ft. Коэффициенты преобразования равны: 1m==100cm, 1in==2.54cm, 1ft==12in. Индикаторы единиц измерения введите в строку.
8. Если введена неправильная единица измерения, например yard, meter, km и gallons, то ее следует отклонить.
9. Вычислите сумму введенных значений (помимо наименьшего и наибольшего) и определите их количество. Когда цикл закончится, выведите на экран наименьшее значение, наибольшее значение, количество значений и их сумму. Обратите внимание на то, что накапливая сумму, вы должны выбрать единицу измерения (используйте метры).
10. Сохраните все введенные значения (преобразованные в метры) в векторе и выведите их на экран.
11. Перед тем как вывести значения из вектора, отсортируйте их в возрастающем порядке.
Контрольные вопросы
1. Что такое вычисления?
2. Что подразумевается под входными данными и результатами вычислений?
Приведите примеры.
3. Какие три требования должен иметь в виду программист при описании вычислений?
4. Для чего предназначены выражения?
5. В чем разница между инструкцией и выражением?
6. Что такое значение lvalue? Перечислите операторы, требующие наличия значения lvalue. Почему именно эти, а не другие операторы требуют наличия значения lvalue?
7. Что такое константное выражение?
8. Что такое литерал?
9. Что такое символическая константа и зачем она нужна?
10. Что такое “магическая” константа? Приведите примеры.
11. Назовите операторы, которые можно применять как к целым числам, так и к числам с плавающей точкой.
12. Какие операторы можно применять только к целым числам, но не к числам с плавающей точкой?
13. Какие операторы можно применять к строкам?
14. Когда оператор switch предпочтительнее оператора if?
15. Какие проблемы порождает использование оператора switch?
16. Объясните, каково предназначение каждой части заголовка цикла for и в каком порядке они выполняются?
17. Когда используется оператор for, а когда оператор while?
18. Как вывести числовой код символа?
19. Опишите смысл выражения char foo(int x) в определении функции.
20. Когда часть программы следует оформить в виде функции? Назовите причины.
21. Какие операции можно выполнить над объектом типа int, но нельзя применить к объекту типа string?
22. Какие операции можно выполнить над объектом типа string,

