From 4ec4a7cd7346e08a136e05c0b5e23d663ce16de9 Mon Sep 17 00:00:00 2001 From: KhnytchenkovAM Date: Sun, 23 Apr 2023 13:16:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=83=D0=BD=D0=BA=D1=82=201-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 62 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/main.cpp b/main.cpp index 62c91af..407c973 100644 --- a/main.cpp +++ b/main.cpp @@ -2,25 +2,30 @@ #include using namespace std; -int main(){ - - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 6 - 1; - size_t bin_count, counts; - cerr << "Enter counts:"; - cin >> counts; - - vector numbers(counts); - - for (size_t i = 0; i < counts; i++){ - cerr << "Enter array "<< i <<" number:"; - cin >> numbers[i]; +struct Input { + vector numbers; + size_t bin_count{}; +}; + +Input +input_data(){ + Input in; + size_t number_count; + cin >> number_count; + in.numbers.resize(number_count); + + vector numbers(number_count); +for (size_t i = 0; i < number_count; i++) { + cin >> in.numbers[i]; } - cerr << "Enter bin_count:"; - cin >> bin_count; + cin >> in.bin_count; + return in; +} - double minN = numbers[0], maxN = numbers[0]; +void find_minmax( const vector& numbers, double& minN, double& maxN) { + minN = numbers[0]; + maxN = numbers[0]; for (double x: numbers){ if (minN > x){ @@ -31,12 +36,16 @@ int main(){ } } - double diff = (maxN - minN) / bin_count; +} - vector bins(bin_count); +auto make_histogram(vector numbers, size_t bin_count){ + double minN, maxN; + find_minmax( numbers, minN, maxN); + vector bins(bin_count); + double diff = (maxN - minN) / bin_count; size_t max_count = 0; - for (size_t i = 0; i < counts; i++){ + for (size_t i = 0; i bins,size_t bin_count, size_t max_count){ + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 6 - 1; bool scaling = false; @@ -90,3 +105,10 @@ int main(){ cout << endl; } } +int main(){ + size_t max_count; + auto in = input_data(); + auto bins = make_histogram(in.numbers, in.bin_count); + show_histogram_text(bins,in.bin_count, max_count); +return 0; +}