diff --git a/lab01.cbp b/lab01.cbp
new file mode 100644
index 0000000..d541ad7
--- /dev/null
+++ b/lab01.cbp
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..7319326
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,110 @@
+#include
+#include
+
+using namespace std;
+
+int main()
+{
+ size_t number_count,bin_count;
+ const size_t SCREEN_WIDTH = 80;
+ const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
+
+ cerr << "Enter number count: ";
+ cin >> number_count;
+
+
+
+ vector numbers(number_count);
+ for (int i = 0; i < number_count; i++)
+ {
+ cerr << "Number[" << i << "]=";
+ cin >> numbers[i];
+ }
+ cerr << "Enter bin count: ";
+ cin >> bin_count;
+
+ vector 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_bin_count = bins[0];
+ for(size_t i = 0; i < bin_count; i++)
+ {
+ if(bins[i] > max_bin_count)
+ {
+ max_bin_count = bins[i];
+ }
+ }
+
+ for(size_t i = 0; i < bin_count; i++)
+ {
+ if(bins[i]<10)
+ {
+ cout<< " " << bins[i] << "|";
+ }
+ else
+ {
+ if(bins[i]<100)
+ {
+ cout<< " " << bins[i] << "|";
+ }
+ else
+ {
+ if(bins[i]<1000)
+ {
+ cout<< bins[i] << "|";
+ }
+
+ }
+ }
+
+ size_t height;
+ if(max_bin_count <= MAX_ASTERISK)
+ {
+ height = bins[i];
+ }
+ else
+ {
+ height = MAX_ASTERISK * (static_cast(bins[i]) / max_bin_count);
+ }
+ for(size_t j = 0; j < height; j ++)
+ {
+ cout<<"*";
+ }
+ cout<