Контрольные вопросы
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
, но нельзя применить к объекту типа int
?
23. Чему равен индекс третьего элемента вектора?
24. Напишите цикл for
, в котором выводятся все элементы вектора?
25. Что делает выражение vector
?
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, так, чтобы он принимал на вход цифры, записанные в числовом или строковом формате.