commit 0b2b80d487ab9143e7dd03f359ae25568c9afcd0
Author: laba34 (BuntovaMS) <buntova2006@gmail.com>
Date:   Wed May 28 09:53:08 2025 +0300

    code: заготовка программы

diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..5d16e53
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,112 @@
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int main()
+{
+    const size_t SCREEN_WIDTH = 80;
+    const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
+    size_t number_count;
+    cerr << "Enter number count: ";
+    cin >> number_count;
+    vector<double> numbers(number_count);
+
+
+    cerr << "Enter numbers: ";
+    for (size_t i=0; i<number_count; i++)
+    {
+        cin >> numbers[i];
+    }
+    size_t bin_count;
+    cerr << "Enter bin count: ";
+    cin >> bin_count;
+
+    vector<size_t> bins(bin_count);
+    double min = numbers[0];
+    double max = numbers[0];
+    for (double x : numbers)
+    {
+        if (x < min)
+        {
+            min = x;
+        }
+        else if (x > max)
+        {
+            max = x;
+        }
+    }
+
+    double bin_size=(max-min)/bin_count;
+    for(size_t i=0; i<number_count; i++)
+    {
+        bool found = false;
+        for(size_t j=0; (j<bin_count-1)&& !found; j++)
+        {
+            auto lo=min+j*bin_size;
+            auto hi=min+(j+1)*bin_size;
+            if((lo<=numbers[i])&&(numbers[i]<hi))
+            {
+                bins[j]++;
+                found=true;
+            }
+        }
+        if(!found)
+        {
+            bins[bin_count-1]++;
+        }
+    }
+
+    size_t Maxbins = 0;
+
+
+    for (size_t i = 0; i < bin_count; i++)
+    {
+        if (bins[i] > Maxbins)
+        {
+            Maxbins = bins[i];
+        }
+    }
+
+    const size_t MAX_HEIGHT = SCREEN_WIDTH - 3 - 1;
+
+    if (Maxbins <= MAX_HEIGHT)
+    {
+        for (size_t i = 0; i < bin_count; i++)
+        {
+            if (bins[i] < 10)
+            {
+                cout << " ";
+            }
+            cout << " " << bins[i] << "|";
+            for (size_t j = 0; j < bins[i]; j++)
+            {
+                cout << "*";
+            }
+            cout << endl;
+        }
+    }
+    else
+    {
+        for (size_t i = 0; i < bin_count; i++)
+        {
+            size_t height = static_cast <size_t>(MAX_HEIGHT * (static_cast<double>(bins[i]) / Maxbins));
+
+            if (bins[i] < 100)
+            {
+                cout << " ";
+            }
+            if (bins[i] < 10)
+            {
+                cout << " ";
+            }
+            cout << bins[i] << "|";
+            for (size_t j = 0; j < height; j++)
+            {
+                cout << "*";
+            }
+            cout << endl;
+        }
+    }
+    return 0;
+}