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 <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
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)
}
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