From a45df45b1bbcc0f64d5e9cc8c199f6fc685bb12e Mon Sep 17 00:00:00 2001 From: BezhenarAN Date: Tue, 23 Apr 2024 20:51:01 +0300 Subject: [PATCH] =?UTF-8?q?code:=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82=204.3(?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20=D1=84=D1=83=D0=BD?= =?UTF-8?q?=D0=BA=D1=86=D0=B8=D0=B8=20show=5Fhistogram=5Ftext)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- text.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/text.cpp b/text.cpp index 8173b5a..1ca3e67 100644 --- a/text.cpp +++ b/text.cpp @@ -1 +1,45 @@ +#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; + } + } +}