From 6ac634bdd22259d00a261f90c8dc6685081ff7d6 Mon Sep 17 00:00:00 2001 From: ShirokovIV lab03 Date: Sat, 19 Apr 2025 00:11:57 +0300 Subject: [PATCH] show_histogram --- maincpp.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/maincpp.cpp b/maincpp.cpp index a4a2a70..ed0f65f 100644 --- a/maincpp.cpp +++ b/maincpp.cpp @@ -26,33 +26,35 @@ void find_minmax(vector vec, double& min, double& max) { if (x < min) { min = x; } - else + else if(x > max) { max = x; } } } -int main() { - auto in = input_data(); - vector bins(in.korz); +vector make_histogram(size_t number, vector vec) { + vector bins(number); double mn, mx; - find_minmax(in.vec, mn, mx); - float bin_size = (mx - mn) / in.korz; - for (size_t i = 0; i < in.vec.size(); i++) { + find_minmax(vec, mn, mx); + float bin_size = (mx - mn) / number; + for (size_t i = 0; i < vec.size(); i++) { bool fl = false; - for (size_t j = 0; (j < in.korz - 1) && !fl; j++) { + for (size_t j = 0; (j < number - 1) && !fl; j++) { auto lo = mn + j * bin_size; auto hi = mn + (j + 1) * bin_size; - if ((lo <= in.vec[i]) && (in.vec[i] < hi)) { + if ((lo <= vec[i]) && (vec[i] < hi)) { bins[j]++; fl = true; } } if (!fl) { - bins[in.korz - 1]++; + bins[number - 1]++; } } + return bins; +} +void show_histogram(vector bins) { bool gigant = false; auto spaces = 0; size_t mx_count = 0; @@ -132,4 +134,10 @@ int main() { cout << endl; } } +} +int main() { + auto in = input_data(); + auto bins = make_histogram(in.korz, in.vec); + show_histogram(bins); + } \ No newline at end of file