E-gradiva > Računalništvo > Programiranje > Upravljanje s programirljivimi napravami > Ponavljanje > Primeri > Izracun povprecne, srednje in obicajne vrednosti

Prijava

// Podatkovna zbirka: pregraz.cpp
// Program uvaja pregled in razclenitev zbranih podatkov.
// Izracuna povprecno, srednjo in obicajno vrednost.
#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];
}
}