From 6cbf00d6543d0da7df0b4480594ef3cf5ab43512 Mon Sep 17 00:00:00 2001 From: YusufovYB Date: Sun, 23 Apr 2023 19:09:52 +0300 Subject: [PATCH] =?UTF-8?q?build:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20tex?= =?UTF-8?q?t.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- text.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 text.cpp diff --git a/text.cpp b/text.cpp new file mode 100644 index 0000000..c760fbf --- /dev/null +++ b/text.cpp @@ -0,0 +1,37 @@ +#include +#include "text.h" +#include "histogram.h" +#include +void show_histogram_text(size_t bin_count, const std::vector&numbers) { + + std::vector bins = make_histogram(numbers, bin_count); + size_t height; + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + int max_count = 0; + for (int i = 0; i < bin_count; i++) { + if (bins[i] > max_count) + max_count = bins[i]; + } + + for (int i = 0; i < bin_count; i++) { + if (bins[i] < 10) { + std::cout << " "; + } + if (bins[i] < 100) { + std::cout << " "; + } + std::cout << bins[i] << "|"; + if (max_count > 76) { + height = MAX_ASTERISK * (static_cast(bins[i]) / max_count); + for (int b = 0; b < height; b++) + std::cout << "*"; + } + else { + for (int b = 0; b < bins[i]; b++) { + std::cout << "*"; + } + } + std::cout << std::endl; + } + }