Форум » C/C++ для начинающих (C/C++ for beginners) » Вывод пирамиды на консоль. » Ответить

Вывод пирамиды на консоль.

Сыроежка: Очень часто для начинающих программистов, изучающих C++, встречается задание вывода "пирамиды", заполненный некоторым символом, например, символом *, на консоль. Обычно начинающие программисты для выполнения этого задания используют вложенные циклы, в которых сами же путаются. Так как C++ - это объектно-ориентированный язык, то было бы логично написать соответствующий класс пирамиды, который содержит функцию вывода себя на консоль. Вот как может выглядеть соответствующий класс. [pre2] #include <iostream> #include <iomanip> class Pyramid { private: size_t height; char filler; static const char DEFAULT_FILLER = '*'; static const char BLANK = ' '; public: Pyramid( size_t height, char filler = DEFAULT_FILLER ) : height( height ), filler( filler ) { } std::ostream & out( std::ostream &os = std::cout ) const { for ( size_t i = 0; i < height; i++ ) { os << std::setfill( BLANK ) << std::setw( height - i ) << filler << std::setfill( filler ) << std::setw( 2 * i + 1 ) << '\n'; } return os; } }; std::ostream & operator <<( std::ostream &os, const Pyramid &p ) { return p.out( os ); } int main() { while ( true ) { std::cout << "Enter the height of a pyramid (0 - exit): "; std::size_t height; if ( not ( std::cin >> height ) || ( height == 0 ) ) break; std::cout << '\n' << Pyramid( height ) << std::endl; } } [/pre2] Вывод данной демонстрационной программы может быть, к примеру, следующим [pre2] Enter the height of a pyramid (0 - exit): 10 * *** ***** ******* ********* *********** ************* *************** ***************** ******************* Enter the height of a pyramid (0 - exit): 9 * *** ***** ******* ********* *********** ************* *************** ***************** Enter the height of a pyramid (0 - exit): 8 * *** ***** ******* ********* *********** ************* *************** Enter the height of a pyramid (0 - exit): 7 * *** ***** ******* ********* *********** ************* Enter the height of a pyramid (0 - exit): 6 * *** ***** ******* ********* *********** Enter the height of a pyramid (0 - exit): 5 * *** ***** ******* ********* Enter the height of a pyramid (0 - exit): 4 * *** ***** ******* Enter the height of a pyramid (0 - exit): 3 * *** ***** Enter the height of a pyramid (0 - exit): 2 * *** Enter the height of a pyramid (0 - exit): 1 * Enter the height of a pyramid (0 - exit): 0 [/pre2]

Ответов - 0



полная версия страницы