#include "text.h" #include #include 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; } } }