From b29a741e750c663a0aa11058da77169714925534 Mon Sep 17 00:00:00 2001 From: "Alexey (MinovAS)" Date: Mon, 5 Jun 2023 02:41:21 +0300 Subject: [PATCH] =?UTF-8?q?code:=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BA=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 13391 -> 15468 bytes main.cpp | 99 ++++++++++-------- 2 files changed, 54 insertions(+), 45 deletions(-) diff --git a/lab_3.xcodeproj/project.xcworkspace/xcuserdata/lesaminov.xcuserdatad/UserInterfaceState.xcuserstate b/lab_3.xcodeproj/project.xcworkspace/xcuserdata/lesaminov.xcuserdatad/UserInterfaceState.xcuserstate index 10298830bd7386373ece41f3b4684a8735d8ca31..7d29fed0a1a4f65c608998928ecab739b698ebe4 100644 GIT binary patch delta 8982 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 delta 6914 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 ay8F_7y?sN=cIuRt9octf$MS#QsQ&@5(iw&T diff --git a/main.cpp b/main.cpp index 4e25f00..ecb814d 100644 --- a/main.cpp +++ b/main.cpp @@ -4,52 +4,53 @@ using namespace std; -int main() +struct Input { - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; - size_t number_count, bin_count, max_bin, height, answer = 0; - double maxx, minn; - cerr << "Enter number count: "; cin >> number_count; //Кол-во чисел - vector numbers(number_count); - - srand((unsigned int)42); - cerr << "Use random numbers?(yes - 1/no - 0)\n"; cin >> answer; - if (answer == 1) - { - for (int i = 0; i < number_count; i++) - { - cerr << "Enter Num[" << i << "]: "; numbers[i] = rand() % 9; //Ввод рандомных чисел - } - } - else + vector numbers; + size_t bin_count{}; +}; + +Input input_data() +{ + size_t number_count; + cerr << "Enter number count: "; + cin >> number_count; // Кол-во чисел + Input in; + in.numbers.resize(number_count); + for (size_t i = 0; i < number_count; i++) { - for (int i = 0; i < number_count; i++) - { - cerr << "Enter Num[" << i << "]: "; cin >> numbers[i]; //Ввод чисел - } + cin >> in.numbers[i]; } - cerr << "Enter bin count: "; cin >> bin_count; //Кол-во корзин + cerr << "Enter bin count: "; + cin >> in.bin_count; + return in; +} - vector bins(bin_count); - maxx = numbers[0]; minn = numbers[1]; - for (size_t i = 0; i < number_count; i++) +void find_minmax(vector &numbers, double& min, double& max) +{ + min = numbers[0]; max = numbers[0]; + for (double x : numbers) { - if (maxx < numbers[i]) - maxx = numbers[i]; - if (minn > numbers[i]) - minn = numbers[i]; + if (max < x) + max = x; + if (min > x) + min = x; } - - double bin_size = (maxx - minn) / bin_count; - - for (size_t i = 0; i < number_count; i++) +} + +vector make_histogram(vector numbers, size_t bin_count) +{ + double min, max; + find_minmax(numbers, min, max); + double bin_size = (max - min) / bin_count; + vector bins(bin_count); + 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 = minn + j * bin_size; - auto hi = minn + (j + 1) * bin_size; + auto lo = min + j * bin_size; + auto hi = min + (j + 1) * bin_size; if ((lo <= numbers[i]) && (numbers[i] < hi)) { bins[j]++; @@ -61,14 +62,15 @@ int main() bins[bin_count - 1]++; } } - max_bin = bins[0]; - height = bins[0]; - for (size_t i = 0; i < bin_count; i++) - { - if (bins[i] > max_bin) - max_bin = bins[i]; - } - + return bins; +} + +const size_t SCREEN_WIDTH = 80; +const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + +void show_histogram_text(std::vector bins, size_t bin_count) +{ + double max_bin = *std::max_element(bins.begin(), bins.end()); for (size_t i = 0; i < bin_count; i++) { if (bins[i] < 100) @@ -76,12 +78,19 @@ int main() if (bins[i] < 10) cout << " "; cout << bins[i] << "|"; - height = MAX_ASTERISK * (static_cast(bins[i]) / max_bin); + size_t height = MAX_ASTERISK * (static_cast(bins[i]) / max_bin); for (size_t j = 0; j < height; j++) { cout << "*"; } cout << endl; } +} + +int main() +{ + auto in = input_data(); + auto bins = make_histogram(in.numbers, in.bin_count); + show_histogram_text(bins, in.bin_count); return 0; }