commit 6c26180ab39cb238f552440884c4b3a304d813cd Author: lab34 (BiriukovaAlS) Date: Sun Apr 23 21:26:12 2023 +0300 code: lab1 diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..5e5f3f5 --- /dev/null +++ b/main.cpp @@ -0,0 +1,122 @@ +#include +#include + +using namespace std; + +int main() +{ +// size_t SCREEN_WIDTH; + size_t number_count, kol_kor, height; + int i, j, srmax, srmin, maxp, minp, max_count = 0, count; + bool found; + + + const size_t SCREEN_WIDTH = 80; + + + cerr << "Enter number count:"; + cin >> number_count; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; +/* + cerr << "Enter SCREEN_WIDTH:"; + cin >> SCREEN_WIDTH; + while (SCREEN_WIDTH<7 || SCREEN_WIDTH>80 || SCREEN_WIDTH> SCREEN_WIDTH; + } +*/ + vector numbers(number_count); + for (i = 0; i < number_count; i++) + { + cerr << "numbers[" << i << "]"; + cin >> numbers[i]; + } + + cerr << "Enter kol_kor:"; + cin >> kol_kor; + + vector chet(kol_kor); + + srmax = 0; + for (i = 0; i < number_count; i++) + { + if (numbers[i] > srmax) + srmax = numbers[i]; + } + maxp = srmax; + + srmin = numbers[0]; + for (i = 0; i < number_count; i++) + { + if (numbers[i] < srmin) + srmin = numbers[i]; + } + minp = srmin; + + double step = (maxp - minp) / (kol_kor*(1.0)); + + vector B(kol_kor); + for (i = 0; i < number_count; i++) + { + for (j = 0; j < kol_kor; j++) + { + if ((numbers[i] >= (minp + j * step)) && (numbers[i] < (minp + (j + 1)*step))) + { + B[j]++; + break; + } + } + } + + for (i = 0; i < number_count; i++) + { + if (numbers[i] == maxp) + { + B[kol_kor - 1]++; + } + + } + for (i = 0; i < kol_kor; i++) + { + if (B[i] > max_count) + max_count = B[i]; + } + for (j = 0; j < kol_kor; j++) + { + cerr << "B[" << j << "]="; + cerr << B[j] << endl; + } + + for (i = 0; i < kol_kor; i++) + { + if (B[i] > 9 && B[i] < 100) + { + cout << " "; + } + if (B[i] < 10) + { + cout << " "; + } + cout << B[i] << "|"; + + if (max_count > MAX_ASTERISK) + { + count = B[i]; + height = MAX_ASTERISK * (static_cast(count) / max_count); + } + + else + { + height = B[i]; + } + + for (j = 0; j < height; j++) + { + cout << "*"; + } + cout << endl; + } + return 0; +}