commit 7f8f5a5e9b91bf36531ca03fc895804bc27b30e0
Author: ZelenkinaKM <ZelenkinaKM@mpei.ru>
Date:   Wed Apr 10 14:23:24 2024 +0300

    code: исходный код

diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..593ff7d
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,97 @@
+#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 elements: ";
+    for (int i=0; i<number_count;i++){
+        cin>>numbers[i];
+    }
+
+
+
+
+    //���������� ������
+    size_t bin_count;
+    cerr<<"Enter bins count: ";
+    cin>>bin_count;
+    vector<size_t>bins(bin_count);
+
+    //����������� ��������� ����� (max � min) � �������
+    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]++;
+        }
+    }
+
+
+    //������������ ���-�� ���������
+    int max_simb=0;
+    for (int i=0; i<bin_count;i++){
+        int c=0;
+        c=bins[i];
+        if (max_simb<c){
+            max_simb=c;
+        }
+    }
+
+       if (max_simb > MAX_ASTERISK){
+        vector<size_t> hights(bin_count);
+        for (size_t i = 0; i < bin_count; i++){
+            size_t height = MAX_ASTERISK * (static_cast<double>(bins[i]) / max_simb);
+            hights[i] = height;
+            printf("%3d|", bins[i]);
+            for (int j=0; j<(hights[i]); j++){
+                cout<<"*";
+            }
+            cout<<endl;
+        }
+
+       }
+        else{
+        for (int i=0; i<bin_count; i++){
+        printf("%3d|", bins[i]);
+            for (int j=0; j<bins[i]; j++){
+                cout<<"*";
+            }
+            cout<<endl;
+        }
+       }
+
+    return 0;
+}