commit e403ab8bdf13298d2898610520ac59fcd15e4d9d Author: alextwix Date: Thu Apr 24 22:23:38 2025 +0300 исходный вариант diff --git a/lab1.cbp b/lab1.cbp new file mode 100644 index 0000000..a01ffa6 --- /dev/null +++ b/lab1.cbp @@ -0,0 +1,40 @@ + + + + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..97fc5eb --- /dev/null +++ b/main.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +using namespace std; + +int main(){ + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + size_t number_count; + cerr << "Enter amount of numbers \n"; + cin >> number_count; + vector numbers(number_count); + for (size_t i = 0; i < number_count; i++){ + cerr << "Input number " << i+1 << endl; + cin >> numbers[i]; + } + double minc, maxc; + minc = maxc = numbers[0]; + for (size_t i = 1; i < number_count; i++ ){ + if(numbers[i] < minc){ + minc = numbers[i]; + } + else if (numbers[i] > maxc){ + maxc = numbers[i]; + } + } + size_t bin_count; + cerr << "Input number of bins \n"; + cin >> bin_count; + vector bins(bin_count); + double bin_size = (maxc - minc) / bin_count; + size_t bin_max_size = 0; + 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 = minc + j * bin_size; + auto hi = minc + (j + 1) * bin_size; + if ((lo <= numbers[i]) && (numbers[i] < hi)) { + bins[j]++; + found = true; + if (bins[j]> bin_max_size){ + bin_max_size = bins[j]; + } + } + } + if (!found) { + bins[bin_count - 1]++; + if (bins[bin_count - 1]> bin_max_size){ + bin_max_size = bins[bin_count - 1]; + } + } + } + size_t height; + for(int i = 0; i= MAX_ASTERISK){ + height = floor(static_cast(bins[i])*76.0f/static_cast(bin_max_size)); + } else { + height = bins[i]; + } + for(int j = 0; j