Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
13. Почему использование исключений лучше, чем возврат признака ошибки?
14. Как выполнить тестирование при последовательном вводе данных?
15. Опишите процесс генерирования и перехвата исключений.
16. Почему выражение
17. Дайте определение пред- и постусловия; приведите пример (который отличается от функции
18. В каких ситуациях можно не
19. В каких ситуациях можно не проверять постусловие?
20. Назовите этапы отладки.
21. Чем комментарии могут помочь при отладке?
22. Чем тестирование отличается от отладки?
Термины
Упражнения
1. Выполните задание из раздела ПОПРОБУЙТЕ, если вы его еще не сделали.
2. Следующая программа вводит температуру по шкале Цельсия и преобразует ее в шкалу Кельвина. Этот код содержит много ошибок. Найдите ошибки, перечислите их и исправьте программу.
3. Самой низкой температурой является абсолютный нуль, т.е. –273,15°C, или 0 K. Даже после исправления приведенная выше программа выводит неверные результаты для температуры ниже абсолютного нуля. Поместите в функцию
4. Повторите упр. 3, но на этот раз ошибку обработайте в функции
5. Измените программу так, чтобы она преобразовывала шкалу Кельвина в шкалу Цельсия.
6. Напишите программу, преобразовывающую шкалу Цельсия в шкалу Фаренгейта и наоборот (по формуле из раздела 4.3.3). Для того чтобы распознать разумные результаты, используйте оценку из раздела 5.8.
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) на неправильной позиции (корова). Угадывание продолжается, пока пользователь не получит четырех быков, т.е. не угадает четыре правильные цифры на четырех правильных позициях.
12. Эта программа довольно сложная, поскольку ответы трудно кодировать. Создайте вариант, в котором игрок может играть постоянно (без остановки и повторного запуска) и в каждой новой игре генерируются новые четыре цифры. Четыре случайные цифры можно сгенерировать с помощью четырех вызовов генератора случайных целых чисел
13. Введите пары (день недели, значение) из стандартного потока ввода. Например:
Запишите все значения для каждого дня недели в вектор