miércoles, 23 de mayo de 2012



Practica 13
1.-Realizar las siguientes funciones estadísticas en un arreglo de 10 elementos:
a) calcular la media geométrica
b)media armonica
c)intervalo
d)desviación estándar
e)variancia

codigo

 #include <conio.h>
#include <iostream.h>
#include <math.h>


/*Practica 13 problema 1 Echamea Camacho Carlos Darrel 11211070*/
template <class T>
void enteroduceDatosArreglo(T arreglo[10],int n)
template <class T>
T promedio(T arreglo[10],int n)
template <class T>
T mediaGeometrica(T arreglo[10],int n)
template <class T>
T mediaArmonica(T arreglo[10],int n)
template <class T>
T menor(T arreglo[10],int n)
template <class T>
T mayor(T arreglo[10],int n)
template <class T>
T variancia(T arreglo[10],int n)
int main()
{float a[10];
int n1;
do
{
cout<<"introduce  numero de datos(<=10)= ";
cin>>n1;
}
while(n1<=0 || n1>10);
enteroduceDatosArreglo(a,n1);
cout<<endl;
cout<<" El promedio es         : "<<promedio(a,n1)<<endl;
cout<<" La media geometrica es : "<<mediaGeometrica(a,n1)<<endl;
cout<<" La media Armonica es   : "<<mediaArmonica(a,n1)<<endl;
cout<<" El intervalo es  :("<<menor(a,n1)<<","<<mayor(a,n1)<<")"<<endl;
cout<<" La Variancia es        : "<<variancia(a,n1)<<endl;
cout<<" La Desviacion estandar : "<<pow(variancia(a,n1),.5)<<endl;
getch();
}
template <class T>
void enterosroduceDatosArreglo(T arreglo[10],int n)
{
int i=0;
for(i=0; i<n ;i++)
{
cout<<"DATO "<<(i+1)<<"= ";
cin>>arreglo[i];
}} 
template <class T>
T promedio(T arreglo[10],int n)
{
T suma=1;
int i=0;
for(i=0; i<n ;i++)
{
suma=suma+arreglo[i];
}
return suma/n;
}
template <class T>
T mediaGeometrica(T arreglo[10],int n)
{
T suma=1;
int i=0;
for(i=0; i<n ;i++)
{
suma=suma*arreglo[i];
}
return pow(suma,1.0/n);
}
template <class T>
T mediaArmonica(T arreglo[10],int n)
{
T suma=0 ;
int i=0;
for(i=0; i<n ;i++)
{
suma=suma+1.0/arreglo[i];
}
return n/suma;
}

template <class T>
T menor(T arreglo[10],int n)
{
T menor=9999;
int i=0;
for(i=0; i<n ;i++)
{
if(arreglo[i]<menor)
{
menor=arreglo[i];
}}
return menor;
}

template <class T>
T mayor(T arreglo[10],int n)
{
T mayor=0;
int i=0;
for(i=0; i<n ;i++)
{
if(arreglo[i]>mayor)
{
mayor=arreglo[i];
}}
return mayor;
}

template <class T>
T variancia(T arreglo[10],int n)
{
T media=0;
T suma=0;
int i=0;
for(i=0; i<n ;i++)
{
suma=suma+arreglo[i];
}
media=suma/n;
suma=0      ;
for(i=0; i<n ;i++)
{
suma=suma+pow(media-arreglo[i],2);
}
return suma/n;
}



Pseudocodigo

template <class T>

void inDatosArreglo(T arreglo[10],entero n)

template <class T>

T promedio(T arreglo[10],entero n)

template <class T>

T mediaGeometrica(T arreglo[10],entero n)
template <class T>
T mediaArmonica(T arreglo[10],entero n)
template <class T>
T menor(T arreglo[10],entero n)
template <class T>
T mayor(T arreglo[10],entero n)
template <class T>
T variancia(T arreglo[10],entero n)
Fin de plantillas
Inicio programa
{
real a[10]
enteros n1
do
{
print "introduce  numero de datos(<=10)= "
read n1
}
while(n1<=0 || n1>10)
inDatosArreglo(a,n1)
prenteros "El promedio es                : "promedio(a,n1)  
prenteros "La media geometrica es  : "mediaGeometrica(a,n1)  
prenteros "La media Armonica es     : "mediaArmonica(a,n1)  
prenteros "El Enteroservalo es de     :("menor(a,n1)","mayor(a,n1)")"  
prenteros "La Variancia es                : "variancia(a,n1)  
prenteros "La Desviacion estandar   : "pow(variancia(a,n1),.5)   
fin programa
inicio plantilla
template <class T>
void inDatosArreglo(T arreglo[10],entero n)
{
enteros i=0
for(i=0 to n step i++)
{
print "Dato "(i+1)"= "
read arreglo[i]
}}

template <class T>
T promedio(T arreglo[10],entero n)
{
T suma=1
entero i=0
for(i=0 to n step i++)
{
suma=suma+arreglo[i]
}
return suma/n
}
template <class T>
T mediaGeometrica(T arreglo[10],entero n)
{
T suma=1
entero i=0
for(i=0 to n step i++)
{
suma=suma*arreglo[i]
}
return pow(suma,1.0/n)
}
template <class T>
T mediaArmonica(T arreglo[10],entero n)
{
T suma=0
enteros i=0
for(i=0 to n step i++)
{
suma=suma+1.0/arreglo[i]
}
return n/suma
}
template <class T>
T menor(T arreglo[10],entero n)
{
T menor=9999
enteros i=0
for(i=0 to n step i++)
{
if(arreglo[i]<menor)
{
menor=arreglo[i]
}}
return menor
}
template <class T>
T mayor(T arreglo[10],entero n)
{
T mayor=0
enteros i=0
for(i=0 to n step i++)
{
if(arreglo[i]>mayor)
{
mayor=arreglo[i]
}}
return mayor
}

template <class T>
T variancia(T arreglo[10],entero n)
{
T media=0
T suma=0
enteros i=0
for(i=0 i<n i++)
{
suma=suma+arreglo[i]
}
media=suma/n
suma=0
for(i=0 to n step i++)
{
suma=suma+pow(media-arreglo[i],2)
}
return suma/n
}




2.Diseñe un programa para calcular el salario de un grupo de 5 vendedores.El sueldo de cada uno de ellos se paga con base en una comisión sobre las ventas realizadas y cada uno vende 5 carticulos.Los datos que debe considerar son el nombre del vendedor, y el articulo vendido, el precio por unidad y el numero de las que se han vendido.Los datos no se encuentran en secuencia ordenada.Suponga que la comisión que se paga es:

No articulo                       Descripcion por Unidad Comision
1  Articulos de limpieza                     $250.00             5%
2  Articulos de Cocina                       $390.00             4%
3  Articulos escolares                        $478.00             2%
4 Articulos para automóviles             $267.00             2%
5 Despensa de 30 articulos               $175.00             2%

Debe calcular el sueldo de cada vendedor


Pseudocodigo
void dtarreglo(char a[5][30])
{
entero i
for(i=0 to 4 step i++)
{
print ”  Dato ",(i+1),":"
gets(a[i])
}}
void pa(float p[5]){
int i
for(i=0 to 4 step i++){
print " precio del articulo ",(i+1),":"
read p[i];}}
void sv(entero nv,entero na, real s[5],float p[5],entero cant){
switch (na){
case 1:s[nv-1]=s[nv-1]+p[na-1]*cant*0.05
break
case 2:s[nv-1]=s[nv-1]+p[na-1]*cant*0.04
break
case 3:
case 4:
case 5:s[nv-1]=s[nv-1]+p[na-1]*cant*0.02
break;
default: print  “ error en numero de vendedor "}}
 void main(){
 char nov[5][30],n,noa[5][30]
 real sueldo[5]={0,0,0,0,0},precio[5];
 entero nv,na,cant,i
 print " nombre vendedores: "
 dtarreglo(nov);
 print " nombre articulos: "
 dtarreglo(noa);
 print " Introduce precios de cada uno de los articulos: "
 pa(precio)
 do{
 print "numero de vendedor: "
 read nv
 print " numero de articulo: "
 read na
 print "Cantidad de articulos:"
 read cant
 sv(nv,na,sueldo,precio,cant);
 print "Desea realizar otro calculo"
 print "1)si/2)no "
 read n}
 while (n=='1')
 for(i=0 to 4 step i++){
 print " \nVendedor: ",nov[i]
 print " sueldo: ",sueldo[i]
getch()}}               
















































3.-Haga un programa que contabilice una cuenta de cheques.Al inicio le introduce el nombre del cuentahabiente y el saldo inicial.A continuación se puede hacer depósitos y retiros.Cuando sea deposito se incrementa el saldo, y cuando se retira se resta.Este programa terminara cuando ya no se desee hacer movimientos.Se requiere la impresión del siguiente reporte:
Estado de cuenta
Cuentahabiente:Luis Garcia Garcia
Saldo inicial:$5000.00
Movimiento Deposito Retiro Saldo
Considere arreglos de nombre de clientes y un arreglo de saldo inicial para 3 clientes y arreglos para cada cliente de 20 movimientos

pseudocódigo

float dtarreglo (char c[3][30],real si[3])
real m(real s, real mv[20],char c[3][30],real si[3],entero nc)
real dtarreglo (char c [3][30], real si[3])
{
entero i
print " Introdusca los datos del cliente “
for(i=0 to 3 step i++)
{
print Nombre cliente: "
gets(c[i])
print Saldo inicial: "
read si[i]
}return si[i]
}
real m(float s, real mv [20],char c[3][30], real si[3],int nc)
{
entero i=0
do{
print " Movimiento ('+'cantidad=deposito/'-'cantidad=retiro): "
read mv[i]
i++
}
while ((mv[i-1]!=0)&&(i<20))
for (i=0 to 20 step i++)
{
if ((s<mv[i])&(mv[i]<0))
{
print Error los saldos son insuficientes "
}
else
{
s+=mv[i]
}
}

print " Estado de cuenta"
print " nombre: ",(c[nc-1])
print " Saldo inicial: ",(si[nc-1])
print " movimiento  \tDeposito Retiro\tSaldo\n"
entero q=0
do
{
print q+1), "\t\t"
if(mv[q]>0)
{
 print "+\t\t"
}
else
{
print "\t - \t"
}
print  (mv[q]),"\n\n"
q++
}
while ((mv[q]!=0)&&(q<20))
return(s)
}
void main()
{
real s=0
char c[3][30]
real si[3],t
real mv[20]
int nc,sigue
dtarreglo(c,si)
do{
print "numero de cliente:"
read nc
s=si[nc-1]
t=m(s,mv,c,si,nc)
print " Saldo final: ",t
print " Desea introducir otro cliente (si=1/no=0):"
read sigue
}
while (sigue==1)
}























No hay comentarios:

Publicar un comentario