Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
5. Почему мы ненавидим отладку?
6. Что такое синтаксическая ошибка? Приведите пять примеров.
7. Что такое ошибка типа? Приведите пять примеров.
8. Что такое ошибка этапа редактирования связей? Приведите три примера.
9. Что такое логическая ошибка? Приведите три примера.
10. Перечислите четыре источника потенциальных ошибок, рассмотренных в тексте.
11. Как распознать разумные результаты? Какие методы используются для ответа на этот вопрос?
12. Сравните обработку ошибки во время выполнения программы в модуле, вызывающем функцию, и в самой функции.
13. Почему использование исключений
14. Как выполнить тестирование при последовательном вводе данных?
15. Опишите процесс генерирования и перехвата исключений.
16. Почему выражение
17. Дайте определение пред- и постусловия; приведите пример (который отличается от функции
18. В каких ситуациях можно не проверять предусловие?
19. В каких ситуациях можно не проверять постусловие?
20. Назовите этапы отладки.
21. Чем комментарии могут помочь при отладке?
22. Чем тестирование отличается от отладки?
Термины
Упражнения
1. Выполните задание из раздела ПОПРОБУЙТЕ, если вы его еще не сделали.
2. Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шкалу Кельвина. Этот код содержит много ошибок. Найдите ошибки, перечислите их и исправьте программу.
3. Самой низкой температурой является абсолютный нуль, т.е. –273,15°C, или 0 K. Даже после исправления приведенная выше программа выводит неверные результаты для температуры ниже абсолютного нуля. Поместите в функцию
4. Повторите упр. 3, но на этот раз ошибку обработайте в функции
5. Измените программу так, чтобы она преобразовывала шкалу Кельвина в шкалу Цельсия.
6. Напишите
7. Квадратное уравнение имеет вид
Для решения этого уравнения используется формула
Тем не менее есть одна проблема: если b2–4ac меньше нуля, возникнет ошибка. Напишите программу, вычисляющую решение квадратного уравнения. Напишите функцию, которая выводит на печать все корни квадратного уравнения при заданных коэффициентах a, b и c. Вызовите эту функцию из модуля
8. Напишите программу, считывающую ряд чисел и записывающую их в
“Пожалуйста, введите несколько чисел (для прекращения ввода нажмите клавишу <|>):”
“Сумма первых 3 чисел: 12 , 23 и 13 равна 48.”
9. Измените программу из упр. 8, чтобы она использовала тип
10. Напишите программу, вычисляющую начальный отрезок последовательности Фибоначчи, т.е. последовательности, начинающиеся с чисел 1 1 2 3 5 8 13 21 34. Каждое число в этой последовательности равно сумме двух предыдущих. Найдите последнее число Фибоначчи, которое можно записать в переменную типа
11. Реализуйте простую игру на угадывание “Быки и коровы”. Программа должна хранить вектор из четырех чисел в диапазоне от 0 до 9, а пользователь должен угадать загаданное число. Допустим, программа загадала число 1234, а пользователь назвал число 1359; программа должна ответить “1 бык и 1 корова”, поскольку пользователь угадал одну правильную цифру (1) на правильной позиции (бык) и одну правильную цифру (3) на неправильной позиции (корова). Угадывание продолжается, пока пользователь не получит четырех быков, т.е. не угадает четыре правильные цифры на четырех правильных позициях.