From 8f0802df87f5d3125795e4e48335e52382f9320c Mon Sep 17 00:00:00 2001 From: bob Date: Wed, 7 Jun 2023 15:08:39 +0300 Subject: [PATCH] ggg --- main.cpp | 143 ++++++++++++++++++------------------------------------- 1 file changed, 46 insertions(+), 97 deletions(-) diff --git a/main.cpp b/main.cpp index 519559c..4f0b6ac 100644 --- a/main.cpp +++ b/main.cpp @@ -1,117 +1,66 @@ #include #include +#include using namespace std; -const size_t SCREEN_WIDTH = 80; -const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; -double findMin(vector values) -{ - double min; - min = values[0]; - for (size_t i = 1; i < values.size(); i++) - if (values[i] < min) - min = values[i]; - return min; -} -double findMax(vector values) +int main() { - double max; - max = values[0]; - for (size_t i = 1; i < values.size(); i++) - if (values[i] > max) - max = values[i]; - return max; -} +size_t number_count; -size_t findMax(vector values) -{ - size_t max; - max = values[0]; - for (size_t i = 1; i < values.size(); i++) - if (values[i] > max) - max = values[i]; - return max; -} +cerr << "Enter number count: "; //количество чисел +cin >> number_count; -vector GetCarts(vector values, size_t cartsCount) -{ - vector carts(cartsCount); - double min = findMin(values); - double max = findMax(values); - double step = (max - min) / cartsCount; - for (size_t i = 0; i < values.size(); i++) - { - bool found = false; - for (size_t j = 0; (j < cartsCount - 1) && !found; j++) - { - auto lo = min + j * step; - auto hi = min + (j + 1) * step; - if ((lo <= values[i]) && (values[i] < hi)) - { - carts[j]++; - found = true; - } - } - if (!found) - carts[cartsCount - 1]++; - } - return carts; -} +vector numbers(number_count); //векток с числами -vector inputValues() -{ - size_t valuesLen; - cin >> valuesLen; - vector values(valuesLen); - for (size_t i = 0; i < valuesLen; i++) - cin >> values[i]; - return values; -} +for(size_t i=0; i < number_count; i++) //заполнение вектора + cin >> numbers[i]; -size_t inputCartsCount() -{ - size_t cartsCount; - cin >> cartsCount; - return cartsCount; -} +size_t bin_count; //количество корзин +cerr << "Enter bin count: "; +cin >> bin_count; -vector ScaleCart(vector carts, size_t max) -{ - if (max < MAX_ASTERISK) - max = MAX_ASTERISK; - vector cartsScales(carts.size()); - for (size_t i = 0; i < carts.size(); i++) - cartsScales[i] = MAX_ASTERISK * (static_cast(carts[i]) / max); - return cartsScales; -} +vector bins(bin_count); -void outputCarts(vector carts) -{ - size_t max = findMax(carts); - vector cartsScales = ScaleCart(carts, max); - for (size_t i = 0; i < carts.size(); i++) - { - if (carts[i] < 100) - cout << " "; - if (carts[i] < 10) - cout << " "; - cout << carts[i] << "|"; - for (size_t j = 0; j < cartsScales[i]; j++) - cout << "*"; - cout << endl; - } +double min; +min = numbers[0]; +for (size_t i = 1; i < numbers.size(); i++) + if (numbers[i] < min) + min = numbers[i]; + + +double max; +max = numbers[0]; +for (size_t i = 1; i < numbers.size(); i++) + if (numbers[i] > max) + max = numbers[i]; + +double bin_size = (max - min) / bin_count; +for (size_t i = 0; i < number_count; i++) { + bool found = false; + for (size_t j = 0; (j < bin_count - 1) && !found; j++) { + auto lo = min + j * bin_size; + auto hi = min + (j + 1) * bin_size; + if ((lo <= numbers[i]) && (numbers[i] < hi)) { + bins[j]++; + found = true; + } + } + if (!found) { + bins[bin_count - 1]++; + } } -int main() -{ - vector values = inputValues(); - size_t cartsCount = inputCartsCount(); - vector carts = GetCarts(values, cartsCount); - outputCarts(carts); +for (size_t i=0; i