viernes, 18 de marzo de 2011

Practica 7

Problema 1
Cierta oficina de seguros a reunido datos concernientes a todos los accidentes de transito ocurridos en el ultimo año para cada conductor involucrado en un accidente se debe contener los siguientes datos año de nacimiento de conductor, sexo, codigo de registro. Diseñe un programa para leer un conjunto de datos e imprimir los siguientes valores estadisticos de los conductores que sean visto envueltos en acciedentes 
a)% de conductores menores de 25
b)% de conductores de sexo femenino
c)% de conductores del sexo masculino con edades entre 18 y 25 años.


SEUDOCODIGO
char S,otro;
float pcm25,pcf,pcm;
int e,cr,cm25,cf,cm,c,a;
cm25=0;
cf=0;
cm=0;
c=0;
do
{

print "Anio de nacimiento:";
read e;
print "M/F"
read s

print "Clave de registro:"
read cr;
a=2011-e;
c=c+1;
switch(S)
{case'm':
if(a>=18 and a<=25)
cm=cm+1;
break;
case'f':
cf=cf+1;
break;
default:
}
if(a<25)
{cm25=cm25+1

}
print "Registrar otro 1)Si 2)No: ";
read otro;
}
while(otro=='1');
pcm25=(cm25*100)/c;
pcf=(cf*100)/c;
pcm=(cm*100)/c;

print "Porciento de conductores menores de 25 anios:"pcm25
print "Porciento de conductores femeninos:",pcf
print "Porciento de conductores de sexo masculino entre 18 y 25 anios:",pcm
fin 

C++







Problema 2
a)Diseñe un programa para calcular y tabular valores de la funcion f(x,y)=(x^2-y^2)/(x^2+y^2) para x=[2,8] y y=[6,21].

PSEUDOCODIGO

Inicio
 x,y,f real
for(x=2 to 8 step 2)
{
for(y=6;y<=21;y=y+3)
{f=(pow(x,2)-pow(y,2))/(pow(x,2)+pow(y,2));

print "X Y F"
print x," ",y," ",f
}
}

Fin


C++





















































b) Disieñe un programa para calcular el numero de puntos con coordenadas de valores enteros
que estan contenidos en la siguiente elipse x^2/16+y^2/25=1 en el intervalo de coordenadas que esntan limitadas por el je mayor y menor de la elipse -4<=x<=4 y -5<=y<=5.


SEUDOCODIGO

Inicio
int x,y,f;
for(x=-4 to 4 step 1)
{
for(y=-5 to 5 step 1)
{f=(pow(x,2)/16)+(pow(y,2)/25);

print "X Y F"
print x," ",y," ",f
}
}

Fin




C++                                                                                          

 *Nota en los ejecutables no es todo es algo por que estab muy largo solo puese el comienso y el final*






Problema 3

Una compañia utiliza aviones para fumigar las cosechas contra gran variedad de plagas la cantidad que la compañia carga a los granjeros depende de que es lo que desean fumigar y de cuantos acres desean que se fumigen, de acuerdo con la siguiente tabla
Tipo 1 Malas hierbas     $1 por acre
Tipo 2 Langostas           $2 por acre
Tipo 3 Gusanos             $3 por acre
Tipo 4 Todo lo anterior $5 por acre
si el area a fumigar es mayor a 1000 acres el granjero goza de 5% de descuento. Ademas, cualquier granjero cuya cuenta sobrepase los 1500dlls se hace acredor a un descuentoo de 10% sobre la cantidad que exceda los 1500.
Si se aplican los dos descuentos, el correspondiente a la superficie se aplica primero diseñe un programa que lea un conjunto de datos que contendra la siguiente informacion
Nombre del granjero  Tipo de fumigacion  y el numero de acres que se va a fumigar. Debe calcularse el costo del trabajo e imprimir el nombre del granjero seguido de su cuenta.



SEUDOCODIGO

Inicio
des1,des2,costo real
char n[10]

f,a entero
char o
do
{des1=0
des2=0

print "Nombre :"
read nprint "Tipo de fumigacion:"read  fprint "No. de acres:"
read a
switch(f)
{case 1: costo=a*1
break
case 2: costo=a*2
break
case 3: costo=a*3
break
case 4: costo=a*5
break
default:
}
if(a>100)
{des1=costo*0.05

costo=costo-des1
}
if(costo>1500)
{des2=(costo-1500)*0.10
costo=costo-des2
}

print nprint "Descuento 1:"print des1print "Descuento 2:"
print des2
print "Total:"
print costo
print "Otro comprador"
read o
}
while(o=='S'||o=='s')

Fin


C++












































Problema 4


Los reglamentos de pesca de cierta ciudad imponen un limite a la cantidad total permitida en kilos en un dia de pesca suponga que se desea llevar una computadora en la siguiente salida de pesca y que se necesita un programa que indique cuando se ha excedido dicho limite . Diseñe un programa que primero lea el limite diario en kg y despues lea los valores de entrada uno tras otro y enseguida lea e imprima un mensaje con el momento que el limite haya sido excedido un peso de cero indica el final de los datos y, despues de cada pescado haya sido registrado el programa debe imprimir el peso total que se lleva hasta el momento.

SEUDOCODIGO

Inicio
pt=0,limite,peso real
print "Limite de Pesca"
read limite;
while(pt<limite||peso!=0)
{print"Total de pesca:",pt

print "Peso de la presa:"
read peso
pt=pt+peso
if(pt>=limite)
{print "EXEDIO EL LIMITE"
}
}

Fin


C++




































































































Problema 5


A) Se utiliza una computadora para preparar el estado de cuenta de sus clientes. Para cada cliente se dispone un grupo de datos que contiene la siguiente información correspondiente a los depósitos y retiros  que corresponden al mes en curso. Los datos son el nombre del cliente. E l tipo de operación  y la cantidad respectiva.los retiros se anotaran con cantidades negativas. Un ejemplo típico de entrada es el siguiente
Nombre cliente  dirección  saldo del mes anterior
Diseñe un programa para producir el estado e cuenta de cada cliente.


SEUDOCODIGO
 Inicio
real total=0,tdep=0,tret=0,dep,ret,saldo,cr,cd,tcr=0,tcd=0,ct;
int opcion
char nombre[10]
char dir[10]
char opcion2,otro
do
{
print "Nombre del cliente"
read nombreprint "Direccion"
read dirprint "Saldo del mes anterior";
read saldo;
do
{
print "Tipo de operacion 1)Deposito 2)Retiro"
read opcion
switch(opcion)
{
case 1:
print "Deposito"
read dep
cd=dep*0.25
tcd=tcd+cd
tdep=tdep+dep

break
case 2:
print "Retiro"
read ret
cr=ret*0.25
tcr=tcr+cr
tret=tret+ret
break
default:
print "ERROR EN OPCION"
}
print "Otra operacion"
read opcion2
}
while(opcion2=='s'||opcion2=='S')
print "Scotia Rubio Inverlat, S.A. de C.V"print "Av. Siempre Viva No. "
print "Nombre del ciente:",nombre
 print "Tipo de operacion"print "1)Deposito:",tdepprint "2)Retiro:",tret
total=tdep-tret
total=total+saldo
ct=tcd+tcr
total=total-ct
print "Saldo del mes anterior:",saldo
print "Cargos totales por operaciones"print ctprint "Total:",total
print "Otro Cliente"
read otro
}
while(otro=='S'||otro=='s')

 Fin

C++






B) Considere que el cargo por servicio ya sea de retiro o deposito el 25%. 


SEUDOCODIGO


Inicio
real total=0,tdep=0,tret=0,dep,ret,saldo,cr,cd,tcr=0,tcd=0,ct;
int opcion
char nombre[10]
char dir[10]
char opcion2,otro
do
{
print "Nombre del cliente"
read nombreprint "Direccion"
read dirprint "Saldo del mes anterior";
read saldo;
do
{
print "Tipo de operacion 1)Deposito 2)Retiro"
read opcion
switch(opcion)
{
case 1:
print "Deposito"
read dep
cd=dep*0.25
tcd=tcd+cd
tdep=tdep+dep

break
case 2:
print "Retiro"
read ret
cr=ret*0.25
tcr=tcr+cr
tret=tret+ret
break
default:
print "ERROR EN OPCION"
}
print "Otra operacion"
read opcion2
}
while(opcion2=='s'||opcion2=='S')
print "Scotia Rubio Inverlat, S.A. de C.V"print "Av. Siempre Viva No. "
print "Nombre del ciente:",nombre
 print "Tipo de operacion"print "1)Deposito:",tdepprint "2)Retiro:",tret
total=tdep-tret
total=total+saldo
ct=tcd+tcr
total=total-ct
print "Saldo del mes anterior:",saldo
print "Cargos totales por operaciones"print ctprint "Total:",total
print "Otro Cliente"
read otro
}
while(otro=='S'||otro=='s')

 Fin

C++ 











Problema 6


Escriba un programa que calcule y despliegue los valores para y cuando y=x*z/x-z. El programa deberá calcular y para los valores de x en el rango de 1 a 5 y los de z entre 2 y 6 .la variable x debe controlar el ciclo y los incrementos para ambos son de 1. Asimismo el programa debe mostrar el mensaje función indefinida cuando z y x sean iguales.

SEUDOCODIGO

Inicio
 int x,z
float y
for(x=1 to 5 step 1)
{
for(z=2 to 6 step 1)
{if(z!=x)
{y=(x*2)/(x-z)
print  "x y  z"print x," ",y," ",z
}
else
{print "INDEFINIDO"

}
}
}

Fin


C++





Problema 7


Las coordenadas ‘’x’’ y ‘’y’’ como función del tiempo de un proyectil disparado a una velocidad y un ángulo  con respecto a la tierra están dados por x=vtcoseno ángulo y  y=vtseno ángulo utilizando esta información escriba un programa que despliegue una tabla de valores de xy para un proyectil disparado de 500ft/s a un ángulo de 22.8 (recuerde hacer la conversión en radianes)
La tabla deberá contener valores que correspondan a un intervalo de 0 a 10 segundos en incrementos de medio segundo
SEUDOCODIGO
Inicio
real x,y,v,a,ar,t;
v=500
a=22.8
for(t=0 to 10 step 0.5)
{ar=(22.8*180)/3.14
x=v*t*cos(ar)
y=v*t*sin(ar)
print "tiempo(s)   coordenadas"
print t" "x,y
}
Fin

C++



 
Problema 8

Los lenguajes de ensamble, para algunos microprocesadores no tienen operaciones de multiplicación.  Aunque en estos casos  existen algoritmos sofisticados para efectuar las multiplicaciones, un método sencillo consiste en multiplicar mediante una suma repetitiva, en este caso, la eficiencia del algoritmo se puede incrementas en gasa anidadas, por ejemplo para multiplicar  un numero por 12, primero se suma el numero 3 veces y entonces suma el resultado cuatro veces. Escriba un programa que multiplique 33,47 y 83 * 1001 utilizando un ciclo de tres gasas y luego despliegue el resultado.
SEUDOCODIGO


Inicio

int n1,n2, n3,total,x,n;
n=1;
while (n<=3)
{
switch(n)
{
case 1:x=33

total=0
for(n1=1 to 13 step 1)
{
for (n2=1 to 11 step 1)
{
for (n3=1 to 7 step 1)
{
total=total+x;
}
}
}

print x,"*1001=",total
n=n+1
break
case 2:x=47

total=0
for(n1=1 to 13 step 1)
{
for (n2=1 to 11 step 1)
{
for (n3=1 to 7 step 1)
{
total=total+x

}
}
}

print x,"*1001=",total
n=n+1
break
case 3:x=83

total=0
for(n1=1 to 13 step 1)
{
for (n2=1 to 11 step 1)
{
for (n3=1 to 7 step 1)
{
total=total+x
}
}
}

print x,"*1001=",total
n=n+1
break
}
}

Fin

C++



 






sábado, 12 de marzo de 2011

Tareas de Unidad II

Tarea 1

Modifique el programa 4.9 para que las raíces imaginarias sean calculadas y desplegadas cuando el discriminante sea negativo. En este caso las dos raíces de la ecuación son:

x1 = (-b / 2a) + sqrt [-(b2 - 4ac)] / 2a ( i )

x= (-b / 2a) - sqrt [ -(b2 - 4ac)] / 2a ( i )

donde i es el símbolo del numero imaginario para la raíz cuadrada de -1.

C++














Tarea 2

La multiplicación rusa se realiza un tanto diferente a lo que nosotros estamos acostumbrados. Pata multiplicar 2 números (multiplicador por multiplicando) se realiza el siguiente proceso:
se multiplica repetidamente por 2 el multiplicando y al mismo tiempo se divide entre dos al multiplicador hasta que el multiplicador tome el valor de 1, luego se suma todos los multiplicandos correspondientes a los multiplicadores impares, dicha suma es el resultado del producto de los 2 números por ejemplo:

numero 1=? ( 37 )
numero 2=? ( 12 )
los numero que se sumaron son: 12, 48, 384
el resultado de la multiplicación es 444.

C++


Tarea 3

Escriba un programa que lea un numero entero y un carácter. La salida debe ser un rombo dibujado con el carácter dado y de anchura máxima dada por el entero leido. El programa debe repetir el proceso, hasta que la anchura sea 0.

C++