8. Что такое ошибка этапа редактирования связей? Приведите три примера.
9. Что такое логическая ошибка? Приведите три примера.
10. Перечислите четыре источника потенциальных ошибок, рассмотренных в тексте.
11. Как распознать разумные результаты? Какие методы используются для ответа на этот вопрос?
12. Сравните обработку ошибки во время выполнения программы в модуле, вызывающем функцию, и в самой функции.
13. Почему использование исключений лучше, чем возврат признака ошибки?
14. Как выполнить тестирование при последовательном вводе данных?
15. Опишите процесс генерирования и перехвата исключений.
16. Почему выражение v[v.size()]
относительно вектора v
порождает ошибку диапазона? Каким может быть результат такого вызова?
17. Дайте определение area()
из этой главы), предпочтительно использовать вычисления, требующие применения цикла.
18. В каких ситуациях можно
19. В каких ситуациях можно
20. Назовите этапы отладки.
21. Чем комментарии могут помочь при отладке?
22. Чем тестирование отличается от отладки?
Термины
Упражнения
1. Выполните задание из раздела ПОПРОБУЙТЕ, если вы его еще не сделали.
2. Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шкалу Кельвина. Этот код содержит много ошибок. Найдите ошибки, перечислите их и исправьте программу.
double ctok(double c) // преобразует шкалу Цельсия в шкалу Кельвина
{
int k = c + 273.15;
return int
}
int main()
{
double c = 0; // объявляем переменную для ввода
cin >> d; // вводим температуру в переменную ввода
double k = ctok("c"); // преобразуем температуру
Cout << k << endl; // выводим температуру на печать
}
3. Самой низкой температурой является абсолютный нуль, т.е. –273,15°C, или 0 K. Даже после исправления приведенная выше программа выводит неверные результаты для температуры ниже абсолютного нуля. Поместите в функцию main()
проверку, которая выводит сообщение об ошибке, если температура ниже –273,15°C.
4. Повторите упр. 3, но на этот раз ошибку обработайте в функции ctok()
.
5. Измените программу так, чтобы она преобразовывала шкалу Кельвина в шкалу Цельсия.
6. Напишите программу, преобразовывающую шкалу Цельсия в шкалу Фаренгейта и наоборот (по формуле из раздела 4.3.3). Для того чтобы распознать разумные результаты, используйте оценку из раздела 5.8.
7. Квадратное уравнение имеет вид
Для решения этого уравнения используется формула
Тем не менее есть одна проблема: если main()
и перехватите исключение, если возникнет ошибка. Если программа выявит, что уравнение не имеет действительных корней, она должна вывести на печать соответствующее сообщение. Как распознать разумные результаты? Можете ли вы проверить, что они являются правильными?
8. Напишите программу, считывающую ряд чисел и записывающую их в vector
. После того как пользователь введет все числа, он может попытаться определить, сколько чисел он ввел, чтобы найти их сумму. Выведите ответ
“Пожалуйста, введите несколько чисел (для прекращения ввода нажмите клавишу <|>):”
12 23 13 24 15
“Пожалуйста, введите количество чисел, которые хотите просуммировать:”
“Сумма первых 3 чисел: 12 , 23 и 13 равна 48.”
9. Измените программу из упр. 8, чтобы она использовала тип double
вместо int
. Кроме того, создайте вектор действительных чисел, содержащий
10. Напишите программу, вычисляющую начальный отрезок последовательности Фибоначчи, т.е. последовательности, начинающиеся с чисел 1 1 2 3 5 8 13 21 34. Каждое число в этой последовательности равно сумме двух предыдущих. Найдите последнее число Фибоначчи, которое можно записать в переменную типа int
.