viernes, 18 de marzo de 2011

Práctica 7

Práctica 7. Problema 1.

Descripción

Cierta oficina de seguros ha reunido datos concernientes a todos los accidentes de tránsito ocurridos en el último año para cada conductor involucrado en un accidente se debe contener los siguientes datos año de nacimiento de conductor, sexo, código de registro. Diseñe un programa para leer un conjunto de datos e imprimir los siguientes valores estadísticos de los conductores que se han visto envueltos en accidentes.

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.



Pseudocódigo

inicio
c25,cm,cf real
a1 entero
codigo entero
condm25=0   real
conductoresf=0   real
conductoresm=0   real
contador=0,anio   real
otro,s1  caracter
do
{
print "Anio de nacimiento del conductor: "
read a1
print "Sexo (femenino (f) o masculino (m)): "
read s1
print "Codigo de registro: "
read codigo
anio=2011-a1
contador=contador+1
if (anio<25)
{
condm25=condm25+1
}
switch(s1)
{
case 'f':
case 'F':
conductoresf=conductoresf+1
break
case 'm':
case 'M':
if (anio>=18 and anio<=25)
conductoresm=conductoresm+1
break;
}
print "Registrar otro (s/n): "
read otro
}
while (otro=='s' or otro=='S')
c25=(condm25*100)/contador
cm=(conductoresm*100)/contador
cf=(conductoresf*100)/contador
print "Porcentaje de conductores menores de 25 anios: "," %"
print "Porcentaje de conductores femeninos: ",cf," %"
print "Porcentaje de conductores masculinos entre 18 y 25 anios: ",cm," %"
fin

Codificación  en C++

#include <iostream.h>
#include <conio.h>
void main()
{
float c25,cm,cf;
int a1;
int codigo;
float condm25=0;
float conductoresf=0;
float conductoresm=0;
float contador=0,anio;
char otro,s1;
do
{
cout<<"Anio de nacimiento del conductor: ";
cin>>a1;
cout<<"Sexo (femenino (f) o masculino (m)): ";
cin>>s1;
cout<<"Codigo de registro: ";
cin>>codigo;
anio=2011-a1;
contador=contador+1;
if (anio<25)
{
condm25=condm25+1;
}
switch(s1)
{
case 'f':
case 'F':
conductoresf=conductoresf+1;
break;
case 'm':
case 'M':
if (anio>=18 && anio<=25)
conductoresm=conductoresm+1;
break;
}
cout<<endl<<"Registrar otro (s/n): ";
cin>>otro;
}
while (otro=='s' || otro=='S');
c25=(condm25*100)/contador;
cm=(conductoresm*100)/contador;
cf=(conductoresf*100)/contador;
cout<<endl<<"Porcentaje de conductores menores de 25 anios: "<<c25<<endl;
cout<<"Porcentaje de conductores femeninos: "<<cf<<endl;
cout<<"Porcentaje de conductores masculinos entre 18 y 25 anios: "<<cm<<endl;
getch();
}





Corrida C++





Práctica 7. Problema 2.
Descripción


a) Diseñe un programa para calcular y tabular valores de la función
F (x, y)=(x^2-y^2)/(x^2+y^2)
Para:
x=2, 4, 6, 8
y=6, 9, 12, 15, 18, 21

 b)  Diseñe un programa que calcule el número de puntos con coordenadas de valores enteros que están contenidos en la siguiente elipse:
X2/16 +y2/25 en el intervalo de coordenadas que está limitado por el eje mayor y menor de la elipse 
-4<=x<=4  -5<=y<=5

                              Pseudocódigo

inicio
x,y,f,e   float
print "A)"
print "\tx\ty\tf"
for(x=2 x to 8 step x=x+2)
{
for(y=6 y to 21 step y=y+3)
{
f=(pow(x,2)-pow(y,2))/(pow(x,2)+pow(y,2))
print "\t",x,"\t",y,"\t",f
}
}
print "B)"
print "x   y  e"
for(x=-4 x to 4 step x=x+1)
{
for(y=-5 y to 5 step y=y+1)
{
e=(pow(x,2)/16)+(pow(y,2)/25)
if(e==1 || e==2 || e==0)
{
printx,"  ",y,"  ",e
}
}
}
fin


Codificación  en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
float x,y,f,e;
cout<<"A)"<<endl<<endl;
cout<<"\tx\ty\tf"<<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<<endl<<"\t"<<x<<"\t"<<y<<"\t"<<f;
}
}
cout<<endl<<endl<<"B)";
cout<<endl<<endl<<"x\t\ty\t\te"<<endl;
for(x=-4;x<=4;x=x+1)
{
for(y=-5;y<=5;y=y+1)
{
e=(pow(x,2)/16)+(pow(y,2)/25);
if(e==1 || e==2 || e==0)
{
cout<<x<<"\t\t"<<y<<"\t\t"<<e<<endl;
}
}
}
getch();
}















Corrida C++





Práctica 7. Problema 3.


Descripción

Una compañía utiliza aviones para fumigar las cosechas contra gran variedad de plagas. La cantidad que la compañía carga a los granjeros depende de que es lo que desean fumigar y de cuantos acres desean que se fumiguen, 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 área a fumigar es mayor a 1000 acres el granjero goza de 5% de descuento. Además, cualquier granjero cuya cuenta sobrepase los 1500dlls se hace acreedor a un descuento 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 contendrá la siguiente información:
Nombre del granjero, tipo de fumigación  y el número de acres que se va a fumigar. Debe calcularse el costo del trabajo e imprimir el nombre del granjero seguido de su cuenta.



Pseudocódigo

inicio
S,s,otro,nombre[100]  caracter
tipo  entero
num   entero
descuento1   real
descuento2   real
costo   real
do
{
descuento1=0
descuento2=0
print "Nombre del granjero: "
read nombre
print "Tipo de fumigacion:"
print "1)Malas hierbas"
print "2)Langostas"
print "3)Gusanos"
print "4)todos"
print "Ingrese el tipo de fumigacion: "
read tipo
print "Numero de acres: "
read num
switch(tipo)
{
case 1:
costo=num*1
break
case 2:
costo=num*2
break
case 3:
costo=num*3
break
case 4:
costo=num*5
break
}
{
if (num>1000)
descuento1=costo*0.05
}
if (costo>1500)
{
descuento2=(costo-1500)*0.10
}
print "Nombre del granjero: ",nombre
print "Descuento 1: $",descuento1
print "Descuento 2: $",descuento2
costo=costo-descuento1-descuento2
print "      Total: $",costo
print "Desea registrar otro granjero(s/n): "
read otro
}
while (otro=='S' or otro=='s')
fin


Codificación  en C++

#include <iostream.h>
#include <conio.h>
void main()
{
char S,s,otro,nombre[100];
int tipo;
int num;
float descuento1;
float descuento2;
float costo;
do
{
descuento1=0;
descuento2=0;
cout<<endl<<"Nombre del granjero: "<<endl;
cin>>nombre;
cout<<endl<<"Tipo de fumigacion:"<<endl;
cout<<"1)Malas hierbas"<<endl;
cout<<"2)Langostas"<<endl;
cout<<"3)Gusanos"<<endl;
cout<<"4)todos"<<endl;
cout<<endl<<"Ingrese el tipo de fumigacion: ";
cin>>tipo;
cout<<"Numero de acres: ";
cin>>num;
switch(tipo)
{
case 1:
costo=num*1;
break;
case 2:
costo=num*2;
break;
case 3:
costo=num*3;
break;
case 4:
costo=num*5;
break;
}
{
if (num>1000)
descuento1=costo*0.05;
}
if (costo>1500)
{
descuento2=(costo-1500)*0.10;
}
cout<<endl<<"Nombre del granjero: "<<nombre<<endl;
cout<<"Descuento 1: $"<<descuento1<<endl;
cout<<"Descuento 2: $"<<descuento2<<endl;
costo=costo-descuento1-descuento2;
cout<<"\t\t\tTotal: $"<<costo<<endl;
cout<<endl<<"Desea registrar otro granjero(s/n): ";
cin>>otro;
}
while (otro=='S' || otro=='s');
getch();
}


Corrida C++






Práctica 7. Problema 4.
Descripción

Los reglamentos  de pesca de cierta ciudad imponen un límite diario de pesca a la cantidad total. Supóngase que se desea llevar una computadora a la siguiente salida de pesca y se necesita un programa que indique cuando se ha excedido el límite. Diseñe un programa que lea el límite en kg y enseguida lea los valores de la pesca uno tras otro (corresponderán a los peces individuales) e imprimía un mensaje en el momento que se ha excedido el límite.
Un peso de 0 significa el fin de los datos y después de que cada pescado haya sido registrado deberá mostrar el peso total.


Pseudocódigo

inicio
limite   entero
total_pesca,peso    real
print "limite de pesca? "
read limite
total_pesca=0
while(total_pesca<limite and peso!=0)
{
print "ingrese el peso de la presa: "
read peso
total_pesca=total_pesca+peso
if (total_pesca>=limite)
{
print "exedio limite"
}
print "total pesca= ",total_pesca
}
fin


Codificación  en C++

#include <iostream.h>
#include <conio.h>
void main()
{
int limite;
float total_pesca,peso;
cout<<"limite de pesca? ";
cin>>limite;
total_pesca=0;
while(total_pesca<limite && peso!=0)
{
cout<<endl<<"ingrese el peso de la presa: ";
cin>>peso;
total_pesca=total_pesca+peso;
if (total_pesca>=limite)
{
cout<<"exedio limite"<<endl;
}
cout<<"total pesca= "<<total_pesca;
}
getch();
}

Corrida C++





Práctica 7. Problema 5.

Descripción

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.


Pseudocódigo
inicio
nombre[10] caracter
direccion[10]  caracter
otro='S' or 's'  caracter
opcion  entero
tot_dep,dep,tot_ret,ret,saldo  real
do
{
total=0   real
tot_dep=0   real
tot_ret=0   real
print "nombre del cliente= "
read nombre
print "direccion "
read direccion
print "saldo mes anterior "
read saldo
do
{
print "tipo de operacion"
print "1)deposito"
print "2)retiro"
print "Elija la opcion "
read opcion
switch(opcion)
{
case 1:
print "depocito=? "
read dep
print "depocito= ",dep
tot_dep=tot_dep+dep
break
case 2:
print "retiro=? "
read ret
print "retiro= -",ret
tot_ret=tot_ret+ret
break
default: print "error en opcion"
}
print "otra opcion (s/n) "
read otro
}
while(otro=='S' or otro=='s')
print "Banco Alamsaa"
print "direcc. calle gepeto "
print "nombre del cliente ",nombre
print "tipo 1 deposito ",tot_dep
print "tipo 2 retiro "tot_ret
total=tot_dep-tot_ret+saldo
print "saldo mes anterior ",saldo
print "total ",total
print "otro cliente (s/n)"
read otro
}
while(otro=='S' or otro=='s')
fin


Codificación  en C++

#include <iostream.h>
#include <conio.h>
void main()
{
char nombre[10];
char direccion[10];
char otro='S' || 's';
int opcion;
float tot_dep,dep,tot_ret,ret,saldo;
do
{
float total=0;
float tot_dep=0;
float tot_ret=0;
cout<<"nombre del cliente= ";
cin>>nombre;
cout<<"direccion ";
cin>>direccion;
cout<<"saldo mes anterior ";
cin>>saldo;
do
{
cout<<"tipo de operacion"<<endl;
cout<<"1)deposito"<<endl;
cout<<"2)retiro"<<endl;
cout<<"Elija la opcion ";
cin>>opcion;
switch(opcion)
{
case 1:
cout<<"depocito=? ";
cin>>dep;
cout<<"depocito= "<<dep;
tot_dep=tot_dep+dep;
break;
case 2:
cout<<endl<<"retiro=? ";
cin>>ret;
cout<<"retiro= -"<<ret;
tot_ret=tot_ret+ret;
break;
default:cout<<"error en opcion"<<endl;
}
cout<<endl<<"otra opcion (s/n) ";
cin>>otro;
}
while(otro=='S' || otro=='s');
cout<<endl<<"   *Banco Alamsaa*"<<endl;
cout<<"direcc. calle gepeto "<<endl;
cout<<"nombre del cliente "<<nombre<<endl;
cout<<"tipo 1 deposito "<<tot_dep<<endl;
cout<<"tipo 2 retiro "<<tot_ret<<endl;
total=tot_dep-tot_ret+saldo;
cout<<"saldo mes anterior "<<saldo<endl;
cout<<endl<<"total "<<total<<endl;
cout<<"otro cliente (s/n)";
cin>>otro;
}
while(otro=='S' || otro=='s');
getch();
}

Corrida C++






Práctica 7. Problema 6.

Descripción

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.


Pseudocódigo

inicio
x,z  entero
y   real
print "x   z  y"
for(x=1 x to 5 step x++)
{
for (z=2 z to 6 step z++)
{
if (z!=x)
{
y=(x+z)/(x-z)
print x,"  ",z,"   ",y
}
else
{
print "funcion indefinida"
}
}
}
fin


Codificación  en C++

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

 


Corrida C++




Práctica 7. Problema 7.

Descripción

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.

Pseudocódigo

inicio
x,y,t   real
print "    Tiempo en seg.\tCoordenadas"
for (t=0  t to 10 step t=t+0.5)
{
x=500*t*cos((22.8*3.141598)/180)
y=500*t*sin((22.8*3.141598)/180)
print ,"   ",t,"    (",x," , ",y,")"
}
fin


Codificación  en C++

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
float x,y,t;
cout<<"    Tiempo en seg.\tCoordenadas"<<endl;
for (t=0; t<=10; t=t+0.5)
{
x=500*t*cos((22.8*3.141598)/180);
y=500*t*sin((22.8*3.141598)/180);
cout<<"\t"<<t<<"\t\t("<<x<<" , "<<y<<")"<<endl;
}
getch();
}

 
Corrida C++







 

Práctica 7. Problema 8.

Descripción

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.


Pseudocódigo

inicio
acu,sug,l,i,j,k  entero
for (l=1 l to 3 step l++)
{
switch(l)
{
case 1:
sug=83
acu=0
for(i=1 i to 13 step i++)
{
for (j=1 j to 11 step j++)
{
for (k=1 k to 7step k++)
{
acu=acu+sug
}
}
}
print 83,"*",1001,"= ",acu
break
case 2:
sug=47
acu=0
for(i=1 i to 13 step i++)
{
for (j=1 j to 11 step j++)
{
for (k=1 k to 7 step k++)
{
acu=acu+sug
}
}
}
print 47,"*",1001,"= ",acu
break
case 3:
sug=33
acu=0
for(i=1 i to 13 step i++)
{
for (j=1 j to 11 step j++)
{
for (k=1 k to 7 step k++)
{
acu=acu+sug
}
}
}
print 33,"*",1001,"= ",acu
break
}
}
fin

Codificación  en C++

#include <iostream.h>
#include <conio.h>
void main ()
{
int acu,sug,l,i,j,k;
for (l=1;l<=3;l++)
{
switch(l)
{
case 1:
sug=83;
acu=0;
for(i=1;i<=13;i++)
{
for (j=1;j<=11;j++)
{
for (k=1;k<=7;k++)
{
acu=acu+sug;
}
}
}
cout<<83<<"*"<<1001<<"= "<<acu<<endl;
break;
case 2:
sug=47;
acu=0;
for(i=1;i<=13;i++)
{
for (j=1;j<=11;j++)
{
for (k=1;k<=7;k++)
{
acu=acu+sug;
}
}
}
cout<<47<<"*"<<1001<<"= "<<acu<<endl;
break;
case 3:
sug=33;
acu=0;
for(i=1;i<=13;i++)
{
for (j=1;j<=11;j++)
{
for (k=1;k<=7;k++)
{
acu=acu+sug;
}
}
}
cout<<33<<"*"<<1001<<"= "<<acu<<endl;
break;
}
}
getch();
}


Corrida C++









 

No hay comentarios:

Publicar un comentario