Buscar este blog

domingo, 13 de mayo de 2012

PRACTICA 13


problema 1
GARCIA GAETA FRANCISCO ARMANDO NO.CONTROLO: 11211033
considere un arreglo de 10 numeros para calcular la siguientes funciones
estadisticas:
             a) la media geometrica y esta dada por la siguiente formula
                (A[0]*A[1]*A[2]*A[3]*A[4]*A[5]*A[6]*A[7]*A[8]*A[9])^(1/N)
             b) la media armonica:
                (1/(1/A[0]*1/A[1]*1/A[2]*1/A[3]*1/A[4]*1/A[5]*1/A[6]*1/A[7]*1/A[8]*1/A[9]))
             c) intervalo:
                          valorMaximo- valorMinimo
             d) la deviacion estandar: Deternimar la desviasion de cada valor
             con respecto al promedio. Alamcenar cada desvicion en un arreglo
             llamado desvicaion. Cada desvicion se calcula como el valor del
             elemento menos el promedio de todos los datos.
             e) calcular la variancia: La variancia de obtiene al elevar al
             cuadrado cada desviacion individual y dividir la suma de las
             desviaciones al cuadrado entre el numero de desviciones
Pseudocodigo:
1.       Inicio

template <class t>
void IntroduceDatosArreglo(t Arreglo[10], int N)  
template <class t>
t MediaGeometrica(t Arreglo[10], int N)  
template <class t>
t MediaArmonica(t Arregloa[10], int N)  
template <class t>
t Intervalo(t Arregloa[10], int N)  
void DesviacionEst(real  Arregloa[10], real  Desviacion[10], int N)  

real  Variancia(real  Desviacion[10], int N)  

int main()
{real  A[10], D[10]  
int N1  
Print "Introduce numero de datos(<=10)="  
Read  N1  

IntroduceDatosArreglo(A, N1)  
Print  , "La media geometrica es:", MediaGeometrica(A, N1),  
Print  , "La media aritmetica es:", MediaArmonica(A, N1),  
Print  , "El intervalo es:", Intervalo(A, N1),  
Print  , "La desviacion  de cada elemento es:",  
DesviacionEst(A, D, N1)  
Print  , "La variancia es:", Variancia(D, N1),  
getch()   }

template <class t>
void IntroduceDatosArreglo(t Arreglo[10], int N)
{int I  
for(I=0   I<N   I++)
{Print  , "Dato", (I+1), "="  
Read  Arreglo[I]  
}}

template <class t>
t MediaGeometrica(t Arreglo[10], int N)
{real  suma=1  
int I  
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)
{int I  
real  suma=0  
for(I=0   I<N   I++)
{suma=suma+1.0/Arreglo[I]  
}return 1.0/suma   }

template <class t>
t Intervalo(t Arreglo[10], int N)
{int Max=0, Men=999999, I  
for(I=0   I<N    I++)
{if(Arreglo[I]>Max)
{Max=Arreglo[I]   }
if(Arreglo[I]<Men)
{Men=Arreglo[I]   }}
return Max-Men   }

void DesviacionEst(real  Arreglo[10], real  Desviacion[10], int N)
{ int I  
real  p=0  
for(I=0   I<N   I++)
{ p=p+Arreglo[I]/N  
Desviacion[I]=Arreglo[I]-p  
Print  , "Dato", (I+1), ":",  Desviacion[I],  }}

real  Variancia(real  Desviacion[10], int N)
{ int I  
real  suma=0  
for(I=0   I<N   I++)
{suma=suma+pow(Desviacion[I],2)  
}return suma/N   }



PROBLEMA 2
GARCIA GAETA FRNACISCO ARMANDO NO.CONTROL: 11211033
Diseñe un programa para calcular el sueldo de un grupo de cinco vendedores. El
sueldo de cada uno de ellos se paga con base en una comision sobre las ventas
realizadas y cada uno vende cinco articulos. Los datos a cosiderar son:
Nombre del vendedor y articulo, precio por unidad, y numero de vendedores.
no.Articulo  descripcion                     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 automoviles       $267.00       2%
5            despensa de treinta articulos    $175.00       2%

Pseudocodigo:
1.       Inicio
void DatosArreglo(char A[5][30]) 
void Precios(real   P[5]) 
void Sueldo(int NumV, int NumA, real   S[5], real   P[5], int cant) 

main()
{
char nom_vend[5][30], nom_art[5][30], sigue 
real   P[5], S[5]={0,0,0,0,0} 
int NumV, NumA, cant 
Print   "Introduce el nombre de los vendedores:",     
DatosArreglo(nom_vend) 
Print   "Introduce los nombres de los articulos:",     
DatosArreglo(nom_art) 
Print   "Introduce los precios de los articulos:",     
Precios(P) 
do
{ Print   "Numero de vendedor:" 
Read   NumV 
Print   "Numero de articulo:" 
Read   NumA 
Print   "Cantidad=" 
Read   cant 
Sueldo(NumV, NumA, S, P, cant) 
Print   "No.vendedor        ",  "Nombre          ",  "Sueldo",     
Print   NumV,  setw(18),  nom_vend[NumV-1],  setw(18),  S[NumV-1],     
Print   "Desea calcular otro sueldo:" 
Read   sigue 
}while(sigue=='s'||sigue=='S') 
getch()   }

void DatosArreglo(char A[5][30])
{ int I 
for(I=0    I<=4    I=I+1)
{Print   "Dato",  (I+1),  ":"  gets(A[I]) 
}}

void Precios(real   P[5])
{int I 
for(I=0    I<=4    I=I+1)
{Print   "Precio del articulo",  (I+1),  "=" 
Read   P[I] 
}}

void Sueldo(int NumV, int NumA, real   S[5], real   P[5], int cant)
{
switch(NumA)
{
case 1: S[NumV-1]=S[NumV-1]+P[NumA-1]*cant*0.05 
       break 
case 2: S[NumV-1]=S[NumV-1]+P[NumA-1]*cant*0.04 
       break 
case 3: S[NumV-1]=S[NumV-1]+P[NumA-1]*cant*0.02 
       break 
case 4: S[NumV-1]=S[NumV-1]+P[NumA-1]*cant*0.02 
       break 
case 5: S[NumV-1]=S[NumV-1]+P[NumA-1]*cant*0.02 
       break 
default: Print   "Error en el numero de articulo",     
}}





programa 3
FRANCISCO ARMANDO GARCIA GAETA NO.CONTROL: 11211033
Haga un programa que contabilice una cuenta de cheques . Al inicio se introduce
el nombre del cuentaviente y el saldo inicial. A continuacion se puede hacer
depositos y retiros. Cuando se deposite se incrementa el saldo y cuando se
retira se resta. Este programa ternima cuando ya no se desee hacer movieminentos,
se requiere impresion del sig informe:
ESTADO DE CUENTA:
CUENTAHABIENTE:
SALDO INICIAL:
MOVIMIENTO      DEPOSITO        RETIRO             SALDO
1                -----           ----               ---
2                -----           ----               ---
3                -----           ----               ---
.                -----           ----               ---
.                -----           ----               ---
.                -----           ----               ---

Pseudocodigo:
1.       Inicio.
void DatosIniciales(char clientes[3][30], real      saldoI[3])  
void Menu()  
void Operaciones(char cliente[3][30], int tipoOp, real      cant, int NumC, real      Saldos[5], int mov[20], real      saldoI[3], real      dep[20], real      ret[20])  
int main()
{char c[3][30], D  
real      sI[3], S[3], cant, d[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, r[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}  
int t, NumC, m[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}  
DatosIniciales(c, sI)  
do{PRINT    "Desea realizar algun movimiento en su cuneta (s,S o n):"  
READ   D  
}while(D =='n')  
do{Menu()  
PRINT    "Seleccione el tipo de movimiento que desea hacer:"  
READ   t  
Operaciones(c, t, cant, NumC, S, m, sI, d, r)  
PRINT    "Desea hacer otro movimiento:"  
READ   D  
}while(D=='s'||D=='S')  

Fin main      }

void DatosIniciales(char clientes[3][30], real      saldoI[3])
{ int I  
PRINT    "Iniciar datos de clientes",            
for(I=0     I<3     I++)
{ PRINT    "Nombre cliente ",     (I+1),     ":"  
gets(clientes[I])  
PRINT    "Saldo inicial="  
READ   saldoI[I]   }}

void Menu()
{
PRINT    "1)Depositar dinero.",            
PRINT    "2)Retirar diner.",            
PRINT    "3)Estado de cuenta.",            }

void Operaciones(char cliente[3][30], int tipoOp, real      cant, int NumC, real      Saldos[5], int mov[20], real      saldoI[3], real      dep[20], real      ret[20])
{
switch(tipoOp){
case 1:PRINT    "Deposito",            
PRINT    "Ingrese su numero de cliente:"  
READ   NumC  
PRINT    "Ingrese la cantidad que desa depositar:"  
READ   cant   
dep[NumC-1]=dep[NumC-1]+cant  
Saldos[NumC-1]=saldoI[NumC-1]+cant  
mov[NumC-1]=mov[NumC-1]+1  
break  
case 2: PRINT    "Retiro",            
PRINT    "Ingrese su numero de cliente:"  
READ   NumC  
PRINT    "Ingrese la cantidad que desa retirar:"  
READ   cant  
if(cant<=saldoI[NumC-1])
{Saldos[NumC-1]=saldoI[NumC-1]-cant   }
else{PRINT    "Usted no tiene esa cantidad de dinero en su cuenta",            }
mov[NumC-1]=mov[NumC-1]+1  
ret[NumC-1]=ret[NumC-1]+cant  
break  
case 3:PRINT    "Ingrese su numero de cliente",            
READ   NumC  
PRINT    "Estado de cuenta",            
PRINT    "Nombre del cuentabiente: ",     cliente[NumC-1],            
PRINT    "Saldo Inicial: ",     saldoI[NumC-1],            
PRINT    "Movimiento        ",     "Deposito          ",     "Retiro          ",     "Saldo",            
PRINT    "  ",     mov[NumC-1],     setw(19),     dep[NumC-1],     setw(19),     ret[NumC-1],     setw(17),     Saldos[NumC-1],            
break  
default:PRINT    "Ingrese un codigo de movimiento valido",            }}



No hay comentarios:

Publicar un comentario