From ebd84a605348c4fc21c2bf5bc45d85cda340b001 Mon Sep 17 00:00:00 2001 From: EfremovSI Date: Fri, 19 Apr 2024 01:02:57 +0500 Subject: [PATCH] =?UTF-8?q?code:=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=B8=20=D0=B3=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/main.cpp b/main.cpp index af9afc6..a373d1b 100644 --- a/main.cpp +++ b/main.cpp @@ -10,6 +10,7 @@ using namespace std; struct Input { vector numbers; size_t bin_count{}; + size_t number_count{}; }; @@ -29,15 +30,9 @@ cin >> in.bin_count; return in; } - -int main() -{ - - size_t max_count; - Input in = input_data(); - double min = numbers[0]; - double max = numbers[0]; - +void +find_minmax(const vector& numbers, double& min, double& max) { + min = numbers[0]; for (double x : numbers) { if (x < min) { min = x; @@ -46,13 +41,15 @@ int main() max = x; } } +} +vector make_histogram(const vector numbers, size_t bin_count){ vector bins(bin_count); - vector procent(bin_count); - + double max, min = 0; + find_minmax(numbers, min, max); double bin_size = (max - min) / bin_count; - for (size_t i = 0; i < number_count; i++) { + for (size_t i = 0; i < numbers.size(); i++) { bool found = false; for (size_t j = 0; (j < bin_count - 1) && !found; j++) { auto lo = min + j * bin_size; @@ -64,8 +61,14 @@ int main() } if (!found) { bins[bin_count - 1]++; + } } + return bins; +} + +vector make_histogram_proc(const vector numbers, size_t bin_count, vector bins){ + vector procent(bin_count); double sum = 0; for (size_t i = 0; i < bin_count; i++){ sum = sum + bins[i]; @@ -76,9 +79,12 @@ int main() ost = ost - procent[i]; } procent[bin_count-1]=ost; + return procent; +} +void show_histogram_text(vector bins, size_t bin_count, vector procent){ - max_count = 0; + size_t max_count = 0; for (size_t x: bins) { if (x > max_count) { max_count = x; @@ -125,5 +131,14 @@ int main() } } + +} + +int main() +{ + auto in = input_data(); + auto bins = make_histogram(in.numbers, in.bin_count); + auto procent = make_histogram_proc(in.numbers, in.bin_count, bins); + show_histogram_text(bins, in.bin_count, procent); return 0; }