#include #include #include "text.h" const std::size_t SCREEN_WIDTH = 80; const std::size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; void show_histogram_text(const std::vector &bins){ std::size_t maxbin = bins[0]; for (std::size_t i=1; i < bins.size(); i++){ if (maxbin < bins[i]){ maxbin = bins[i]; } } if (maxbin <= MAX_ASTERISK){ for (size_t i=0; i < bins.size(); i++ ){ if (bins[i] < 10 ){ std::cout << " " << bins[i] << "|"; } else if (bins[i] < 100) { std::cout << " " << bins[i] << "|"; } else if (bins[i] < 1000) { std::cout << bins[i] << "|"; } for (size_t j=0; j < bins[i]; j++ ){ std::cout << "*"; } std::cout << std::endl; } } else { for (std::size_t i=0; i < bins.size(); i++){ std::size_t heightG= MAX_ASTERISK * (static_cast(bins[i]) / maxbin); if (bins[i] < 10 ){ std::cout << " " << bins[i] << "|"; } else if (bins[i] < 100) { std::cout << " " << bins[i] << "|"; } else if (bins[i] < 1000) { std::cout << bins[i] << "|"; } for (std::size_t j=0; j < heightG; j++ ){ std::cout << "*"; } std::cout << std::endl; } } }