Ayuda por favor

djorge
12 de Marzo del 2006
Necesito calcular la media, moda y mediana de un vector dado

Noel Solw
12 de Marzo del 2006
Te envio el programa pedido.
No tuve paciencia de controlarlo, te aconsejo reslizar por lo menos una vez el calculo manualmente.

// program moda.cpp
// written in borland c++ - ver 4.5
// Enviado por djorge el d?a 9 de marzo de 2006
// Necesito calcular la media, moda y mediana de un vector dado

#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

const int N = 30,
MAX = 10;

void MakeArray(int *a)
{
randomize();
for(int i = 0;i < N;i++)
a[i] = random(MAX);
} // MAKE ARRAY

void Show(int *a,char *msg)
{
cout << msg << " : ";
for(int i = 0;i < N-1;i++)
cout << a[i] << ",";
cout << a[i] << endl << endl;
} // SHOW

void BublesSort(int *a)
{
for(int i = N-1;i > 0;i--)
for(int j = 0;j < i;j++)
if(a[j] > a[j+1])
{
int holder = a[j];
a[j] = a[j+1];
a[j+1] = holder;
}
} // BUBLES SORT

float Media(int *a)
{
float total = 0;
for(int i = 0;i < N;i++)
total += a[i];
return total /= N;
} // MEDIA

int Moda(int *a)
{
int counter = 0,max_counter = 0,index;
for(int i = 1;i < N;i++)
{
if(a[i-1] == a[i])
counter++;
else
{
if(counter > max_counter)
{
max_counter = counter;
index = i-1;
}
counter = 0;
}
}
return a[index];
} // MODA

float Mediana(int *a)
{
return float(a[N/2] + a[N/2-1])/2;
} // MEDIANA

void Process(int *a)
{
cout << setw(20) << "la media es : " << Media(a) << endl;
cout << setw(20) << "la moda es : " << Moda(a) << endl;
cout << setw(20) << "la mediana es : " << Mediana(a) << endl << endl;
} // PROCESS

int main()
{
int a[N];
MakeArray(a);
Show(a,"source");
BublesSort(a);
Show(a,"sorted");
Process(a);
cout << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN