nuevamente en c++
Tengo un programa que calcula la moda y la media, que por cierto me lo dieron ustedes, ahora lo que necesito es que los datos que introduzco para calcular la moda, me los envie a un archivo y posteriormente los pueda llamar para volver a calcular, espero no sea tan dificil.
Gracias.
Gracias.
// program ModaTxt.cpp
// written in borland c++ - ver 4.5
// 17/3/2006
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
const int N = 30;
void ReadArray(int *a)
{
ifstream in("moda.in");
for(int i = 0;i < N && in;i++)
in >> a[i];
} // READ 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];
ReadArray(a);
Show(a,"source");
BublesSort(a);
Show(a,"sorted");
Process(a);
cout << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN
--------------------------------------------------------------
archivo moda.in :
5 10 25 32 14 18 15 1 3 7 12 78 97 115 45 15 11 125 132 114
118 115 11 13 17 112 178 197 315 145
// written in borland c++ - ver 4.5
// 17/3/2006
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
const int N = 30;
void ReadArray(int *a)
{
ifstream in("moda.in");
for(int i = 0;i < N && in;i++)
in >> a[i];
} // READ 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];
ReadArray(a);
Show(a,"source");
BublesSort(a);
Show(a,"sorted");
Process(a);
cout << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN
--------------------------------------------------------------
archivo moda.in :
5 10 25 32 14 18 15 1 3 7 12 78 97 115 45 15 11 125 132 114
118 115 11 13 17 112 178 197 315 145