From 98e7073453e404aaa0fe29e1622191dc2c9c4704 Mon Sep 17 00:00:00 2001 From: GordiyevskikDA Date: Tue, 5 Mar 2024 19:21:37 +0300 Subject: [PATCH] =?UTF-8?q?code:=20=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B0=D1=81=D1=87=D1=91=D1=82=D0=B0=20=D0=B3?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LABA1.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/LABA1.cpp b/LABA1.cpp index 8153d1b..c0de306 100644 --- a/LABA1.cpp +++ b/LABA1.cpp @@ -33,24 +33,31 @@ void FindMinMax(const vector& marks, double & min, double & max) { } }; -int main() -{ - Input in = input_data(); - int VecSize = size(in.marks); - double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1; - vector chart(in.NCharts); - FindMinMax(in.marks, min, max); - interval = (max - min) / in.NCharts; - for (int x : in.marks) { +vector MakeHistogram(const vector& marks, int NCharts) { + double interval = 0, i = 0, min = 0, max = 0; + vector chart(NCharts); + FindMinMax(marks, min, max); + interval = (max - min) / NCharts; + for (int x : marks) { i = 0; while ((x > min + interval * (i + 1))) { i += 1; } chart[i] += 1; } - max = *max_element(begin(chart), end(chart)); - if ((max+4) > 80) { - scale = (max+4) / 80; + return chart; +}; + +int main() +{ + const int shift = 4, maxlen = 80; + Input in = input_data(); + int VecSize = size(in.marks); + double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1; + vector chart = MakeHistogram(in.marks, in.NCharts); + FindMinMax(chart, min, max); + if ((max+shift) > maxlen) { + scale = (max+shift) / maxlen; } for (i = 0; i < in.NCharts; i++) { if (chart[i] < 10) {