From c16182e546213a2cb17759e58d4c3b2b9aab6fc1 Mon Sep 17 00:00:00 2001
From: LyzhinAK <LyzhinAK@mpei.ru>
Date: Sun, 27 Apr 2025 16:03:56 +0300
Subject: [PATCH] =?UTF-8?q?build:=20=D1=84=D0=B0=D0=B9=D0=BB=20=D1=80?=
 =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=202?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 text.cpp | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 text.cpp

diff --git a/text.cpp b/text.cpp
new file mode 100644
index 0000000..fc64646
--- /dev/null
+++ b/text.cpp
@@ -0,0 +1,26 @@
+void
+show_histogram_text(std::vector <size_t> stolb, size_t bucket) {
+    const size_t SCREEN_WIDTH = 80;
+    const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
+    int maxlen = 0;
+
+    for (int j = 0; j < bucket; j++)
+    {
+        if (maxlen<stolb[j]) maxlen = stolb[j];
+    }
+
+    for (int j = 0; j < bucket; j++)
+    {
+        if (stolb[j] < 100) std::cout << " ";
+        if (stolb[j] < 10) std::cout << " ";
+        std::cout << stolb[j] << "|";
+        size_t height = stolb[j];
+        if (maxlen > MAX_ASTERISK)
+        {
+            if (maxlen != stolb[j]) height = MAX_ASTERISK * (static_cast <float> (stolb[j])/maxlen);
+            else if (maxlen == stolb[j]) height = MAX_ASTERISK;
+        }
+        for (int i = 0; i < height; i++) std::cout << "*";
+        std::cout << "\n";
+    }
+}