code: Функция расчёта гистограммы

master
Данил Гордиевских 1 год назад
Родитель 78c0f626e5
Сommit 98e7073453

@ -33,24 +33,31 @@ void FindMinMax(const vector<double>& marks, double & min, double & max) {
} }
}; };
int main() vector <double> MakeHistogram(const vector<double>& marks, int NCharts) {
{ double interval = 0, i = 0, min = 0, max = 0;
Input in = input_data(); vector<double> chart(NCharts);
int VecSize = size(in.marks); FindMinMax(marks, min, max);
double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1; interval = (max - min) / NCharts;
vector <int> chart(in.NCharts); for (int x : marks) {
FindMinMax(in.marks, min, max);
interval = (max - min) / in.NCharts;
for (int x : in.marks) {
i = 0; i = 0;
while ((x > min + interval * (i + 1))) { while ((x > min + interval * (i + 1))) {
i += 1; i += 1;
} }
chart[i] += 1; chart[i] += 1;
} }
max = *max_element(begin(chart), end(chart)); return chart;
if ((max+4) > 80) { };
scale = (max+4) / 80;
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 <double> 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++) { for (i = 0; i < in.NCharts; i++) {
if (chart[i] < 10) { if (chart[i] < 10) {

Загрузка…
Отмена
Сохранить