commit 3e9c0860c50bb4a0f10bf2582f4d47b88cea6b1f
Author: LedovskojMM <LedovskoyMM@mpei.ru>
Date:   Sun Apr 23 20:12:50 2023 +0300

    Исходный код

diff --git a/lab1.cbp b/lab1.cbp
new file mode 100644
index 0000000..722660e
--- /dev/null
+++ b/lab1.cbp
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+	<FileVersion major="1" minor="6" />
+	<Project>
+		<Option title="lab1" />
+		<Option pch_mode="2" />
+		<Option compiler="gcc" />
+		<Build>
+			<Target title="Debug">
+				<Option output="bin/Debug/lab1" prefix_auto="1" extension_auto="1" />
+				<Option object_output="obj/Debug/" />
+				<Option type="1" />
+				<Option compiler="gcc" />
+				<Compiler>
+					<Add option="-g" />
+				</Compiler>
+			</Target>
+			<Target title="Release">
+				<Option output="bin/Release/lab1" prefix_auto="1" extension_auto="1" />
+				<Option object_output="obj/Release/" />
+				<Option type="1" />
+				<Option compiler="gcc" />
+				<Compiler>
+					<Add option="-O2" />
+				</Compiler>
+				<Linker>
+					<Add option="-s" />
+				</Linker>
+			</Target>
+		</Build>
+		<Compiler>
+			<Add option="-Wall" />
+			<Add option="-fexceptions" />
+		</Compiler>
+		<Unit filename="main.cpp" />
+		<Extensions />
+	</Project>
+</CodeBlocks_project_file>
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..b32d6ea
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,85 @@
+#include <iostream>
+#include <vector>
+using namespace std;
+
+int main()
+{
+    double n;
+    size_t number_count, bin_count;
+    cerr<<"Enter number cout:";
+    cin>>number_count;
+    vector<double> numbers(number_count);
+    for (int i =0;i<number_count;i++){
+
+        cin>>numbers[i];
+    }
+    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 maxbin=0;
+    for (size_t i=0; i<bin_count; i++){
+        if (maxbin< bins[i]){
+            maxbin=bins[i];
+        }
+
+    }
+    size_t k=0;
+    for (size_t i=0; i<bin_count; i++){
+        if (bins[i]<100){
+            cout<<" ";
+        }
+        if (bins[i]<10){
+            cout<<" ";
+        }
+        cout<<"   "<<bins[i]<<"|";
+        size_t count = bins[i];
+        if (maxbin>=76){
+            size_t height= 76*(static_cast<double>(count)/maxbin);
+            for (size_t j=0; j<bins[i]; j++){
+               if (j<height)
+                    cout<<"*";
+                else
+                    break;
+            }
+        }
+        else{
+            for (size_t j=0; j<bins[i]; j++){
+                cout<<"*";
+            }
+        }
+            cout<<endl;
+        if (k < bin_count - 1){
+            auto step = min + (k + 1) * bin_size;
+            cout.precision(3);
+            cout<<step;
+            k+=1;
+            cout<<endl;
+        }
+    }
+    return 0;
+}