From e5bab319acd8023eccd69b5a7229d92d83dd8893 Mon Sep 17 00:00:00 2001 From: SmirnovFA Date: Wed, 5 Jun 2024 00:41:00 +0300 Subject: [PATCH] code: add code from lab1 --- .gitignore.txt | 0 main.cpp | 132 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 .gitignore.txt create mode 100644 main.cpp diff --git a/.gitignore.txt b/.gitignore.txt new file mode 100644 index 0000000..e69de29 diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..03cbf25 --- /dev/null +++ b/main.cpp @@ -0,0 +1,132 @@ +#include +#include + +using namespace std; + +int main() +{ + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + + int max_count=0; + + char grafic_symbol = '*'; + char axis_symbol = '|'; + char correcting_symbol = ' '; + + cout<<"Enter a grafic_symbol"; + cin>>grafic_symbol; + cout<<"Enter a axis_symbol"; + cin>>axis_symbol; + cout<<"Enter a correcting_symbol"; + cin>>correcting_symbol; + + int count; + size_t number_count; + cerr << "Enter number count: "; + cin >> number_count; + size_t bin_count; + cerr << "Enter bin count: "; + cin >> bin_count; + vector numbers(number_count); + vector bins(bin_count); + for (int i=0; i>numbers[i]; + } + + 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]++; + } + } + + for (int i =0; imax_count){ + max_count=bins[i]; + } + } + + cout<MAX_ASTERISK){ + for (int i=0; i(bins[i]) / max_count); + if (bins[i]<10){ + cout<