martes, 22 de febrero de 2011

[Final/Parcial Resuelto] Parcial 3 - 2 Cuatrimestre 2008 (UNC)

Gente aca les dejo la resolucion de parcial, digamos de nivel medio, tiene archivo y vectores, espero les sea de utilidad.

Enunciado:



Codigo:


#include <iostream>
#include
<fstream>
#include
<cstdlib>
#include
<cmath>
using namespace std;

void CARGAR(double V[100], int &n)
{
char nom [20];
int i;

ifstream A;
cout
<<"Ingrese nombre del archivo"<<endl;
cin
>>nom;
A.open(nom);
if(A.fail())
{
cout
<<"error no se cuentra el archivo";
system (
"pause");
exit (
1);
}
A.setf(ios::
fixed);
A.setf(ios::showpoint);
A.precision (
2);

i
=0;
while(!A.eof())
{
A
>>V[i];
i
++;
}
n
=i;

A.close();
}

void MOSTRAR (double V[100], int n)
{
int i;

cout
<<"El vector es"<<endl;
for(i=0; i<n; i++)
{
cout
<<V[i]<<endl;
}
}

double PROMEDIO(double V[100], int n)
{
int s,i;
double prom;

for(i=0; i<n; i++)
{
s
=s+V[i];
}
prom
=(double)s/n;

return prom;
}


double DESVIACION (double V[100], int n, double promedio)
{
double s,desv;
int i;

s
=0;
for(i=0;i<n;i++)
{
s
=s+pow(V[i]-promedio,2);
}
desv
=sqrt(s/n);

return desv;
}

void SALIDA(double V[100], int n, double desv)
{
int i;
double nro;

ofstream A;
A.open(
"salida.txt");
A.setf(ios::showpoint);
A.setf(ios::
fixed);
A.precision(
10);
for(i=0; i<n; i++)
{
nro
=(double)V[i]-desv;
A
<<abs(nro)<<endl;
}
cout
<<"Distancias en el archivo salidas.txt"<<endl;
A.close();
}

int main ()
{
double V[100];
int n;
double p,d;

CARGAR(V,n);
MOSTRAR(V,n);
p
=PROMEDIO(V,n);
d
=DESVIACION(V,n,p);
SALIDA(V,n,d);
cout
<<"Promedio "<<p<<endl;
cout
<<"Desviacion "<<d<<endl;

system (
"pause");
return 0;
}


El "archivo.txt"

45
455
44
54
4


El "archivo2.txt"

0.215
0.142
0.2455
0.144
0.154
0.1


Nota: pueden probar cualquiera de los dos archivos
Recordar: p=(double)s/n; se pone double por que si s y n son enteros dara un entero por mas que p sea un double, para evitar esto ponemos un (double) adelante de la operacion y tenemos resuelto el problema.
Ayuda Memoria: "sqrt" es para calcular la raiz, "abs" para el valor absoluto, ambas pertenecientes a la libreria cmath.

Agradecimientos Emiliano Ortin