Practica No. 7

Problema No. 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.

Solucion

Inicio
double d,g,anio,b,codigo
float a1,cf,c1,cm,c
char sexo,opcion
cm=0
c=0
cf=0
c1=0
do
{
print  "Anio de nacimiento=? "
read anio
print "sexo (F/M)"
read otro
print "Codigo de registro=?"
read codigo
a1=2011-anio
c=c+1
if (a1<25)
{
c1=c1+1
}
switch(sexo)
{
case 'f':
case 'F':
cf=cf+1
break;

case 'm':
case 'M':
if (a1>=18 and a1<=25)
{
cm=cm+1
}
break;
}
print "registrar a otro?"
read opcion
}
while(opcion=='s' or opcion=='S')
b=(c1/c)*100
d=(cf/c)*100
g=(cm/c)*100
print "a) Porciento de conductores menores de 25 ",b,"%"
print "b) Porciento de mujeres ",d,"%"
print "c) Porciento de hombres entre 18 y 25 anios ",g,"%"
fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
void main ()
{
double d,g,anio,b,codigo;
float a1,cf,c1,cm,c;
char sexo,opcion;
cm=0;
c=0;
cf=0;
c1=0;
do
{
cout<<"Anio de nacimiento=?";
cin>>anio;
cout<<"sexo (F/M)";
cin>>sexo;
cout<<"Codigo de registro=?";
cin>>codigo;
a1=2011-anio;
c=c+1;
if (a1<25)
{
c1=c1+1;
}
switch(sexo)
{
case 'f':
case 'F':
cf=cf+1;
break;
case 'm':
case 'M':
if (a1>=18 && a1<=25)
{
cm=cm+1;
}
break;
}
cout<<"registrar a otro?";
cin>>opcion;
}
while(opcion=='s' || opcion=='S');
b=(c1/c)*100;
d=(cf/c)*100;
g=(cm/c)*100;
cout<<"a) Porciento de conductores menores de 25 "<<b<<"%"<<endl;
cout<<"b) Porciento de mujeres "<<d<<"%"<<endl;
cout<<"c) Porciento de hombres entre 18 y 25 anios "<<g<<"%"<<endl;
getch();
}

Programa Ejecutado



Problema No. 2
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,4,6,8 y y=6,9,12,15,18,21.

Solucion

double x,y,f,z
print "Valores de las funciones"
print "x"," ","y"," ","f"
for (x=2 to 8 step x=x+2)
{
for(y=6 to 21 step y=y+3)
{
f=(pow(x,2)-pow(y,2))/(pow(x,2)+pow(y,2))
print x," ",y," ",f
}
}
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main ()
{
double x,y,f,z;
cout<<"Valores de las Funciones"<<endl;
cout<<"x"<<"     "<<"y"<<"     "<<"f"<<endl;
for (x=2;x<=8;x=x+2)
{
for(y=6;y<=21;y=y+3)
{
f=(pow(x,2)-pow(y,2))/(pow(x,2)+pow(y,2));
cout<<x<<"     "<<y<<"     "<<f<<endl;
}
}
getch();
}

Programa Ejecutado



Problema No. 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 prim ero 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.

Solucion

Inicio
char otro,nombre[10]
float costo
int t,n
do
{
print "Nombre del granjero?"
read nombre
do
{
print "Tipo1 Malas Hierbas $1 por acre"<<endl
print "Tipo2 Langostas $2 por acre"<<endl
print"Tipo3 Gusanos $3 por acre"<<endl
print "Tipo4 Todo lo anterior $5 por acre"<<endl
read t
switch (t)
{
case 1:
print "Cuantos acres desea fumigar?"
read n
costo=n
break;
case 2:
print "Cuantos acres desea fumigar?"
read n
costo=n*2
break;
case 3:
print "Cuantos acres desea fumigar?"
read n
costo=n*3
break;
case 4:
print "Cuantos acres desea fumigar?"<<endl
read n
costo=n*5
break;
default:
print "Tipo de fumigacion incorrecta"
break;
}
}
while(t!=1 and t!=2 and t!=3 and t!=4);
if(n>1000)
{
costo=costo*.95
}
if(costo>1500)
costo=costo*.90
print "Nombre    Total"
print nombre,"    ",costo
print "otro"
read otro
}
while(otro=='s' and otro=='S')
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main ()
{
char otro,nombre[10];
float costo;
int t,n;
do
{
cout<<"Nombre del granjero?"<<endl;
cin>>nombre;
do
{
cout<<"Tipo1 Malas Hierbas $1 por acre"<<endl;
cout<<"Tipo2 Langostas $2 por acre"<<endl;
cout<<"Tipo3 Gusanos $3 por acre"<<endl;
cout<<"Tipo4 Todo lo anterior $5 por acre"<<endl;
cin>>t;
switch (t)
{
case 1:
cout<<"Cuantos acres deseas fumigar?"<<endl;
cin>>n;
costo=n;
break;
case 2:
cout<<"Cuantos acres deseas fumigar?"<<endl;
cin>>n;
costo=n*2;
break;
case 3:
cout<<"Cuantos acres deseas fumigar?"<<endl;
cin>>n;
costo=n*3;
break;
case 4:
cout<<"Cuantos acres deseas fumigar?"<<endl;
cin>>n;
costo=n*5;
break;
default:
cout<<"Tipo de fumigacion incorrecta"<<endl;
break;
}
}
while(t!=1 && t!=2 && t!=3 && t!=4);
if(n>1000)
{
costo=costo*.95;
}
if(costo>1500)
costo=costo*.90;
cout<<"Nombre    Total"<<endl;
cout<<nombre<<"    "<<costo<<endl;
cout<<"otro"<<endl;
cin>>otro;
}
while(otro=='s' && otro=='S');
getch();
}

Programa Ejecutado

Problema No. 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.

Solucion

Inicio
int t,l,p
t=0
print "Limite diario=?"
read l
do
{
print "peso del pescado"
read p
t=t+p
print "peso acumulado",t
}
while (p!=0 and t<l);
if(t>=l)
print "Excedio el valor de peso"
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
void main ()
{
int t,l,p;
t=0;
cout<<"Limite diario=?"<<endl;
cin>>l;
do
{
cout<<"peso del pescado"<<endl;
cin>>p;
t=t+p;
cout<<"peso acumulado"<<t<<endl;
}
while (p!=0 && t<l);
if(t>=l)
cout<<"Excedio el valor de peso"<<endl;
getch();
}

Programa Ejecutado





Problema No. 5

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.

a)

Solucion

Inicio
char dc[10],nc[10],nombre[10],direccion[10],o
int total,b,c,x,a,saldo1,deposito,retiro
c=0
b=0
x=0
do
{
total=0
print "nombre del cliente"
read nombre
print "direccion"
read direccion
print "saldo anterior"
read saldo1
print "Nombre de la compañia=?"
read nc
print "direccion e la compañia=?"
read dc
print "Nombre del cliente",nombre
print "direccion",direccion
print "saldo anterior",saldo1
do
{
print "tipo de operacion"
print "1)Deposito."
print "2)retiro."
read a
switch(a)
{
case 1:
print "Cuanto=?"
read x
b=b+x
print "Deposito total ", b
break;
case 2:
print "Cuanto=?"
read x
c=c+x
print "retiro total ", c
break;
default:
print "Error"
break;
}
total=total+x
print "Otro=?"
read o
}
while(o=='s' ||o=='S')
print "Nombre de la compañia ", nc
print "Direccion de la compañia ", dc
print "Nombre del cliente ", nombre
print "Tipo de operacion 1   deposito",b
print "Tipo de operacion 2    retiro ",c
print "Total de operaciones ",total
print "Saldo Anterior",saldo1
print "total del mes", total+saldo1
print "Otro cliente?"
read o
}
while(o=='s' ||o=='S')
Fin


Codigo de Programacion

#include <iostream.h>
#include <conio.h>
void main ()
{
char dc[10],nc[10],nombre[10],direccion[10],o;
int total,b,c,x,a,saldo,deposito,retiro;
c=0;
b=0;
x=0;
do
{
total=0;
cout<<"nombre del cliente"<<endl;
cin>>nombre;
cout<<"direccion"<<endl;
cin>>direccion;
cout<<"saldo anterior"<<endl;
cin>>saldo;
cout<<"Nombre de la compania=?"<<endl;
cin>>nc;
cout<<"direccion e la compania=?"<<endl;
cin>>dc;
cout<<"Nombre del cliente"<< nombre <<endl;
cout<<"direccion"<< direccion <<endl;
cout<<"saldo anterior"<< saldo <<endl;
do
{
cout<<"tipo de operacion"<<endl;
cout<<"1)Deposito."<<endl;
cout<<"2)Retiro."<<endl;
cin>>a;
switch(a)
{
case 1:
cout<<"Cuanto=?"<<endl;
cin>>x;
b=b+x;
cout<<"Deposito total "<<b<<endl;
break;
case 2:
cout<<"Cuanto=?"<<endl;
cin>>x;
c=c+x;
cout<<"Retiro total "<<c<<endl;
break;
default:
cout<<"Error";
break;
}
total=total+x;
cout<<"Otro=? "<<endl;
cin>>o;
}
while(o=='s' ||o=='S');
cout<<"Nombre de la compania "<< nc <<endl;
cout<<"Direccion de la compania "<< dc <<endl;
cout<<"Nombre del cliente "<< nombre <<endl;
cout<<"Tipo de operacion 1 "<<" deposito "<<b<<endl;
cout<<"Tipo de operacion 2 "<<" retiro "<<c<<endl;
cout<<"Total de operaciones "<< total <<endl;
cout<<"Saldo Anterior"<< saldo <<endl;
cout<<"total del mes"<< total+saldo <<endl;
cout<<"Otro cliente?"<<endl;
cin>>o;
}
while(o=='s' ||o=='S');
getch();
}

Programa Ejecutado

b)

Solucion

Inicio

char dc[10],nc[10],nombre[10],direccion[10],o
int total,b,c,x,a,saldo1,deposito,retiro
c=0
b=0
x=0
do
{
total=0
print "nombre del cliente"
read nombre
print "direccion"
read direccion
print "saldo anterior"
read saldo1
print "Nombre de la compañia=?"
read nc
print "direccion e la compañia=?"
read dc
print "Nombre del cliente",nombre
print "direccion",direccion
print "saldo anterior",saldo1
do
{
print "tipo de operacion"
print "1)Deposito."
print "2)retiro."
read a
switch(a)
{
case 1:
print "Cuanto=?"
read x
b=b+x
print "Deposito total ", b
break;
case 2:
print "Cuanto=?"
read x
x=x-25
c=c+x
print "retiro total ", c
break;
default:
print "Error"
break;
}
total=total+x
print "Otro=?"
read o
}
while(o=='s' ||o=='S')
h=total+saldo1
if(h>1000)
h=h*.99
print "Nombre de la compañia ", nc
print "Direccion de la compañia ", dc
print "Nombre del cliente ", nombre
print "Tipo de operacion 1   deposito",b
print "Tipo de operacion 2    retiro ",c
print "Total de operaciones ",total
print "Saldo Anterior",saldo1
print "total del mes", total+saldo1
print "Otro cliente?"
read o
}
while(o=='s' ||o=='S')
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main ()
{
char nombre[10],direccion[10],o;
int total,b,c,x,a,saldo1,deposito,retiro;
float h;
c=0;
b=0;
x=0;
do
{
total=0;
cout<<"nombre del cliente"<<endl;
cin>>nombre;
cout<<"direccion"<<endl;
cin>>direccion;
cout<<"saldo anterior"<<endl;
cin>>saldo1;
cout<<"direccion de la compañia=?"<<endl;
cout<<"Nombre del cliente"<<nombre<<endl;
cout<<"direccion"<<direccion<<endl;
cout<<"saldo anterior"<<saldo1<<endl;
do
{
cout<<"tipo de operacion"<<endl;
cout<<"1)Deposito."<<endl;
cout<<"2)retiro."<<endl;
cin>>a;
switch(a)
{
case 1:
cout<<"Cuanto=?"<<endl;
cin>>x;
b=b+x;
cout<<"Deposito total "<<b<<endl;
break;
case 2:
cout<<"Cuanto=?"<<endl;
cin>>x;
x=x-25;
c=c+x;
cout<<"retiro total "<<c<<endl;
break;
default:
cout<<"Error";
break;
}
total=total+x;
cout<<"Otro=?"<<endl;
cin>>o;
}
while(o=='s' ||o=='S');
h=total+saldo1;
if(h>1000)
h=h*.99;
cout<<"Nombre de la compañia lala "<<endl;
cout<<"Direccion de la compañia Otay "<<endl;
cout<<"Nombre del cliente "<<nombre<<endl;
cout<<"Tipo de operacion 1 "<<"deposito"<<b<<endl;
cout<<"Tipo de operacion 2 "<<"retiro "<<c<<endl;
cout<<"Total de operaciones "<<total<<endl;
cout<<"Saldo Anterior"<<saldo1<<endl;
cout<<"total del mes"<<h<<endl;

cout<<"Otro cliente?"<<endl;
cin>>o;
}
while(o=='s' ||o=='S');
getch();
}


Programa Ejecutado



Problema No. 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.

Solucion

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



Codigo de Programacion

#include <iostream.h>
#include <conio.h>
void main ()
{
int z,x;
float y;
cout<<"x  z  y"<<endl;
for(x=1;x<=5;x++)
{
for (z=2;z<=6;z++)
{
if (z!=x)
{
y=(x*z)/(x-z);
cout<<x<<" "<<z<<" "<<y<<endl;
}
else
{
cout<<x<<" "<<z<<" y indefinido"<<endl;
}
}
}
getch();
}


Programa Ejecutado

Problema No. 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 500ps 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 19 segundos en incrementos de medio segundo

Solucion

Inicio
int v
double x,y
double a,t
v=500
a=(22.8*3.1416)/180
print "t           x              y"
t=0
for(t=0 to 10 step t=t+0.5)
{
x=v*t*cos(a)
y=v*t*sin(a)
print t, "        ", x, "        ", y
}
Fin


Codigo de Programacion

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int v;
double x,y;
double a,t;
v=500;
a=(22.8*3.1416)/180;
cout<<"t           x              y"<<endl;
t=0;
for(t=0;t<10;t=t+0.5)
{
x=v*t*cos(a);
y=v*t*sin(a);
cout<<t<<"        "<<x<<"        "<<y<<endl;
}
getch();
}

Programa Ejecutado




Problema No. 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.

Solucion

Inicio
int x,y,z,h,a,t,n
t=0
do
{
a=0
h=0
t=t+1
switch (t)
{
case 1:
n=33
break
case 2:
n=47
break
case 3:
n=83
break
}
for(x=0 to 11 step x=x+1)
{
for(y=0 to 7 step y=y+1)
{
for(z=0 to13step z=z+1)
{
h=n
a=a+h
}
}
}
print n, "*1001= ", a
}
while(t<3)
Fin

Codigo de Programacion

#include <iostream.h>
#include <conio.h>
void main ()
{
int x,y,z,h,a,t,n;
t=0;
do
{
a=0;
h=0;
t=t+1;
switch (t)
{
case 1:
n=33;
break;
case 2:
n=47;
break;
case 3:
n=83;
break;
}
for(x=0;x<11;x++)
{
for(y=0;y<7;y++)
{
for(z=0;z<13;z++)
{
h=n;
a=a+h;
}
}
}
cout<<n<<"*1001= "<<a<<endl;
}
while(t<3);
getch();
}


Programa Ejecutado