From 0073bd7b08f6ad7db78acc1e37e1345d3636b923 Mon Sep 17 00:00:00 2001 From: IshutinaYI Date: Mon, 10 Apr 2023 09:35:02 +0300 Subject: [PATCH] =?UTF-8?q?build:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D1=81=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=BE=D0=BC=20.cpp=20=D0=B8=20.cbp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab1var8.cbp | 40 ++++++++++++++++++++++++++++++++++++ main.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 lab1var8.cbp create mode 100644 main.cpp diff --git a/lab1var8.cbp b/lab1var8.cbp new file mode 100644 index 0000000..7cb9e07 --- /dev/null +++ b/lab1var8.cbp @@ -0,0 +1,40 @@ + + + + + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..7ac292a --- /dev/null +++ b/main.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; +} +