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

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, но нельзя применить к объекту типа int?

23. Чему равен индекс третьего элемента вектора?

24. Напишите цикл for, в котором выводятся все элементы вектора?

25. Что делает выражение vector alphabet(26);?

26. Что делает с вектором функция push_back?

27. Что делают функции-члены вектора begin, end и size?

28. Чем объясняется полезность и популярность типа vector?

29. Как упорядочить элементы вектора?

Термины

Упражнения

1. Выполните задание ПОПРОБУЙТЕ, если еще не сделали этого раньше.

2. Допустим, мы определяем медиану последовательности как “число, относительно которого ровно половина элементов меньше, а другая половина — больше”. Исправьте программу из раздела 4.6.2 так, чтобы она всегда выводила медиану. Подсказка: медиана не обязана быть элементом последовательности.

3. Считайте последовательности чисел типа double в вектор. Будем считать, что каждое значение представляет собой расстояние между двумя городами, расположенными на определенном маршруте. Вычислите и выведите на печать общее расстояние (сумму всех расстояний). Найдите и выведите на печать наименьшее и наибольшее расстояние между двумя соседними городами. Найдите и выведите на печать среднее расстояние между двумя соседними городами.

4. Напишите программу, угадывающую число. Пользователь должен задумать число от 1 до 100, а программа должна задавать вопросы, чтобы выяснить, какое число он задумал (например, “Задуманное число меньше 50”). Ваша программа должна уметь идентифицировать число после не более семи попыток. Подсказка: используйте операторы < и <=, а также конструкцию if-else.

5. Напишите программу, выполняющие самые простые функции калькулятора. Ваш калькулятор должен выполнять четыре основных арифметических операции — сложение, вычитание, умножение и деление. Программа должна предлагать пользователю ввести три аргумента: два значения типа double и символ операции. Если входные аргументы равны 35.6, 24.1 и '+', то программа должна вывести на экран строку "Сумма 35.6 и 24.1 равна 59.7". В главе 6 мы опишем более сложный калькулятор.

6. Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine". Введите  их  в  программу,  преобразующую  цифру  в  соответствующее строковое представление; например, при вводе цифры  7 на экран должна быть выведена строка seven. С помощью этой же программы, используя тот же самый цикл ввода, преобразуйте строковое представление цифры в числовое; например, при вводе строки seven на экран должна быть выведена цифра.

7. Модифицируйте мини-калькулятор, описанный в упр. 5, так, чтобы он принимал на вход цифры, записанные в числовом или строковом формате.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже