|
Программирование >> Структурное программирование
b) if (X < 10) { if (y > 10) cout ***** << endl; } else { cout ##### endl; cout $$$$$ endl; } 2.27. (Другая проблема обособленного else) Модифицируйте следующие фрагменты кода, чтобы получить указанный вывод на экран. Используйте соответствующую технику отступов. Вы можете не делать каких-либо других изменений, кроме вставки фигурных скобок. Компилятор С++ игнорирует отступы в программе. Мы выбросили отступы из нижеследующих кодов, чтобы показать проблему более наглядно. Примечание: возможно, что модификация не требуется. if (у == 8) if (X == 5) cout @@@@@ endl; else cout ##### endl; cout $$$$$ endl; cout endl; a) При X = 5 и у = 8 получите следующий результат @@е@ $$$$$ b) При X = 5 и у = 8 получите следующий результат ееее c) При X = 5 и у = 8 получите следующий результат ееее 2.26. (Проблема обособленного else) Определите напечатанный выходной результат для каждого из нижеприведенных фрагментов кода при X = 9 и у = 11, и X = 11 и у = 9. Отметим, что компилятор С++ игнорирует отступы в программе. Отметим также, что компилятор С++ всегда ассоциирует else с предшествующим if, пока ему не скажут об ином скобками { }. Поскольку на первый взгляд программист может быть не уверен, какие if соответствуют каким else, это известно как проблема обособленного else . Мы выбросили отступы из нижеследующих кодов, чтобы показать проблему более наглядно. (Совет: примените соглашение об отступах, которое вы изучили.) а) if (X < 10) if (у > 10) d) При X = 5 и у = 7 получите следующий результат. Подсказка: три последние оператора вывода после else являются частью составного оператора. ##### $$$$$ £&&£& 2.28. Напишите программу, которая читает размер стороны квадрата и затем печатает звездочками и пробелами пустой квадрат заданного размера. Ваша программа должна работать для любых размеров, заданных в интервале 1-20. Например, если программа прочла размер 5, она должна напечатать: ***** * * ***** 2.29. Палиндром - число или текст, который одинаково читается слева направо и справа налево. Например, каждое из следующих пятизначных целых чисел является палиндромом: 12321, 55555, 45554 и 11611. Напишите программу, которая читает пятизначные целые и определяет, являются ли они палиндромами. (Подсказка: используйте операции деление и вычисления остатка, чтобы выделить из числа отдельные разряды.) 2.30. Введите целые данные, содержащие только нули и единицы (т.е. двоичные целые), и напечатайте их десятичный эквивалент. (Подсказка. Используйте операции деление и вычисления остатка, чтобы отрывать разряды двоичного числа по одному справа налево. В десятичной системе самая правая цифра имеет позиционное значение 1, следующая цифра слева имеет позиционное значение 10, затем 100, затем 1000 и т.д.; в двоичной системе чисел самая правая цифра имеет позиционное значение 1, следующая цифра слева имеет позиционное значение 2, затем 4, затем 8 и т.д. Таким образом, десятичное число 234 может быть представлено как 4*1 + 3*10 + 2*100. Десятичным эквивалентом двоичного 1101 является 1*1 + 0*2 + 1*4 + 1*8 или 1-1-0 + 4-1-8 или 13.) 2.31. Напишите программу, которая выводит на экран следующий шаблон шахматной доски: ******** ******** ******** ******** ******** ******** ******** ******** Ваша программа может использовать только три оператора вывода: один вида cout * ; один вида cout ; И один вида cout << endl; 2.32. Напишите программу, которая постоянно печатает степени целого числа 2, соответственно 2, 4, 8, 16, 32, 64 и т.д. Число повторений вашего цикла не должно быть определено (т.е. вы должны создать бесконечный цикл). Что случилось, когда вы выполнили эту программу? 2.33. Напишите программу, которая читает радиус (как значение типа float), рассчитывает и печатает диаметр, длину окружности и площадь круга. Для р используйте значение 3.14159. 2.34. Чем ошибочен приведенный ниже оператор? Напишите правильный оператор, который бы выполнял то, что по всей вероятности пытался сделать программист. cout ++(X + у) ; 2.35. Напишите программу, которая читает три ненулевых значения типа float, определяет и печатает, могут ли они представлять стороны треугольника. 2.36. Напишите программу, которая читает три ненулевых целых числа, определяет и печатает, могут ли они представлять стороны прямоугольного треугольника. 2.37. Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все передаваемые данные являются четырехзначными целыми числами. Компания попросила вас написать программу, которая должна шифровать эти данные так, чтобы они могли передаваться с большей безопасностью. Ваша программа должна читать целые четырехзначные числа и шифровать их следующим образом: заменять каждую цифру значением остатка от деления: (сумма этой цифры плюс 7) / 10. Затем менять местами первую цифру с третьей и вторую с четвертой. Затем печатать полученное зашифрованное целое. Напишите отдельную программу, которая вводила бы зашифрованные четырехзначные целые и дешифровала их, получая исходные числа. 2.38 Факториал неотрицательного целого п записывается как п! (произносится эн факториал ) и определяется следующим образом: л!=/гх(п-1)х(п-2)х...х1 (для значений п, больших или равных 1) п!=1 (для п=0). Например, 51=54321=20. a) Напишите программу, которая читает неотрицательное целое, рассчитывает и печатает его факториал. b) Напишите программу, которая приблизительно рассчитывает значение математической константы е, используя формулу:
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |