lunes, 7 de mayo de 2012

practica 11. (problemas)

problema 1.
escribir un programa para escribir 10 numeros enteros en un arreglo llamado emax y encuentre el maximo valor introducido. siga el rastro del del maximo elemento del arreglo y del numero del indice para el maximo. Despues de desplegar los dos numeros, imprima estos dos menajes:

el valor maximo es:
Este es el elemento numero____en la lista de los numeros.
haga que el programa despliegue los valores correctos en el lugar del subrayado en los mensajes.

b)Haga que el programa localice el menor de los datos introducidos.



P-seudo codigo.

1.- Inicio
void introducedatos(int A[10])
{int i=0
for(i=0 to i<=9 step i++)
{Print "Dato " ,(i+1), "= "
Read A[i]}
Print endl}

int encuentramayor(int A[10])
{int i=0, mayor=A[0],pos=0
for(i=0 to i<=9 step i++)
{if (A[i]>mayor)
{pos=i
mayor=A[i]}}
return pos}

int encuentramenor(int A[10])
{int i=0,menor=A[0],pos=0
for(i=1 to i<=9 step i++)
{if (A[i]<menor)
{pos=i
menor=A[i]}}
return pos}

void desplegardatos(int A[10])
{
int i=0
Print "Lista de numeros"
for(i=0 to i<=9 step i++)
{ Print "\t" ,A[i]}
}

void desplegarmsjs(int pos1, int pos2, int A[10])
{ Print endl
Print "El valor maximo es: " ,A[pos1]
Print "Este es el elemento numero " ,(pos1+1), " en la lista de numeros"
Print "El valor minimo es: " ,A[pos2]
Print "Este es el elemento numero " ,(pos2+1), " en la lista de numeros"}

1.- Inicio de programa
void main()
{int emax[10],pos1=0,pos2=0
introducedatos(emax)
pos1=encuentramayor(emax)
pos2=encuentramenor(emax)
desplegardatos(emax)
desplegarmsjs(pos1,pos2,emax)
fin.

problema 2.
Escriba un programa para introducir los siguientes numeros enteros e un arreglo llamado calificaciones: 89, 95, 72, 83, 99, 54, 86, 75, 92, 73, 79, 75, 82, 77, 70. Realice un programa con as siguientes funciones:
void introducirvalores (int calf[15]), int sumavalores (int calf[15]), int promedio (int calf[15]), int desviacion (int calf[15], int desv[15]), int variancia (int desv[15]), void desplegar (int calf[15], int desv[15]).



P-seudo codigo.
1.- Inicio
void valores(int calif[15])
{int T
Print "Introduce calificaciones"
for(T=0 to T<=14 step T++)
{Print "Calificacion " ,(T+1), "= "
Read calif[T]}
Print endl}

int sumvalores(int calif[15])
{int sum=0, T=0
for(T=0 to T<=14 step T++)
{sum=sum+calif[T]}
return sum}

int prom(int calif[15])
{int resultado=0
resultado=sumvalores(calif)
return resultado/15}

void desviacion(int calif[15],int desv[15])
{int promedio=0, T=0
promedio=prom(calif)
for(T=0 to T<=14 step T++)
{desv[T]=calif[T]-promedio}}

int variacion(int desv[15])
{int suma=0,T=0
for(T=0 to T<=14 step T++)
{suma=suma+pow(desv[T],2)}
return suma/15}

void desplegar(int calif[15], int desv[15])
{int T=0
Print "No.\t\tCalificaciones\tDesviaciones”
for(T=0 to T<=14 step T++)
{ Print (T+1), "\t\t" ,calif[T], "\t\t", desv[T]}
Print endl
Print "La variacion es= ", variacion(desv)
Print "Promedio= ", prom(calif)}

1.- Inicio de programa
void main ()
{int calif[15]
int desv[15]
valores(calif)
desviacion(calif,desv)
desplegar(calif,desv)
fin.


problema 3.
Escriba un programa que almacene los siguientes datos en un arreglo llamado resistencia: 16, 27, 39, 56 y 81. El programa tambien debe crear dos arreglos llamados corriente y potencia, los cuales eberan sser capaces de almacenar cinco numeros en doble presicion. Haga que el programa acepte cinco numeros introducidos por el usuario en el arreglo corriente al ejecutar el programa, el cual debe almacenar en el arreglo potencia el producto de los valores correspondientes al cuadrado del arreglo corriente y del arreglo resistencia.



P-seudo codigo.
1.- Inicio
void datosArreglo(double C[5])
{int t
for(t=0 to t<5 step t++)
{Print "Dato", (t+1), "= "
Read C[t]}
Print endl}

void calcularPot(double R[5], double C[5], double P[5])
{int t
for(t=0 to t<5 step t++)
{P[t]= R[t]*pow(C[t],2)}}

double totalPot(double P[5])
{int t,suma=0
for(t=0 to t<5 step t++)
{suma=suma+P[t]}
return suma}

void desplegar(double R[5], double C[5], double P[5])
{int t
Print “Resistencia     Corriente     Potencia”
Print "---------------------------------------------"
for(t=0 to t<5 step t++)
{ Print R[t], "\t\t", C[t], "\t\t" ,P[t]}
Print endl
Print "Total=                          ", totalPot(P)
Print "\n\n"}

void desres(double r[5])
{int t
for(t=0 to t<5 step t++)
{ Print "Resistencia " ,(t+1), "= "
Read r[t]}
Print endl}

void descorr(double c[5])
{int t
for(t=0 to t<5 step t++)
{ Print "Corriente " ,(t+1), "= "
Read c[t]}
Print endl}

void desplegar2(double r[5], double c[5], double v[5])
{int t
Print "Resistencia     Corriente     Potencia"
Print "---------------------------------------------"
for(t=0 to t<5 step t++)
{ Print r[t], "\t\t", c[t], "\t\t" ,v[t]}}

void voltios(double r[5], double c[5], double v[5])
{int t
for(t=0 to t<5 step t++)
{v[t]=r[t]*c[t]}} 

1.- Inicio de programa
void main()
{double R[5]={16,27,39,56,81}
double C[5],P[5],r[5],c[5],v[5]
datosArreglo(C)
calcularPot(R,C,P)
desplegar(R,C,P)
desres(r)
descorr(c)
voltios(r,c,v)
desplegar2(r,c,v)
fin.



b) haga el mismo programa pero esta vez para calcular voltaje en vez de potencia.



P-seudo codigo.
inicio.
void datosarreglo (double c[5])
void calcularvoltios (double r[5], double c[5], double v[5])
 double calculartotalvoltios(double v[5])
void desplegar (double r[5], double c[5], double v[5])

int main()
inicio del programa.
double resistencia [5]={16,27,39,56,81
double corriente[5],voltios[5]
datosarreglo(corriente)
calcularvoltios(resistencia,corriente,voltios)
desplegar(resistencia,corriente,voltios)


void datosarreglo(double c[5])
{int I;
print"introduce los siguientes datos"
for(I=0;I<5;I++)
{print"dato".(I+1),"=?",c[I]}}

void calcularvoltios (double r[5], double c[5], double v[5])
{int I
for(I=0;I<5;I++)
{v[I]= r[I]*c[I]}}

double calculartotalvoltios(double v[5])
{double suma=0.0
int I
for(I=0;I<5;I++)
{suma=suma + v[I]}
return suma}

void desplegar(double r[5], double c[5], double v[5])
{int I
print"   resistencia       corriente              voltaje    "
print"______________________________________________________ "
print"                                                       "
for(I=0;I<5;I++)
{print"\t",r[I],"\t\t",c[I],"\t\t\t",v[I]}
print"                                                       "
print"total=\t\t\t\t\t\t ",calculartotalvoltios(v)}



problema 4.
Considere la venta de pizzas y almacene en un arreglo de caracteres el nombre de la pizza y su precio respectivo en una arreglo de precios. Calcule la orden de los clientes y la venta total de cada tipo y la venta general del dia.



P-seudo codigo.
int menupizza ()
{int opcion
print"             Pizzas El chile! :)            "
print"                                                  "
print"  -#         Pizzas              Precios-"
print"   "
print"   1    Peperoni             $70.00 "
print"   2    Hawaiana           $90.00 "
print"   3    Mexicana           $95.00 "
print"   4    Atun                  $75.50 "
print"   5    Anchoas            $80.00 "
print"       "
print" Precione 0 si desea finalizar el pedido. "
print"   "
print" pizza deceada: ",opcion
return opcion}

void totalordencliente(float preciosPizza[5], int totalesPizza[5])
{real totalorden=0
int c1=0, c2=0, c3=0, c4=0, c5=0,Tc1=0,Tc2=0, Tc3=0, Tc4=0, Tc5=0
int tipopizza
int cliente=1
real total
do
{clrscr()
tipopizza=menupizza()
switch (tipopizza)
{case 1:print"Cantidad de pizzas de Peperoni=? ",c1
Tc1 +=c1
totalorden +=c1*preciosPizza[0]
totalesPizza[0] +=c1
break;
case 2:print"Cantidad de pizzas Hawaianas=? ",c2
Tc2 +=c2
totalorden +=c2*preciosPizza[1]
totalesPizza[1] +=c2
break;
case 3:print"Cantidad de pizzas Mexicanas=? ",c3
Tc3 +=c3
totalorden +=c3*preciosPizza[2]
totalesPizza[2] +=c3
break;
case 4:print"Cantidad de pizza de Atun=? ",c4
Tc4 +=c4
totalorden +=c4*preciosPizza[3]
totalesPizza[3] +=c4
break;
case 5:print"Cantidad de pizzas de Anchoas=? ",c5
Tc5 +=c5
totalorden +=c5*preciosPizza[4]
totalesPizza[4] +=c5
break;
case 0: print"  pizzas el chile! :)"print
print"    ticket de compra"
if(Tc1>0)
{print,Tc1" pizzas de peperoni: ",(Tc1*70.00)}
if(Tc2>0)
{cout<<Tc2<<" pizzas Hawaianas: "<<(Tc2*90.00)<<endl;}
if(Tc3>0)
{print,Tc3," pizzas Mexicanas: "(Tc3*85.00)}
if(Tc4>0)
{print,Tc4," pizzas de Atun: "(Tc4*75.50)}
if(Tc5>0)
{print,Tc5," pizzas de Anchoas: ",(Tc5*80.00)}
total=((Tc1*70.00)+(Tc2*90.00)+(Tc3*85.00)+(Tc4*75.50)+(Tc2*80.00))
print"Precio total de la compra = $",total
print"    "print
print"Gracias por su compra, lo esperamos pronto."
break;
default: print"No se encontro la opcion de la pizza deseada."}
cliente++}
while(tipopizza!=0);}

void desplegartotalesPizza(int totalesPizza[5],float preciosPizza[5], char nombres[5][20])
{int I
real totales=0
print"Reporte de ventas"
for(I=0;I<4;I++)
{print,nombres[I],"\t",totalesPizza[I],"\t"preciosPizza[I],
totales=preciosPizza[I]*totalesPizza[I]}
print"Total del dia $",totales}

int main()
{char sigue
int totalesPizza[5]={0,0,0,0,0}
char nombrePizza[5][20]={{"Peperoni pizza"},{"Hawaiana pizza"},{"Mexicana pizza"},{"Atun pizza"},{"Anchoas pizza"}}
real preciosPizza[5]={70.00,90.00,85.00,75.50,80.00}
do
{totalordencliente(preciosPizza, totalesPizza)
print"Desea otra orden (S/N): ",sigue}
while(sigue=='s' || sigue=='S');
desplegartotalesPizza(totalesPizza,preciosPizza,nombrePizza)


Tutorial con funciones.















No hay comentarios:

Publicar un comentario