From 95a128b3206e28c6021e1272a7fa266d6d22da69 Mon Sep 17 00:00:00 2001 From: YaroslavS Date: Mon, 28 Apr 2025 01:53:23 +0300 Subject: [PATCH] small fixed main.cpp --- Histogram/main.cpp | 82 +++------------------------------------------- unittest.cbp | 3 ++ unittest.layout | 5 +++ 3 files changed, 12 insertions(+), 78 deletions(-) diff --git a/Histogram/main.cpp b/Histogram/main.cpp index bfe3fd3..14b5629 100644 --- a/Histogram/main.cpp +++ b/Histogram/main.cpp @@ -27,83 +27,9 @@ Input input_data() { using namespace std; -int main() -{ - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; - - - int number_count, bucket; - - cerr << "Enter number count: "; cin >> number_count; - - std::cerr << "Enter numbers: \n"; - vector numbers(number_count); - for (int i = 0; i < number_count; i++) cin >> numbers[i]; - - float min = numbers[0]; - float max = numbers[0]; - - for (float x : numbers) - { - if (x < min) min = x; - else if (x > max) max = x; - } - - if (max == min) {// проверка на аномалию - std::cout << " Unable to create a histogram." << std::endl; - return 1; - } - - cerr << "Enter bucket: "; cin >> bucket; - - float k = (max - min) / bucket; - - if (numbers.empty()) {//были ли введены числа - std::cout << "Empty. unable to create histogram." << std::endl; - return 1; - } - - vector stolb(bucket); - vector proz(stolb); - - for (int j = 0; j < bucket; j++) stolb[j] = 0; - - for (int i = 0; i < number_count; i++) - { - bool flag = false; - for (int j = 0; (j < bucket && !flag); j++) - { - if (numbers[i] >= (min + k * j) && numbers[i] < (min + k * (1 + j))) - { - stolb[j]++; - flag = true; - - } - } - if (!flag) stolb[bucket - 1]++; - } - - int maxlen = 0; - for (int j = 0; j < bucket; j++) - { - if (maxlen < stolb[j]) maxlen = stolb[j]; - } - - for (int j = 0; j < bucket; j++) - { - if (stolb[j] < 100) cout << " "; - if (stolb[j] < 10) cout << ""; - cout << stolb[j] << " |"; - size_t height = stolb[j]; - if (maxlen > MAX_ASTERISK) - { - if (maxlen != stolb[j]) height = MAX_ASTERISK * (static_cast (stolb[j]) / maxlen); - else if (maxlen == stolb[j]) height = MAX_ASTERISK; - } - for (int i = 0; i < height; i++) cout << "*"; - cout << "\n"; - } - +int main() { + Input in = input_data(); + auto bins = make_histogram(in.numbers, in.bin_count); + show_histogram_text(bins); return 0; } diff --git a/unittest.cbp b/unittest.cbp index 7f9621b..b662dcf 100644 --- a/unittest.cbp +++ b/unittest.cbp @@ -31,6 +31,9 @@ + + + diff --git a/unittest.layout b/unittest.layout index 593c06e..9f2c1f2 100644 --- a/unittest.layout +++ b/unittest.layout @@ -2,4 +2,9 @@ + + + + +