#include <iostream>
#include <iomanip>
using namespace std;
void povprecna(int [], int);
void srednja(int [], int);
void obicajna(int [], int [], int);
void mehurcno_uredi(int[], int);
void izpisi_polje(int[], int);
int main()
{
const int stevilo_odzivov = 99;
int pogostost[10] = {0},
odziv[stevilo_odzivov] = {6, 7, 8, 9, 8, 7, 8, 9, 8, 9,
7, 8, 9, 5, 9, 8, 7, 8, 7, 8,
6, 7, 8, 9, 3, 9, 8, 7, 8, 7,
7, 8, 9, 8, 9, 8, 9, 7, 8, 9,
6, 7, 8, 7, 8, 7, 9, 8, 9, 2,
7, 8, 9, 8, 9, 8, 9, 7, 5, 3,
5, 6, 7, 2, 5, 3, 9, 4, 6, 4,
7, 8, 9, 6, 8, 7, 8, 9, 7, 8,
7, 4, 4, 2, 5, 3, 8, 7, 5, 6,
4, 5, 6, 1, 6, 5, 7, 8, 7};
povprecna(odziv, stevilo_odzivov);
srednja(odziv, stevilo_odzivov);
obicajna(pogostost, odziv, stevilo_odzivov);
system("pause");
return 0;
}
void povprecna(int odgovor[], int velikost_polja)
{
int vsota = 0;
cout << "**********************" << endl << " Povprecna vrednost" << endl
<< "**********************" << endl;
for (int j = 0; j < velikost_polja; j++)
vsota += odgovor[j];
cout << "Povprecna vrednost je povprecna vrednost" << endl
<< "podatkovnih elementov. Povprecna vrednost je" << endl
<< "enaka vsoti vseh elementov, deljeni s stevilom" << endl
<< "podatkovnih elementov (" << velikost_polja << "). Povprecna"
<< endl << "vrednost za ta primer je: "
<< vsota << " / " << velikost_polja << " = "
<< setiosflags(ios::fixed | ios::showpoint)
<< setprecision(4) << (float) vsota / velikost_polja
<< endl << endl;
}
void srednja(int odgovor[], int stevilo)
{
cout << endl << "******************" << endl << " Srednja vrednost" << endl
<< "******************" << endl
<< "Neurejeno polje odzivov je";
izpisi_polje(odgovor, stevilo);
mehurcno_uredi(odgovor, stevilo);
cout << endl << endl << "Urejeno polje je";
izpisi_polje(odgovor, stevilo);
cout << endl << endl << "Srednja vrednost je element " << stevilo / 2
<< " od" << endl << stevilo << " elementov"
<< " urejenega polja." << endl
<< "V tem primeru je srednja vrednost "
<< odgovor[stevilo / 2] << endl << endl;
}
void obicajna(int pogost[], int odgovor[], int stevilo)
{
int najvec = 0, obicajna_vrednost = 0;
cout << endl << "*********************" << endl
<< " Obicajna vrednost" << endl
<< "*********************" << endl;
for (int razred = 1; razred <= 9; razred++)
pogost[razred] = 0;
for (int j = 0; j < stevilo; j++)
++pogost[odgovor[j]];
cout << "Odziv"<< setw(11) << "Pogostost"
<< setw(19) << "Histogram" << endl << endl << setw(51)
<< "1 1 2 2" << endl << setw(51)
<< "5 0 5 0 5" << endl << endl;
for (int razred = 1; razred <= 9; razred++) {
cout << setw(5) << razred << setw(11)
<< pogost[razred] << " ";
if (pogost[razred] > najvec) {
najvec = pogost[razred];
obicajna_vrednost = razred;
}
for (int h = 1; h <= pogost[razred]; h++)
cout << '*';
cout << endl;
}
cout << "Obicajna vrednost je najpogostejsa vrednost." << endl
<< "V tem primeru je ta " << obicajna_vrednost
<< ", ki se je pojavila " << najvec << "-krat." << endl;
}
void mehurcno_uredi(int a[], int stevilo)
{
int vmesni;
for (int prehod = 1; prehod < stevilo; prehod++)
for (int j = 0; j < stevilo - 1; j++)
if (a[j] > a[j+1]) {
vmesni = a[j];
a[j] = a[j+1];
a[j+1] = vmesni;
}
}
void izpisi_polje(int a[], int stevilo)
{
for (int j = 0; j < stevilo; j++) {
if (j % 20 == 0)
cout << endl;
cout << setw(2) << a[j];
}
}