Problema 1
Cierta compañía de seguros ha 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 las siguientes datos: año de nacimiento, sexo(M, F), código de registro. Diseñe un programa para leer un conjunto de datos e imprimir los siguientes valores de los conductores que ha estado en accidentes A)porcentaje de conductores de menores de 25 años
b)porcentaje de conductores femeninos
c)porcentaje de cionductores masculinos de entre 18 y 25 años
Pseudocodigo.
a1, codigo, contador=0, anio, condm25=0, conductoresf=0, conductoresm=0 entero
c25, cm, cf real
char sexo, otro
do
{{{
print "Año de nacimiento del conductor: "
read a1
contador=contador+1
do
{{
print "Sexo del conductor, F(femenino) o M(masculino): "
read sexo
if(sexo=='M'||sexo=='m'||sexo=='F'||sexo=='f')
{
print "Codigo de registro: "
read codigo
}
}}
while(sexo!='m' && sexo!='M' && sexo!='f' && sexo!='F')
anio=2011-a1
if(anio<25)
{
condm25=condm25+1
}
if(sexo=='m' || sexo=='M')
{{
if(anio>=18 && anio<=25)
{
conductoresm=conductoresm+1
}
}}
else
{{
conductoresf=conductoresf+1
}}
print "Registrar otro? s/n: "
read otro
}}}
while(otro=='s' || otro=='S')
c25=(condm25*100)/(contador)
cm=(conductoresm*100)/(contador)
cf=(conductoresf*100)/(contador)
print "Porcentaje de conductores <25 años: " c25
print "Porcentaje de conductores Femeninos: "cf
print "Porcentaje de conductores masculinos entre 18 y 25 años: "cm
Fin
Codigo en C++.
#include<iostream.h>
#include<conio.h>
void main()
{
int a1, codigo, contador=0, anio, condm25=0, conductoresf=0, conductoresm=0;
float c25, cm, cf;
char sexo, otro;
do
{{{
cout<<"Año de nacimiento del conductor: ";
cin>>a1;
contador=contador+1;
do
{{
cout<<"Sexo del conductor, F(femenino) o M(masculino): ";
cin>>sexo;
if(sexo=='M'||sexo=='m'||sexo=='F'||sexo=='f')
{
cout<<"Codigo de registro: ";
cin>>codigo;
}
}}
while(sexo!='m' && sexo!='M' && sexo!='f' && sexo!='F');
anio=2011-a1;
if(anio<25)
{
condm25=condm25+1;
}
if(sexo=='m' || sexo=='M')
{{
if(anio>=18 && anio<=25)
{
conductoresm=conductoresm+1;
}
}}
else
{{
conductoresf=conductoresf+1;
}}
cout<<"Registrar otro? s/n: ";
cin>>otro;
}}}
while(otro=='s' || otro=='S');
c25=(condm25*100)/(contador);
cm=(conductoresm*100)/(contador);
cf=(conductoresf*100)/(contador);
cout<<"Porcentaje de conductores <25 años: "<<c25<<endl;
cout<<"Porcentaje de conductores Femeninos: "<<cf<<endl;
cout<<"Porcentaje de conductores masculinos entre 18 y 25 años: "<<cm<<endl;
getch();
}
Programa.
----------------------------------------------------------------------------------------------------------
Problema # 2
De la función f(x)=x2-y2/x2+y2 tabular los valores para x=2 4 6 8 y 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
Pseudocodigo.
x, y, x2, y2 enteros
f, y1, x1 reales
print "X Y"
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));
print x " "f
}}
print "Coordenadas enteras en X y Y del elipse "
print "X Y "
print "0 -5"
for(y=-4; y<=4; y++)
{
x1=sqrt(16-(0.64)*pow(y,2))
x2=x1*10
if(x2%10==0)
{
print x1" "y
}}
print "0 5"
print "-4 0"
for(x=-3; x<=4; x=x+1)
{
y1=sqrt(25-(1.5625)*pow(x,2))
y2=y1*10
if(y2%10==0)
{
print x" "y1
}}
Fin
Codigo en C++.
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
int x, y, x2, y2;
float f, y1, x1;
cout<<"X Y"<<endl<<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<<" "<<f<<endl;
}}
cout<<endl;
cout<<"Coordenadas enteras en X y Y del elipse "<<endl<<endl;
cout<<"X Y "<<endl<<endl;
cout<<"0 -5"<<endl;
for(y=-4; y<=4; y++)
{
x1=sqrt(16-(0.64)*pow(y,2));
x2=x1*10;
if(x2%10==0)
{
cout<<x1<<" "<<y<<endl;
}}
cout<<"0 5"<<endl;
cout<<endl;
cout<<"-4 0"<<endl;
for(x=-3; x<=4; x=x+1)
{
y1=sqrt(25-(1.5625)*pow(x,2));
y2=y1*10;
if(y2%10==0)
{
cout<<x<<" "<<y1<<endl;
}}
getch();
}
Programa.
------------------------------------------------------------------------------------------------------------
Problema # 3
Una compañía utiliza aviones para fumigar las cosechas contra una gran variedad de plagas. La cantidad que la compañía carga a los granjeros depende de que es lo que desea fumigar y de cuantos acres desea que se fumigue, de acuerdo a la siguiente distribución
tipo1, Fumigación contra malas hiervas 1usdxacre
tipo2, Contra langostas 2usdxacre
Tipo 3, Contra gusanos 3usdxacre
Tipo 4, Contra todo lo anterior 5usdxacre
Si el área a fumigar es mayor a 1000 acres, el granjero goza de un 5% de descuento. Además cualquier granjero que haya sobrepasado los 1500usd se hace acreedor a un 10% de descuento sobre la cantidad que excede los 1500. Si se aplican ambos descuentos, el correspondiente a la suma se considera primero.
Diseñe un programa que lea un conjunto de datos que contengan la siguiente información: nombre del granjero, tipo de fumigación solicitada y el número de acres a fumigar. Debe calcularse el costo del trabajo e imprimir el nombre del granjero seguido de su cuenta
Pseudocodigo.
caracter nombre[10]
caracter otro
tipo entero
num, descuento1, descuento2, costo real
do
{{
descuento1=0
descuento2=0
print "Nombre del granjero: "
read nombre
do
{{
print "Tipos de fumigacion: "
print "1) Fumigacion contra malas hierbas, costo 1 doll por acre"
print "2) Fumigacion contra langostas, costo 2 doll por acre"
print "3) Fumigacion contra los gusanos, costo 3 doll por acre"
print "4) Fumigacion contra todo lo anterior, costo 5 doll por acre"
print "Seleccione Tipo: "
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;
default: print "Tipo de fumigacion incorrecta intente de nuevo."
}
}}
while(tipo<1 || tipo>4);
if(num>100)
{
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 "Otro? s/n ";
read otro
}}
while(otro=='s'||otro=='S');
print "Gracias por su preferencia vuelva pronto "
Fin.
Codigo en C++.
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
char nombre[10];
char otro;
int tipo;
float num, descuento1, descuento2, costo;
do
{{
descuento1=0;
descuento2=0;
cout<<"Nombre del granjero: ";
cin>>nombre;
do
{{
cout<<"Tipos de fumigacion: "<<endl;
cout<<"1) Fumigacion contra malas hierbas, costo 1 doll por acre"<<endl;
cout<<"2) Fumigacion contra langostas, costo 2 doll por acre"<<endl;
cout<<"3) Fumigacion contra los gusanos, costo 3 doll por acre"<<endl;
cout<<"4) Fumigacion contra todo lo anterior, costo 5 doll por acre"<<endl;
cout<<"Seleccione Tipo: ";
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;
default:cout<<"Tipo de fumigacion incorrecta intente de nuevo."<<endl<<endl;
}
}}
while(tipo<1 || tipo>4);
if(num>100)
{
descuento1=(costo*0.05);
}
if(costo>1500)
{
descuento2=(costo-1500)*0.10;
}
cout<<"Nombre del granjero: "<<nombre<<endl;
cout<<"Descuento 1: "<<descuento1<<endl;
cout<<"Descuento 2: "<<descuento2<<endl;
costo=costo-descuento1-descuento2;
cout<<"Total: "<<costo<<endl;
cout<<"Otro? s/n ";
cin>>otro;
}}
while(otro=='s'||otro=='S');
cout<<"Gracias por su preferencia vuelva pronto ";
getch();
}
Programa.
Problema # 4.
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 nascería 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 limite un peso de 0 significa el fin de los datos y después de que cada pescado hay sido registrado deberá mostrar el peso total.
Pseudocodigo.
limite entero
total_pesca, peso reales
print "Limite de peso al dia: "
read limite
total_pesca=0
while(total_pesca<limite && peso!=0)
{
print "Peso presa: "
read peso
total_pesca=total_pesca+peso
if(total_pesca>=limite)
{
print "Exedio limite "
}
print "Total de la pesca: "total_pesca
Fin.
Codigo en C++.
#include<iostream.h>
#include<conio.h>
void main()
{
int limite;
float total_pesca, peso;
cout<<"Limite de peso al dia: ";
cin>>limite;
total_pesca=0;
while(total_pesca<limite && peso!=0)
{
cout<<"Peso presa: ";
cin>>peso;
total_pesca=total_pesca+peso;
if(total_pesca>=limite)
{
cout<<"Exedio limite ";
}
cout<<"Total de la pesca: "<<total_pesca<<endl;
}
getch();
}
Programa.
Problema # 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 reitrosse 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: b)considere un descuento de 25 por retiro y el interes de 1% si el total excede 1000
Pseudocodigo.
opcion entero
saldo, total, total_dep, total_ret, dep, ret reales
caracter nombre[10]
caracter dir[10], op
do
{
total=0
total_dep=0
total_ret=0
print "Nombre del cliente: "
read nombre
print "Direccion: "
read dir
print "Saldo mes anterior: "
read saldo
do
{
print "Tipo de operacion "
print "1) Deposito"
print "2) Retiro"
print "Tipo: "
read opcion
switch(opcion)
{
case 1: print "Deposito: ";
read dep
print "Deposito: "dep
total_dep=total_dep+dep
break;
case 2: print "Retiro: "
cin>>ret;
print ""Retiro: -"ret
total_ret=total_ret+ret;
break;
default: print "Error en opcion"
}
print "Otra operacion? s/n: "
read op
}
while(op=='s'||op=='S');
print "Banco Accion en efectivo"
print "Direccion Canada"
print "Nombre del cliente: "nombre
print "Tipo 1 Deposito: "total_dep
print "Tipo 2 Retiro: -"total_ret
total=total_dep-total_ret+saldo;
print "Saldo mes anterior: "saldo
print "Total: "total
print "Otro Cliente? s/n "
read op
}
while(op=='s'||op=='S');
Codigo en C++.
#include<iostream.h>
#include<conio.h>
void main()
{
int opcion;
float saldo, total, total_dep, total_ret, dep, ret;
char nombre[10];
char dir[10], op;
do
{
total=0;
total_dep=0;
total_ret=0;
cout<<"Nombre del cliente: ";
cin>>nombre;
cout<<endl;
cout<<"Direccion: ";
cin>>dir;
cout<<endl;
cout<<"Saldo mes anterior: ";
cin>>saldo;
cout<<endl;
do
{
cout<<"Tipo de operacion "<<endl;
cout<<"1) Deposito"<<endl;
cout<<"2) Retiro"<<endl;
cout<<"Tipo: ";
cin>>opcion;
switch(opcion)
{
case 1: cout<<"Deposito: ";
cin>>dep;
cout<<"Deposito: "<<dep<<endl;
total_dep=total_dep+dep;
break;
case 2: cout<<"Retiro: ";
cin>>ret;
cout<<"Retiro: -"<<ret<<endl;
total_ret=total_ret+ret;
break;
default:cout<<"Error en opcion";
}
cout<<"Otra operacion? s/n: ";
cin>>op;
}
while(op=='s'||op=='S');
cout<<"Banco Accion en efectivo"<<endl;
cout<<"Direccion Canada"<<endl;
cout<<"Nombre del cliente: "<<nombre<<endl;
cout<<"Tipo 1 Deposito: "<<total_dep<<endl;
cout<<"Tipo 2 Retiro: -"<<total_ret<<endl;
total=total_dep-total_ret+saldo;
cout<<"Saldo mes anterior: "<<saldo<<endl;
cout<<"Total: "<<total<<endl;
cout<<"Otro Cliente? s/n ";
cin>>op;
}
while(op=='s'||op=='S');
getch();
}
inciso B.
#include<iostream.h>
#include<conio.h>
void main()
{
int opcion;
float saldo, total, total_dep, total_ret, dep, ret;
char nombre[10];
char dir[10], op;
do
{
total=0;
total_dep=0;
total_ret=0;
cout<<"Nombre del cliente: ";
cin>>nombre;
cout<<endl;
cout<<"Direccion: ";
cin>>dir;
cout<<endl;
cout<<"Saldo mes anterior: ";
cin>>saldo;
cout<<endl;
do
{
cout<<"Tipo de operacion "<<endl;
cout<<"1) Deposito"<<endl;
cout<<"2) Retiro"<<endl;
cout<<"Tipo: ";
cin>>opcion;
switch(opcion)
{
case 1: cout<<"Deposito: ";
cin>>dep;
cout<<"Deposito: "<<dep<<endl;
total_dep=total_dep+dep;
break;
case 2: cout<<"Retiro: ";
cin>>ret-25;
cout<<"Retiro: -"<<ret<<endl;
total_ret=total_ret+ret;
break;
default:cout<<"Error en opcion";
}
cout<<"Otra operacion? s/n: ";
cin>>op;
}
while(op=='s'||op=='S');
cout<<"Banco Accion en efectivo"<<endl;
cout<<"Direccion Canada"<<endl;
cout<<"Nombre del cliente: "<<nombre<<endl;
cout<<"Tipo 1 Deposito: "<<total_dep<<endl;
cout<<"Tipo 2 Retiro: -"<<total_ret<<endl;
total=total_dep-total_ret+saldo;
cout<<"Saldo mes anterior: "<<saldo<<endl;
cout<<"Total: "<<total<<endl;
cout<<"Otro Cliente? s/n ";
cin>>op;
}
while(op=='s'||op=='S');
getch();
}
Programa.
----------------------------------------------------------------------------------------------------------
Problema # 6.
ESCRIBA UN PROGRAM 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.
Pseudocodigo.
y real
x, z entero
print "X Y Z"
for(x=1; x<=5; x++)
{
for(z=2; z<=6; z++)
{
if(z!=x)
{
y=(x*z)/(x-z)
print x" "z" "y
}
else
{
print " Y indefinida"
}
} }
Fin.
Codigo C++
#include<iostream.h>
#include<conio.h>
void main()
{
float y;
int x, z;
cout<<"X Y Z"<<endl<<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<<" Y indefinida"<<endl<<endl;
}
} }
getch();
}
Programa.
-------------------------------------------------------------------------------------------------------------
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=vtcosΦ yy=vtsinΦ 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
Pseudocodigo.
x, t, y real
print "Tiempo en segundos Coordenadas. "
for(t=0; t<=10; t=t+0.5)
{
x=500*t*(cos(0.397936)) //Radianes
y=500*t*sin((22.8*3.1416)/180)
print t" " "("x", "y" "")"
}
Fin
Codigo C++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float x, t, y;
cout<<"Tiempo en segundos Coordenadas. "<<endl<<endl;
for(t=0; t<=10; t=t+0.5)
{
x=500*t*(cos(0.397936)); //Radianes
y=500*t*sin((22.8*3.1416)/180);
cout<<t<<" "<<"("<<x<<", "<<y<<" "<<")"<<endl;
}
getch();
}
Programa.
------------------------------------------------------------------------------------------------------------
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 utiliznado un ciclo de tres gasas y luego despliegue el resultado
Pseudocodigo.
n1, n2, n3, r1=0, r2=0, r3=0, rr1=0, rr2=0, rr3=0, rrr1=0, rrr2=0, rrr3=0 entero
print "Resultados: "
print "(33)(1001) (47)(1001) (83)(1001)"
for(n1=1; n1<=7; n1++)
{
r1=r1+33;
r2=r2+47;
r3=r3+83;
}
for(n2=1; n2<=11; n2++)
{
rr1=rr1+r1;
rr2=rr2+r2;
rr3=rr3+r3;
}
for(n3=1; n3<=13; n3++)
{
rrr1=rrr1+rr1;
rrr2=rrr2+rr2;
rrr3=rrr3+rr3;
}
print rrr1" "rrr2" "rrr3
Codigo C++.
#include<iostream.h>
#include<conio.h>
void main()
{
int n1, n2, n3, r1=0, r2=0, r3=0, rr1=0, rr2=0, rr3=0, rrr1=0, rrr2=0, rrr3=0;
cout<<"Resultados: "<<endl;
cout<<"(33)(1001) (47)(1001) (83)(1001)"<<endl<<endl;
for(n1=1; n1<=7; n1++)
{
r1=r1+33;
r2=r2+47;
r3=r3+83;
}
for(n2=1; n2<=11; n2++)
{
rr1=rr1+r1;
rr2=rr2+r2;
rr3=rr3+r3;
}
for(n3=1; n3<=13; n3++)
{
rrr1=rrr1+rr1;
rrr2=rrr2+rr2;
rrr3=rrr3+rr3;
}
cout<<rrr1<<" "<<rrr2<<" "<<rrr3<<endl;
getch();
}
Programa.
-------------------------------------------------------------------------------------------------------------
No hay comentarios:
Publicar un comentario