From 18907961f0d70bea052766e6b555a561f61d1748 Mon Sep 17 00:00:00 2001 From: IshutinaYI Date: Sun, 23 Apr 2023 03:52:53 +0300 Subject: [PATCH] =?UTF-8?q?build:=20=D0=98=D0=B7=D0=BD=D0=B0=D1=87=D0=B0?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=B4=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D0=9B=D0=A0=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fin_lab34.cbp | 40 +++++++++++++++++++++++++++++++++++ fin_lab34.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 fin_lab34.cbp create mode 100644 fin_lab34.cpp diff --git a/fin_lab34.cbp b/fin_lab34.cbp new file mode 100644 index 0000000..d5952e7 --- /dev/null +++ b/fin_lab34.cbp @@ -0,0 +1,40 @@ + + + + + + diff --git a/fin_lab34.cpp b/fin_lab34.cpp new file mode 100644 index 0000000..7ac292a --- /dev/null +++ b/fin_lab34.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include + +const size_t WINDOW_WIDTH = 80; +const size_t MAX_VALUE = WINDOW_WIDTH - 3 - 1; +using namespace std; + +int main() +{ + size_t count, inters; + cerr<< "The amount of numbers is: "; cin >> count; + cerr << endl << "Numbers are: "; + vector numbers (count); + for (int i = 0; i < count; i++){cin >> numbers[i];} + cerr << endl << "The amounts of intervals: "; cin >> inters; + + float min_number = numbers[0]; + float max_number = numbers[0]; + for (float now: numbers){ + if (now < min_number) {min_number = now;} + if (now > max_number) {max_number = now;} + } + + float diff = (max_number - min_number) / inters; + vector bins(inters); + float lo = min_number, hi = min_number + diff; + + + for (int i = 0; i < inters; i++){ + for (float now : numbers){ + if (i == inters - 1) { + if ((now >= lo) && (now <= hi)) {bins[i]++;} + } + else { + if ((now >= lo) && (now < hi)) {bins[i]++;} + } + } + lo = hi; hi += diff; + } + float max_count = 0; + for (auto now : bins) {max_count += now;} + int added = 0; + for (size_t now : bins){ + int height = 0; + added += now; + if (added < 100) {cout << ' ';} if (added < 10) {cout << ' ';} //форматирование строк + + cout << added << "|"; + if (added == max_count) {height = MAX_VALUE * 1.0;} + else {height = MAX_VALUE * (static_cast (added) / max_count);} + for (int i = 0; i < round(height); i++) {cout << "*";} + cout << endl; + } + return 0; +} +