commit ea85f9f37ff14c3824e948569fd502d2599b7502
Author: KulakovaAY <KulakovaAY@mpei.ru>
Date:   Fri Apr 25 11:29:33 2025 +0300

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

diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..fcf08d7
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,102 @@
+#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 << "put elements with enter";
+   for (int 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 max_count = bins[0];
+   double widght = bins[0];
+   for (double x: bins){
+      if (x > widght) {
+            widght = x;
+        }
+   }
+    cout << "+";
+    for (int i=0; i<widght+5; i++){
+        cout << "-";
+    }
+    cout << "+" << endl;
+
+    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){
+                cout << "|" << "  " << bins[i] << "|";}
+        else if (bins[i]>=10 && bins[i]<100){
+             cout << "|" << " " << bins[i] << "|";
+        }
+        else if (bins[i]>=100 && bins[i]<1000){
+             cout << "|" << bins[i] << "|";
+        }
+
+        size_t height;
+        if (max_count <= MAX_ASTERISK){
+            height = bins[i];
+        }
+        else{
+            height = MAX_ASTERISK*(static_cast<double>(bins[i])/max_count);
+        }
+        for (int j = 0; j<height; j++){
+                cout << "*";
+            }
+            cout << " " << "|";
+            cout << endl;
+    }
+
+    cout << "+";
+    for (int i=0; i<widght+5; i++){
+        cout << "-";
+    }
+    cout << "+" << endl;
+
+
+   return 0;
+}