|
Программирование >> Структурное программирование
2.8. Возведение х в степень у #include <iostreain.h> main{) { int X, у, i, power; i = 1; power = 1; cin x; cin >> y; while (i <= y) { power *= x; ++i; cout power << endl; return 0; 2.9. a) Ошибка: нет закрываюпцей фигурной скобки тела while. Исправление: добавить закрываюш;ую фигурную скобку после оператора -Ы-с;. b) Ошибка: использована операция взять из потока вместо поместить в поток. Исправление: заменить на . c) Ошибка: точка с запятой после else ведет к логической ошибке. Второй оператор вывода будет выполняться в любом случае. Исправление: удалить точку с запятой после else. 2.10. Значение переменной z не изменяется в структуре while. Следовательно, если условие продолжения цикла (z >= О) истинно, появляется бесконечный цикл. Чтобы избежать бесконечного цикла, z должна уменьшаться так, чтобы в конечном счете окгшаться меньше 0. 2.11. а) Ошибочно. Метка default необязательна. Если нет необходимости производить какие-то действия по умолчанию, то метка default не нужна. b) Ошибочно. Оператор break используется для выхода из структуры switch. Если метка default последняя среди меток, то оператор break не требуется. c) Ошибочно. При использовании операции && оба выражения отношения должны быть истинными, чтобы было истинным все выражение в целом. d) Правильно. 2.12. а) sum = 0; for (count = 1; count <= 99; count += 2) sum += count; b) cout << setiosflags(ios::fixed I ios::showpoint ios::left) setprecision(1) setw(15) 333.546372 setprecision(2) setw(15) 333.546372 setprecision(3) setw(15) 333.546372 endl; В результате на выходе будет: 333.5 333.55 333.546 c) cout << setiosflags(ios::fixed / ios::showpoint) setprecision(2) setw(10) pow(2.5, 3) endl; Ha выходе будет: 15. 63 d) x=l; while (x <= 20) { cout x; if (X % 5 == 0) cout << endl; else cout \t; X++; e) for (X = 1; X <= 20; x++) { cout << x; if (X % 5 == 0) cout << endl; else cout \t; for (x = 1; X <= 20; x++) if (x % 5 == 0) cout << X << endl; else cout << X << \t; 2.13. a) Ошибка: точка с запятой после заголовка while приводит к бесконечному циклу. Исправление: заменить точку с запятой скобкой { или удалить ; и }. b) Ошибка: использование числа с плавающей запятой для управления структурой повторения for. Исправление: Использовать целое и осуществить соответствующие вычисления, чтобы получить желаемые значения for (у = 1; У != 10; у++) cout << (float) У / 10 << endl; c) Ошибка: отсутствие оператора break после операторов для первой метки case. Отметим, что это не обязательно является ошибкой, если программист хочет, чтобы операторы после case 2: выполнялись каждый раз, когда выполняются операторы после case 1:. d) Ошибка: в условии продолжения повторения структуры while использована неправильная операция отношения. Исправление: использовать <= вместо < или изменить 10 на 11. Упражнения Упражнения 2.14-2.38 соответствуют разделам 2.1-2.12. Упражнения 2.39-2.68 соответствуют разделам 2.13-2.21. 2.14. Найдите и исправьте ошибки в каждом из следуюш;их фрагментов (в каждом фрагменте может быть более, чем одна ошибка): a) if (age >= 65) ; cout << Возраст более или равен 65 << endl; else cout << Возраст менее 65 endl; b) int X = 1, total; while (X <= 10) { total += x; ++x; c) while (x <= 100) total += x; ++x; d) while (y > 0) { cout << у << endl; ++y; 2.15. Что напечатает следуюш;ая программа? #include <iostream.h) main() int y, X = 1, total = 0; while (x <= 10) { у = X * x; cout << у << endl; total += y; ++x; cout Total равна total endl; Для упражнений 2.16-2.19 выполните следующие шаги: 1. Прочтите постановку задачи. 2. Сформулируйте алгоритм, используя псевдокод и нисходящую пошаговую детализацию. 3. Напишите программу на С++. 4. Проверьте, отладьте и выполните программу на С++. 2.16. Из-за высокой цены бензина водители озабочены затратами топлива своих автомобилей. Один водитель взял в рейс несколько емкостей бензина, записывая пройденные мили и бензин, использованный из каждой емкости. Разработайте программу на С++, которая вводила бы пробег в милях и бензин, использованный из каждой емкости. Программа должна рассчитывать и выводить на экран число миль на галлон для каждой емкости. После ввода исходных данных программа должна рассчитать и напечатать значение среднего числа миль на галлон, полученное для всех емкостей. Пример вывода: Введите расход бензина (-1, если ввод закончен) 12.8 Введите пройденный путь: 287
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |