miércoles, 16 de septiembre de 2009

EJERCICIOS RESUELTOS DE ESTRUCTURAS REPETITIVAS (FOR, WHILE, DO WHILE)

ROBLEMAS SOBRE ESTRUCTURAS REPETITIVAS

1. Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño Estructurado de Algoritmos.

#include
#include

void main()
{
float cal,suma=0,pro;

cout<<"Digite sus 7 calificaciones)";
for (int i=7;i>0;i--)
{
gotoxy(1,2); cin>>cal;
gotoxy(1,2); cout<<" ";
suma=suma+cal;
}
pro=suma/7;
clrscr();
cout<<"El promedio de las calificaciones es " < getch();
}



2. Leer 10 números y obtener su cubo y su cuarta.

#include
#include

void main()
{
float n,cubo,cuar;
int y=6,b=6,q=6;

cout<<"Digite 10 numeros)";
gotoxy(1,4); cout<<"NUMERO CUBO CUARTA";
for (int i=10;i>0;i--)
{
gotoxy(1,2); cin>>n;
gotoxy(1,2); cout<<" ";
cubo=n*n*n;
cuar=n*n*n*n;
gotoxy(1,y); cout< gotoxy(20,b); cout< gotoxy(40,q); cout< y++;
b++;
q++;
}
getch();
}


3. Leer 10 números e imprimir solamente los números positivos

#include
#include

void main()
{
float n;
int y=5;

cout<<"Digite 10 numeros";
gotoxy(1,4); cout<<"Numeros Positivos";
for (int i=10;i>0;i--)
{
gotoxy(1,2); cin>>n;
gotoxy(1,2); cout<<" ";
if (n>0)
{
gotoxy(1,y); cout< y++;
}
}
getch();
}


4. Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros.

#include
#include

void main()
{
float n,spos=0,sneu=0,sneg=0;

cout<<"Digite 20 numeros";
for (int i=20;i>0;i--)
{
gotoxy(1,2); cin>>n;
gotoxy(1,2); cout<<" ";
if (n>0)
spos++;
if (n==0)
sneu++;
if (n<0)
sneg++;
}
clrscr();
cout<<"Se digitar¢n " < <<" numeros neutros y " < getch();
}


5. Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.

#include
#include

void main()
{
float n,va;
int i=15,y=6,b=6;

cout<<"Digite 15 numero negativos";
gotoxy(1,4); cout<<"NUMERO VALOR ABSOLUTO";
while (i>0)
{
gotoxy(1,2); cin>>n;
gotoxy(1,2); cout<<" ";
if (n<0)
{
va=abs(n);
gotoxy(1,y); cout< gotoxy(20,b); cout< y++;
b++;
i--;
}
else
{
gotoxy(1,2); cout<<"El numero digitado no es "
<<"negativo (presione una tecla para caontinuar)";
getch();
gotoxy(1,2); cout<<" "
<<" ";
}
}
getch();
}


6. Suponga que se tiene las calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo.

#include
#include

void main()
{
float cal,baja=100,suma=0,pro;

cout<<"Digite las calificaciones del grupo";
for (int i=40;i>0;i--)
{
gotoxy(1,2); cin>>cal;
gotoxy(1,2); cout<<" ";
suma=suma+cal;
if (cal baja=cal;
}
pro=suma/40.;
clrscr();
cout<<"Calificaci¢n media = " < cout<<"\nCalificaci¢n mas baja = " < getch();
}



7. Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto.

#include
#include

void main()
{
float mul1,res;
int mul2=1,y=3;

cout<<"Digite un numero ";
cin>>mul1;
for (int i=10;i>0;i--)
{
gotoxy(1,1); cout<<"TABLA DE MULTIPLICAR DEL " < gotoxy(1,y); cout< gotoxy(10,y); cout<<"x "< res=mul1*mul2;
gotoxy(20,y); cout<<"= " < mul2++;
y++;
}
getch();
}


8. Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas

#include
#include
#include

void main()
{
int h=0,m=0,s=0;

gotoxy(1,1); cout<<" : : ";
while(true)
{
s++;
Sleep(250);
gotoxy(1,1); cout< gotoxy(4,1); cout<<" ";
gotoxy(4,1); cout< gotoxy(7,1); cout<<" ";
gotoxy(7,1); cout< if (s==59)
{
s=-1; m++;
}
if (m==59)
{
m=-1; h++;
}
if (h==24)
break;
}
}

9. Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la sig, tabla:
CATEGORIA EDAD
Niños 0 - 12
Jóvenes 13 - 29
Adultos 30 - 59
Viejos 60 en adelante

#include
#include

void main()
{
float edad,peso,snino=0,sjov=0,sadu=0,svie=0,pron,proj,proa,prov;
int x=1,nino=0,jove=0,adul=0,viej=0;

cout<<"\n\nDigite la edad ";
cout<<"\n\nDigite el peso ";
for (;x<=50;x++)
{
gotoxy(35,1); cout<<"PERSONA # " < gotoxy(1,4); cin>>edad;
gotoxy(1,6); cin>>peso;
gotoxy(1,4); cout<<" ";
gotoxy(1,6); cout<<" ";
if (edad<13)
{
nino++;
snino=snino+peso;
}
else
if (edad<30)
{
jove++;
sjov=sjov+peso;
}
else
if (edad<60)
{
adul++;
sadu=sadu+peso;
}
else
{
viej++;
svie=svie+peso;
}
}
clrscr();
gotoxy(35,1); cout<<"RESULTADOS";
if (nino>0)
{
pron=snino/nino;
cout<<"\nPeso promedio de niños = " < }
else
pron=0;
if (jove>0)
{
proj=sjov/jove;
cout<<"\nPeso promedio de jovenes = " < }
else
proj=0;
if (adul>0)
{
proa=sadu/adul;
cout<<"\nPeso promedio de adultos = " < }
else
proa=0;
if (viej>0)
{
prov=svie/viej;
cout<<"\nPeso promedio de viejos = " < }
else
prov=0;
getch();
}
10. Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuanto pagara cada cliente y cuanto percibirá la tienda por esas compras.

#include
#include

void main()
{
float vkn,nk,tp,total=0;
int x=1,y=8;

cout<<"Digite el valor del kilo de narajas "; cin>>vkn;
clrscr();
gotoxy(1,3); cout<<"Cuantos kilos de naranja compr¢?";
for (;x<=15;x++)
{
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(28,6); cout<<"Cliente #";
gotoxy(41,6); cout<<"Total a pagar";
gotoxy(1,4); cin>>nk;
gotoxy(1,4); cout<<" ";
gotoxy(32,y); cout< if (nk>10)
{
tp=nk*vkn*0.85;
gotoxy(41,y); cout< }
else
{
tp=nk*vkn;
gotoxy(41,y); cout< }
total=total+tp;
y++;
}
gotoxy(21,24); cout<<"Ganancias por venta de narajas = " < getch();
}

11. En un centro de verificación de automóviles se desea saber el promedio de puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contaminó y del que más contaminó.

#include
#include

void main()
{
float pro;
int np,mayor=0,menor=10000,suma=0,x=1;

gotoxy(1,3); cout<<"Digite la cantidad de puntos contaminantes";
for (;x<=25;x++)
{
gotoxy(35,1); cout<<"AUTOMOVIL # " < gotoxy(1,4); cin>>np;
gotoxy(1,4); cout<<" ";
if (np>mayor)
mayor=np;
if (np menor=np;
suma=suma+np;
}
pro=suma/25;
clrscr();
cout<<"Valor maximo de puntos contaminantes = " < cout<<"\nValor minimo de puntos contaminantes = " < cout<<"\nPromedio de puntos contaminantes = " < getch();
}


12. Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para la prueba de 5 Kilómetros o debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones:
a. Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.
b. Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos.
c. Que su promedio de tiempos sea menor o igual a 15 minutos.

#include
#include

void main()
{
float time,suma=0,prom;
int x=1,resul=0;

for (;x<=10;x++)
{
gotoxy(1,1); cout<<"cuanto tardo (en minutos) "
<<"en recorrer los 5 km el dia # " < gotoxy(1,2); cin>>time;
gotoxy(1,2); cout<<" ";
suma=suma+time;
if (resul<2)
if (time>16)
resul++;
if (x==10)
{
prom=suma/10;
if (prom>15)
resul++;
}
}
if (resul<=2)
cout<<"\nEl atleta es apto para la prueba de 5 km";
else
cout<<"\nEl atleta no es apto para la prueba de 5 km";
getch();
}


13. Un Zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año, de más de 1 año y menos de 3 y de 3 o más años. El zoológico todavía no esta seguro del animal que va a estudiar. Si se decide por elefantes solo tomara una muestra de 20 de ellos; si se decide por las jirafas, tomara 15 muestras, y si son chimpancés tomara 40.

#include
#include

void main()
{
float por1,por2,por3,edad;
int ani,x=1,i,mue=0,srng1=0,srng2=0,srng3=0;

while (x>0)
{
cout<<"Digite el numero correspondiente al animal que se desea estudiar"
<<"\n1. Elefantes. \n2. Jirafas. \n3. Chimpances";
gotoxy(66,1); cin>>ani;
if (ani==1)
{
i=20; x--;
}
else
if (ani==2)
{
i=15; x--;
}
else
if (ani==3)
{
i=40; x--;
}
else
{
cout<<"\n\n\nOpcion invalida (presione ENTER para continuar)";
getch();
}
clrscr();
}
cout<<"\n\nDigite la edad (en años)";
for (;i>0;i--)
{
mue++;
gotoxy(35,1); cout<<"MUESTRA # " < gotoxy(1,4); cin>>edad;
gotoxy(1,4); cout<<" ";
if (edad<=1)
srng1++;
else
if (edad<3)
srng2++;
else
srng3++;
}
clrscr();
por1=srng1*100./mue;
por2=srng2*100./mue;
por3=srng3*100./mue;
cout<<"Porcentaje entre 0 y 1 año = " < cout<<"\nPorcentaje mayor que 1 y menor que 3 años = " < cout<<"\nPorcentaje con 3 o mas años = " < getch();
}


14. Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.

#include
#include

void main()
{
float vta1,vta2,vta3,com,base,total;
int i,num=1;

cout<<"Digite el valor del sueldo base ";
cin>>base;
cout<<"Digite el numero de vendedores contratados "; cin>>i;
clrscr();
gotoxy(1,3); cout<<"Valor venta 1: ";
cout<<"\nValor venta 2: ";
cout<<"\nValor venta 3: ";
gotoxy(23,7); cout<<"Vendedor # Comisiones Total";
for (int y=9;i>0;i--)
{
gotoxy(35,1); cout<<"VENDEDOR # " < gotoxy(16,3); cin>>vta1;
gotoxy(16,4); cin>>vta2;
gotoxy(16,5); cin>>vta3;
gotoxy(16,3); cout<<" ";
gotoxy(16,4); cout<<" ";
gotoxy(16,5); cout<<" ";
com=(vta1+vta2+vta3)*0.1;
total=base+com;
gotoxy(27,y); cout< gotoxy(38,y); cout< gotoxy(53,y); cout< y++;
num++;
}
getch();
}


15. En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran en ella. El salario se obtiene de la siguiente forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora extra.

#include
#include

void main()
{
float ht,total;
int i,obr=1;

cout<<"Digite la cantidad de obreros que laboran en la empresa ";
cin>>i;
clrscr();
cout<<"\n\nDigite el numero de horas trabajadas a la semana ";
gotoxy(26,5); cout<<"Obrero # Salario Semanal";
for (int y=7;i>0;i--)
{
gotoxy(35,1); cout<<"OBRERO # " < gotoxy(50,3); cin>>ht;
gotoxy(50,3); cout<<" ";
if (ht<=40)
total=ht*20;
else
total=(ht-40)*25+800;
gotoxy(30,y); cout< gotoxy(40,y); cout< y++;
obr++;
}
getch();
}


16. Determinar cuántos hombres y cuantas mujeres se encuentran en un grupo de n personas, suponiendo que los datos son extraídos alumno por alumno.

#include
#include

void main()
{
int alu=1,i,sumam=0,sumaf=0;

cout<<"Cuantos alumnos conforman el grupo? ";
cin>>i;
clrscr();
cout<<"\n\nDigite el sexo, f o m. ";
for (char sexo[5];i>0;)
{
gotoxy(35,1); cout<<"ALUMNO # " < gotoxy(24,3); gets (sexo);
gotoxy(24,3); cout<<" ";
if (strcmp(sexo,"m")==0)
{
sumam++; i--; alu++;
}
else
if (strcmp(sexo,"f")==0)
{
sumaf++; i--; alu++;
}
else
{
cout<<"\nERROR (presione una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" ";
}
}
clrscr();
cout<<"En el grupo hay " < getch();
}


17. El Depto. de Seguridad Pública y Transito de desea saber de los n autos que entran a la ciudad de Bogotá, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de cada automóvil se puede determinar el color de la calcomanía utilizando la sig. Relación:

DÍGITO COLOR
1 o 2 amarilla
3 o 4 rosa
5 o 6 roja
7 o 8 verde
9 o 0 azul

#include
#include

void main()
{
int i,aut=1,dig,amari=0,rosa=0,roja=0,verde=0,azul=0;

cout<<"Digite el numero de autos que entran a la ciudad de Bogota "; cin>>i;
clrscr();
cout<<"\n\nIntrodusca el ultimo digito de la placa ";
while (i>0)
{
gotoxy(35,1); cout<<"AUTOMOVIL # " < gotoxy(41,3); cin>>dig;
gotoxy(41,3); cout<<" ";
if (dig==0)
{
azul++; i--; aut++;
}
else
if ((dig>0)&&(dig<3))
{
amari++; i--; aut++;
}
else
if ((dig>2)&&(dig<5))
{
rosa++; i--; aut++;
}
else
if ((dig>4)&&(dig<7))
{
roja++; i--; aut++;
}
else
if ((dig>6)&&(dig<9))
{
verde++; i--; aut++;
}
else
if (dig==9)
{
azul++; i--; aut++;
}
if (dig>9)
{
cout<<"\nNn introdusca mas de un digito"
<<" (presione una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" "
<<" ";
}
if (dig<0)
{
cout<<"\nNn introdusca mas de un digito"
<<" (presione una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" "
<<" ";
}
}
clrscr();
cout<<"CALCOMANIAS:";
cout<<"\n\nAmarillas " < cout<<"\nRosadas " < cout<<"\nRojas " < cout<<"\nVerdes " < cout<<"\nAzules " < getch();
}


18. Obtener el promedio de calificaciones de un grupo de n alumnos.

#include
#include

void main()
{
float calif,suma=0,prom;
int i,alu=1,x;
cout<<"Digite el numero de alumnos que hay en el grupo "; cin>>i; x=i;
clrscr();
cout<<"\n\nDigite su calificaci¢n ";
for (;i>0;i--)
{
gotoxy(35,1); cout<<"ALUMNO # " < gotoxy(24,3); cin>>calif;
gotoxy(24,3); cout<<" ";
suma=suma+calif;
alu++;
}
prom=suma/x;
clrscr();
cout<<"La calificaci¢n promedio del grupo es " < getch();
}



19. Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés mensual. Cual será la cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es reinvertida?

#include
#include

void main()
{
float inver,inter,total=0;

cout<<"Digite la cantidad que desea invertir en el banco "; cin>>inver;
for (int i=12;i>0;i--)
{
inter=inver*0.02+inver;
total=total+inter;
}
clrscr();
cout<<"Al cabo de un año tendra " < getch();
}


20. Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

#include
#include

void main()
{
float sum=0,suf=0,edad,prom,prof,prot;
int i,alu=1,male=0,female=0;
char sexo[5];

cout<<"Digite el numero de alumnos que conforman el grupo "; cin>>i;
clrscr();
cout<<"\n\nDigite el sexo (m o f) ";
cout<<"\nDigite la edad ";
while (i>0)
{
gotoxy(35,1); cout<<"ALUMNO(A) # " < gotoxy(24,3); gets (sexo);
gotoxy(16,4); cin>>edad;
gotoxy(24,3); cout<<" ";
gotoxy(16,4); cout<<" ";
if (strcmp(sexo,"m")==0)
{
sum=sum+edad;
male++; i--; alu++;
}
else
if (strcmp(sexo,"f")==0)
{
suf=suf+edad;
female++; i--; alu++;
}
else
{
cout<<"\n\nERROR sexo (presione una tecla para contitnuar)";
getch();
gotoxy(1,6); cout<<" ";
}
}
clrscr();
prom=sum/male;
prof=suf/female;
prot=(sum+suf)/(male+female);
cout<<"PROMEDIOS DE EDAD:";
cout<<"\nHombres = " < cout<<"\nMujeres = " < cout<<"\nGrupo = " < getch();
}


21. Encontrar el menor valor de un conjunto de n números dados.

#include
#include

void main()
{
float menor,numero;
int i;

cout<<"Cuantos numero desea ingresar a continuaci¢n? "; cin>>i;
cout<<"Digite " < gotoxy(1,3); cin>>numero;
gotoxy(1,3); cout<<" ";
menor=numero++;
for (;i>1;i--)
{
if (menor>numero)
menor=numero;
gotoxy(1,3); cin>>numero;
gotoxy(1,3); cout<<" ";
}
clrscr();
cout<<"El numero menor es " < getch();
}


22. Encontrar el mayor valor de un conjunto de n números dados.

#include
#include

void main()
{
float mayor,numero;
int i;

cout<<"Cuantos numero desea ingresar a continuaci¢n? "; cin>>i;
cout<<"Digite " < gotoxy(1,3); cin>>numero;
gotoxy(1,3); cout<<" ";
mayor=numero--;
for (;i>1;i--)
{
if (mayor mayor=numero;
gotoxy(1,3); cin>>numero;
gotoxy(1,3); cout<<" ";
}
clrscr();
cout<<"El numero mayor es " < getch();
}


23. Cinco miembros de un club contra la obesidad desean saber cuanto han bajado o subido de peso desde la ultima vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: “SUBIO” o “BAJO” y la cantidad de kilos que subió o bajo de peso.

#include
#include
#include

void main()
{
float pant,peso,suma,resul;
int per=1,bas,y=9;

cout<<"\n\nDigite el resultado obtenido de la ultima vez que se pes¢ ";
gotoxy(30,7); cout<<"Persona # Resultado";
for (int x=5;x>0;x--)
{
gotoxy(35,1); cout<<"PERSONA # " < gotoxy(59,3); cin>>pant;
bas=1;
suma=0;
for (int i=10;i>0;i--)
{
gotoxy(1,4); cout<<"Digite el resultado al"
<<" pesarce en la bascula # " < gotoxy(52,4); cin>>peso;
gotoxy(52,4); cout<<" ";
suma=suma+peso;
bas++;
}
resul=(suma/10)-pant;
gotoxy(34,y); cout< if (resul<0)
{
gotoxy(44,y); cout<<"baj¢ " < }
if (resul>0)
{
gotoxy(44,y); cout<<"subi¢ " < }
if (resul==0)
{
gotoxy(44,y); cout<<"permanece igual";
}
gotoxy(59,3); cout<<" ";
per++; y++;
}
getch();
}


24. En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra. Determinar la cantidad que pagará cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es rojo el cliente obtendrá un 40% de descuento; si es amarillo un 25% y si es blanca no obtendrá descuento.

#include
#include

void main()
{
float compra,tp;
int x,cli=1,y=12,color;

cout<<"\n\nDigite el numero correspondiente al color de la bolita obtenida: "
<<"\n1. Amarillo. \n2. Rojo \n3. Blanco. \n4. (Salir)";
cout<<"\n\nDigite el total de la compra";
gotoxy(28,11); cout<<"Cliente # total a pagar";
while (true)
{
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(66,3); cin>>color;
gotoxy(66,3); cout<<" ";
if (color==4)
break;
if ((color<1)||(color>3))
{
gotoxy(16,4); cout<<"numero no valido (presione una tecla para continuar)";
getch();
gotoxy(16,4); cout<<" ";
}
else
{
gotoxy(30,9); cin>>compra;
gotoxy(30,9); cout<<" ";
if (color==2)
{
tp=compra*0.6;
y++; cli++;
}
else
if (color==1)
{
tp=compra*0.75;
y++; cli++;
}
else
if (color==3)
{
tp=compra;
y++; cli++;
}
x=cli-1;
gotoxy(28,y); cout< gotoxy(42,y); cout< }
}
}


25. Un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Edad Descuento
Categoría 1 5 - 14 35 %
Categoría 2 15 - 19 25 %
Categoría 3 20 - 45 10 %
Categoría 4 46 - 65 25 %
Categoría 5 66 en adelante 35 %

#include
#include

void main()
{
float chair,edad,cat1=0,cat2=0,cat3=0,cat4=0,cat5=0,tot;
int cli=1;

cout<<"Digite el valor de un asiento "; cin>>chair;
clrscr();
cout<<"\n\nDigite la edad en años (negativa para mostrar los resultados y salir)";
while (true)
{
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(71,3); cin>>edad;
gotoxy(71,3); cout<<" ";
if (edad>=0)
if (edad>=5)
if (edad<15)
{
cat1=chair*0.35+cat1; cli++;
}
else
if (edad<20)
{
cat2=chair*0.25+cat2; cli++;
}
else
if (edad<46)
{
cat3=chair*0.1+cat3; cli++;
}
else
if (edad<66)
{
cat4=chair*0.25+cat4; cli++;
}
else
{
cat5=chair*0.35+cat5; cli++;
}
else
{
cout<<"\nNo se permite el ingreso de niños menores de "
<<"5 años (presione una tecla para continuar";
getch();
gotoxy(1,5); cout<<" "
<<" ";
}
else
break;
}
tot=cat1+cat2+cat3+cat4+cat5;
clrscr();
cout<<"DESCUENTOS:";
cout<<"\n\n\nCategoria 1 (5 - 14) = " < cout<<"\nCategoria 2 (15 - 19) = " < cout<<"\nCategoria 3 (20 - 45) = " < cout<<"\nCategoria 4 (46 - 65) = " < cout<<"\nCategoria 5 (66 o mayor) = " < cout<<"\n\nTotal = " < getch();
}


26. La presión, volumen y temperatura de una masa de aire se relacionan por la formula:
masa= presión * volumen
0.37 * (temperatura + 460)
Calcular el promedio de masa de aire de los neumáticos de n vehículos que están en compostura en un servicio de alineación y balanceo. Los vehículos pueden ser motocicletas o automóviles.

#include
#include

void main()
{
float pre,vol,tem,masa,suma=0,promed;
int x=1,i,t,llant=0,neu=1;

cout<<"Digite el numero de vehiculos "; cin>>i;
clrscr();
cout<<"\n\n\n\n\nPresi¢n: \nVolumen: \nTemperatura:";
while (i>0)
{
gotoxy(35,1); cout<<"VEHICULO # " < cout<<"\n\nTipo de vehiculo: 1. Automovil."
<<" 2. Motocicleta. "; cin>>t;
if ((t==1)||(t==2))
{
for (int k=0;k<4;k=k+t)
{
gotoxy(1,5); cout<<"NEUMATICO # " < gotoxy(10,6); cin>>pre;
gotoxy(10,7); cin>>vol;
gotoxy(14,8); cin>>tem;
gotoxy(10,6); cout<<" ";
gotoxy(10,7); cout<<" ";
gotoxy(14,8); cout<<" ";
masa=pre*vol/(0.37*(tem+460));
suma=suma+masa;
llant++; neu++;
}
neu=1; x++; i--;
}
else
{
gotoxy(1,4); cout<<"Opci¢n invalida "
<<"(presione una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" "
<<" ";
}
gotoxy(53,3); cout<<" ";
}
clrscr();
promed=suma/llant;
cout<<"Promedio = " < getch();
}


27. Determinar la cantidad semanal de dinero que recibirá cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.

#include
#include

void main()
{
float ht,vht,salario;
int i,obrero=1,y=7;

cout<<"Digite el numero de obreros "; cin>>i;
cout<<"\nDigite el valor de una hora normal de trabajo "; cin>>vht;
clrscr();
cout<<"\n\nDigite el numero de horas trabajadas a la semana";
gotoxy(27,5); cout<<"Obrero # Salario Semanal";
for (;i>0;i--)
{
gotoxy(35,1); cout<<"OBRERO # " < gotoxy(50,3); cin>>ht;
gotoxy(50,3); cout<<" ";
if (ht<=40)
salario=ht*vht;
else
if (ht<=48)
salario=(40*vht)+((ht-40)*(vht*2));
else
salario=(40*vht)+(8*(vht*2))+((ht-48)*(vht*3));
gotoxy(27,y);cout< gotoxy(40,y);cout< obrero++; y++;
}
getch();
}


28. En una granja se requiere saber alguna información para determinar el precio de venta por cada kilo de huevo. Es importante determinar el promedio de calidad de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene según la formula:

calidad = peso de la gallina * altura de la gallina
Numero de huevos que pone

#include
#include

void main()
{
float peso,h,cal,prom;
int g,huev,suma=0,i=1;

cout<<"Digite el numero de gallinas "; cin>>g;
clrscr();
gotoxy(1,3); cout<<"Digite el peso ";
gotoxy(1,4); cout<<"Digite la altura ";
gotoxy(1,5); cout<<"Cuantos huevos pone al mes? ";
for (int x=g;x>0;x--)
{
gotoxy(34,1); cout<<"GALLINA # " < gotoxy(16,3); cin>>peso;
gotoxy(18,4); cin>>h;
gotoxy(29,5); cin>>huev;
gotoxy(16,3); cout<<" ";
gotoxy(18,4); cout<<" ";
gotoxy(29,5); cout<<" ";
cal=peso*h/huev;
suma=suma+cal;
i++;
}
prom=suma/g;
clrscr();
cout<<"El promedio de calidad de las gallinas es de " < getch();
}


29. En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de determinar que porcentaje de los n diputados esta a favor del Tratado de Libre Comercio, que porcentaje esta en contra y que porcentaje se abstiene de opinar.

#include
#include

void main()
{
float favor,contra,ning;
int sumaf=0,sumac=0,suman=0,res,i,x=1;

cout<<"Digite el numero de diputados que conforman la camara "; cin>>i;
clrscr();
cout<<"\n\n1. A favor del TLC \n2. En contra del TLC \n3. No sabe, no responde";
cout<<"\n\nDigite 1, 2 o 3 segun sea su voto";
for (;i>0;i--)
{
gotoxy(35,1); cout<<"DIPUTADO # " < gotoxy(35,7); cin>>res;
gotoxy(35,7); cout<<" ";
if ((res>0)&&(res<4))
{
if (res==1)
{
sumaf++; x++;
}
if (res==2)
{
sumac++; x++;
}
if (res==3)
{
suman++; x++;
}
}
else
{
cout<<"\nRespuesta no valida (presione una tecla para continuar)";
getch();
gotoxy(1,8); cout<<" "
<<" ";
}
}
clrscr();
favor=sumaf*100./(sumaf+sumac+suman);
contra=sumac*100./(sumaf+sumac+suman);
ning=suman*100./(sumaf+sumac+suman);
cout<<"Porcentaje a favor del TLC = " < cout<<"\nPorcentaje en contra del TLC = " < cout<<"\nPorcentaje que no opin¢ = " < getch();
}



30. Una persona que va de compras a la tienda “Enano, S.A.”, decide llevar un control sobre lo que va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a la caja. La tienda tiene una promoción del 20% de descuento sobre aquellos artículos cuya etiqueta sea roja. Determinar la cantidad de dinero que esta persona deberá pagar.

#include
#include

void main()
{
float tp=0,des,precio,valor;
int option;

cout<<"Escoja el color de la etiqueta del producto"
<<"\n(digite el numero correspondiente) ";
cout<<"\n\n1. Rojo. \n2. Otro. \n3. (Terminar registro).";
cout<<"\n\n\nDigite el precio del producto";
while (true)
{
gotoxy(36,2); cin>>option;
gotoxy(36,2); cout<<" ";
if (option==1)
des=0.8;
if (option==2)
des=1;
if (option==3)
break;
gotoxy(31,9); cin>>precio;
gotoxy(31,9); cout<<" ";
valor=precio*des;
tp=tp+valor;
}
clrscr();
cout<<"TOTAL A PAGAR = " < getch();
}



31. Un censador recopila ciertos datos aplicando encuestas para el último Censo Nacional de Población y Vivienda. Desea obtener de todas las personas que alcance a encuestar en un día, que porcentaje tiene estudios de primaria, secundaria, carrera técnica, estudios profesionales y estudios de posgrado.

#include
#include

void main()
{
int option,x=1,opt1=0,opt2=0,opt3=0,opt4=0,opt5=0,opt6=0;
float por1,por2,por3,por4,por5,por6;

cout<<"\n\nNiveles educativos: \n\n1. Primaria. \n2. Secundaria."
<<"\n3. Carrera Tecnica. \n4. Estudios Profecionales."
<<"\n5. Estudios de Posgrado. \n6. Ninguno."
<<"\n\nDigite (de 1 a 6) la respuesta (negativo para finalizar censo)";
while (true)
{
gotoxy(35,1); cout<<"ENCUESTA # " < gotoxy(64,12); cin>>option;
if (option>=0)
if (option==1)
{
x++; opt1++;
}
else
if (option==2)
{
x++; opt2++;
}
else
if (option==3)
{
x++; opt3++;
}
else
if (option==4)
{
x++; opt4++;
}
else
if (option==5)
{
x++; opt5++;
}
else
if (option==6)
{
x++; opt6++;
}
else
{
cout<<"Opci¢n invalida (presione"
<<" una tecla para continuar)";
getch();
gotoxy(1,13); cout<<" "
<<" ";
}
else
break;
gotoxy(64,12); cout<<" ";
}
clrscr();
por1=opt1*100./(x-1);
por2=opt2*100./(x-1);
por3=opt3*100./(x-1);
por4=opt4*100./(x-1);
por5=opt5*100./(x-1);
por6=opt6*100./(x-1);
cout<<"NIVEL EDUCATIVO PORCENTAJE DE LA POBLACIÒN"
<<"\n\nPrimaria " << por1
<<"\nSecundaria " << por2
<<"\nCarrera Tecnica " << por3
<<"\nEstudios de Profesional " << por4
<<"\nEstudios de posgrado " << por5
<<"\nNinguno " << por6;
getch();
}


32. Calcular la suma siguiente: 100 + 98 + 96 + 94 +. . . + 0 en este orden

#include
#include

void main()
{
int x,n=1,t,term;

cout<<"Dgite el numero del termino que desea encontrar "; cin>>x;
t=x;
while (x>0)
{
term=102-n*2;
n++; x--;
}
cout<<"Termino # " < for (;i>0;i--)
{
gotoxy(35,1); cout<<"ALUMNO # " < gotoxy(24,3); cin>>cal;
gotoxy(24,3); cout<<" ";
x++;
if (cal<70)
srepro++;
}
clrscr();
repro=srepro*100./50;
cout<<"Porcentaje de alumnos reprobados = " < getch();
}

34. Leer por cada alumno de Diseño estructurado de algoritmos, su código y su calificación en cada una de las 5 unidades de la materia. Al final que escriba el código del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios.

#include
#include
#include

void main()
{
float nota,snota=0,mayor=0,pro;
char codigo[5],cod[5];
int x=1,k,uni=1;

cout<<"Digite el numero de alumnos "; cin>>k;
clrscr();
for (;x<=k;x++)
{
gotoxy(35,1); cout<<"ALUMNO # " < cout<<"\n\nDigite el codigo "; gets (codigo);
while (uni<=5)
{
cout<<"\nDigite la nota obtenida en la unidad # " <>nota;
snota=snota+nota;
uni++;
}
pro=snota/5;
if (pro>mayor)
{
mayor=pro;
strcpy(cod,codigo);
}
snota=0;
uni=1;
clrscr();
}
clrscr();
cout<<"El codigo del alumno con el promedio mas alto es " < getch();
}


35. Leer los 250.000 votos otorgados a los 3 candidatos a gobernador e imprimir el número del candidato ganador y su cantidad de votos.

#include
#include

void main()
{
int voto,x=1,cand1=0,cand2=0,cand3=0;

cout<<"\n\nDigite 1, 2 o 3 segun sea su candidato de preferencia";
while (x<=250000)
{
gotoxy(38,1); cout<<"VOTO # " < gotoxy(55,3); cin>>voto;
gotoxy(55,3); cout<<" ";
if (voto>0)
if (voto==1)
{
cand1++; x++;
}
else
if (voto==2)
{
cand2++; x++;
}
else
if (voto==3)
{
cand3++; x++;
}
else
{
cout<<"\nCandidato inexistente (presione"
<<" una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" "
<<" ";
}
else
{
cout<<"\nCandidato inexistente (presione"
<<" una tecla para continuar)";
getch();
gotoxy(1,4); cout<<" "
<<" ";
}
}
clrscr();
if ((cand1>cand2)&&(cand1>cand3))
{
cout<<"Ganador: candidato numero 1";
cout<<"\nNumero de votos: " < }
else
if ((cand2>cand1)&&(cand2>cand3))
{
cout<<"Ganador: candidato numero 2";
cout<<"\nNumero de votos: " < }
else
if ((cand3>cand1)&&(cand3>cand2))
{
cout<<"Ganador: candidato numero 3";
cout<<"\nNumero de votos: " < }
else
if (cand1==cand2)
{
cout<<"EMPATE entre candidatos 1 y 2";
cout<<"\nNumero de votos: " < }
else
if (cand2==cand3)
{
cout<<"EMPATE entre candidatos 2 y 3";
cout<<"\nNumero de votos: " < }
else
if (cand1==cand3)
{
cout<<"EMPATE entre candidatos 1 y 3";
cout<<"\nNumero de votos: " < }
getch();
}


36. Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Diseñe un programa en C++ que lea por cada cliente, el monto total de su compra. Al final del día que escriba la cantidad total de ventas y el numero de clientes atendidos.

#include
#include

void main()
{
float buy,suma=0;
int x=0;

cout<<"\n\nDigite el monto total de la compra (negativo si desea terminar)";
while (true)
{
x++;
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(65,3); cin>>buy;
gotoxy(65,3); cout<<" ";
if (buy<0)
break;
suma=suma+buy;
}
clrscr();
x--;
cout<<"Ganancia: " < cout<<"\nClientes atendidos: " < getch();
}


37. El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al examen de nivelación.
Diseñe un programa en C++ que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

#include
#include

void main()
{
float calif,suma=0,prom;
int i=1,uni=1,resul=0;

while (i<=40)
{
while (uni<=5)
{
gotoxy(35,1); cout<<"ALUMNO # " < cout<<"\n\nDigite la nota obtenida en la unidad "
<>calif;
gotoxy(40,3); cout<<" ";
suma=suma+calif;
uni++;
}
if (uni==6)
uni=1;
i++;
prom=suma/5;
if (prom>=3.0)
resul++;
suma=0;
}
clrscr();
cout< getch();
}


38. Suponga que tiene una tienda y desea registrar sus ventas por medio de una computadora. Diseñe un programa en C++ que lea por cada cliente:
a).- el monto de la venta,
b).- calcule e imprima el IVA,
c).-calcule e imprima el total a pagar,
d).- lea la cantidad con que paga el cliente,
e).-calcule e imprime el cambio.
Al final del día deberá imprimir la cantidad de dinero que debe haber en la caja.

#include
#include

void main()
{
float venta,cliente,tp,iva,cambio,suma=0;
int x=1;

while (true)
{
clrscr();
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(1,3); cout<<"Ditgite el monto de la venta (negativo para terminar) ";
cin>>venta;
if (venta<0)
break;
iva=venta*0.16;
tp=venta+iva;
suma=suma+tp;
cout<<"\nIVA = " < cout<<"\nTotal a pagar = " < cout<<"\n\nDigite la cantidad con la que paga el cliente "; cin>>cliente;
cambio=cliente-tp;
cout<<"\nCambio = " < getch();
x++;
}
clrscr();
cout<<"Ganancia = " < getch();
}


39. Modificar el programa en C++ anterior de tal forma que no permita que la cantidad con la que paga el cliente sea menor a lo que debe pagar.

#include
#include

void main()
{
float venta,cliente,tp,iva,cambio,suma=0;
int x=1;

while (true)
{
clrscr();
gotoxy(35,1); cout<<"CLIENTE # " < gotoxy(1,3); cout<<"Ditgite el monto de la venta (negativo para terminar) ";
cin>>venta;
if (venta<0)
break;
iva=venta*0.16;
tp=venta+iva;
suma=suma+tp;
cout<<"\nIVA = " < cout<<"\nTotal a pagar = " < cout<<"\n\nDigite la cantidad con la que paga el cliente";
while (true)
{
gotoxy(47,8); cout<<" ";
gotoxy(47,8); cin>>cliente;
if (cliente {
cout<<"El cliente debe pagar con una cantidad igual o superior a "
<<"la del total a pagar (presione una tecla para continuar)";
getch();
gotoxy(1,9); cout<<" "
<<" ";
}
else
break;
}
cambio=cliente-tp;
cout<<"\nCambio = " < getch();
x++;
}
clrscr();
cout<<"Ganancia = " < getch();
}


40. Se tienen 1.000 encuestas con información del censo de una muestra de personas de la ciudad de Sincelejo, cada tarjeta tiene los siguientes datos:
1.- Número de censo
2.- Sexo
3.- Edad
4.- Estado civil (a.- soltero, b. Casado, c. Viudo, d. Divorciado)
Diseñe un programa en C++ que lea todos estos datos, e imprima el número de censo de todas las jóvenes solteras que estén entre 16 y 21 años.

#include
#include

void main()
{
float edad;
int i=1,x=1,y=13;
char sexo[2], estado[2];

cout<<"\n\nDigite el sexo (m o f)";
cout<<"\nDigite la edad (en años)";
cout<<"\nEstado civil: \na) soltero. \nb) casado. \nc) viudo. \nd) divorciado."
<<"\nDigite a, b, c o d segun sea su estado civil";
cout<<"\n\nNumero de censo de solteras entre 16 y 21 años:";
for (;i<=1000;i++)
{
gotoxy(35,1); cout<<"ENCUESTA # " < gotoxy(24,3); gets (sexo);
gotoxy(26,4); cin>>edad;
gotoxy(46,10); gets (estado);
if (strcmp(sexo,"f")==0)
if (strcmp(estado,"a")==0)
if ((edad>=16)&&(edad<=21))
{
gotoxy(x,y); cout< x=x+5;
if (x>75)
{
x=1; y++;
}
}
gotoxy(24,3); cout<<" ";
gotoxy(26,4); cout<<" ";
gotoxy(46,10); cout<<" ";
}
getch();
}


41. Diseñe un programa en C++ que lea el valor de un ángulo expresado en radianes y calcule e imprima el valor del seno de dicho ángulo. Se leerá también el número de términos de la serie.
SEN(X) = X - ( X 3 / 3!) + ( X 5 / 5!) - (X7/ 7!) + ...

#include
#include

void main()
{
const double pi=3.141592654;
long double x,xrad,seno=0,f,term;
int signo,n,i;

cout<<"digite el angulo "; cin>>x;
cout<<"digite el numero de terminos "; cin>>n;
xrad=x*pi/180;
for (i=1;i<=n;i++)
{
f=1;
for (int k=2;k<=(2*i-1);k++)
{
f=f*k;
}
signo=pow(-1,i+1);
term=signo*pow(xrad,2*i-1)/f;
seno=seno+term;
}
cout<<"el seno de " < getch();
}


42. Un jeep puede viajar 500 km con un tanque lleno de gasolina. Desde una posición inicial, conteniendo ‘n’ tanques de gasolina el mismo jeep puede viajar:
L = 500*(1 + 1/3 + 1/5 +...+ 1 / (2n -1)) km
Estableciendo economía de combustible en una ruta. Diseñe un programa en C++ que calcule el valor de L dado n.

#include
#include

void main()
{
float l,k,suma=0;
int n,x=1;

cout<<"Digite el numero de tanques de gasolina "; cin>>n;
for (;x<=n;x++)
{
k=1/(2.0*x-1);
suma=suma+k;
}
l=500*suma;
cout<<"\nCon " < getch();
}



43. Se ofrece un trabajo que pague un dólar en la primera semana, pero dobla su salario cada semana, es decir, $1 la primera semana; $2 la segunda semana; $4 la tercera semana;... etc. Hasta $(2n-1) la enésima semana. Diseñar un programa en C++ que determine e imprima el salario por cada semana y el salario pagado hasta la fecha por espacio de 50 semanas.

#include
#include
#include
#include

void main()
{
int y=3,n=1,a=1,x=13;
float pago;

cout<<"Semana # Salario";
gotoxy(40,1); cout<<"Semana # Salario";
while (n<=50)
{
cout< pago=pow(2,(n-1));
gotoxy(a,y); cout< gotoxy(x,y); cout< n++; y++;
if (y==28)
{
a=40; y=3; x=52;
}
}
getch();
}


44. Diseñe un programa en C++ que calcule e imprima el pago de 102 trabajadores que laboran en la Cía. GACMAN. Los datos que se leerán serán los siguientes:
Las horas trabajadas
El sueldo por hora
El tipo de trabajador (1.-obrero, 2.-empleado)
Para calcular los pagos considerar lo siguiente:
a. Los obreros pagan 10 % de impuesto
b. Los empleados pagan 10 % de impuesto.
Los trabajadores (obreros y empleados) que reciban un pago menor de 500.000 pesos no pagan impuesto. Al final se deberá imprimir el total a pagar a los obreros y a los empleados.

#include
#include

void main()
{
float sueldo,horas,obrero=0,empldo=0,valor;
int tipo,x=1;

cout<<"Digite el sueldo por hora "; cin>>sueldo;
clrscr();
cout<<"\n\nTipo de trabajador:"
<<"\n1. Obrero. \n2. Empleado"
<<"\n(Digite el numero correspondiente)"
<<"\n\nDigite el numero de horas trabajadas";
while (x<=5)
{
gotoxy(35,1); cout<<"TRABAJADOR # " < gotoxy(36,6); cin>>tipo;
if ((tipo<1)||(tipo>2))
{
gotoxy(1,7); cout<<"Tipo no valido"
<<"(presione una tecla para continuar)";
getch();
gotoxy(1,7); cout<<" "
<<" ";
}
else
{
gotoxy(38,8); cin>>horas;
valor=sueldo*horas;
if (valor>=500000)
valor=valor*0.9;
if (tipo==1)
obrero=obrero+valor;
if (tipo==2)
empldo=empldo+valor;
x++;
}
gotoxy(36,6); cout<<" ";
gotoxy(38,8); cout<<" ";
}
clrscr();
cout<<"Total a pagar a los obreros = " < cout<<"\nTotal a pagar a los empleados = " < getch();
}


45. Diseñar un programa en C++ que convierta un número del sistema decimal a :
Sistema binario b) sistema octal c) sistema hexadecimal. Según se elija.

#include
#include

void main()
{
int x=80,n,option,digito;

cout<<"convertir un numero del sistema decimmal al sistema:"
<<"\n1. Binario. \n2. Octal."
<<"\nDigite 1 o 2: "; cin>>option;
cout<<"\nDigite el numero que desea convertir: "; cin>>n;
gotoxy(72,8); cout<<"RESULTADO";
if (option==1)
for (;n>0;x--)
{
digito=n%2;
n=n/2;
gotoxy(x,9); cout< }
if (option==2)
for (;n>0;x--)
{
digito=n%8;
n=n/8;
gotoxy(x,9); cout< }
getch();
}


46. Un objeto se deja caer a una altura de 100 mts. Diseñe un programa en C++ que imprima cada décima de segundo la distancia entre el objeto y el suelo y al final imprima el tiempo necesario en décimas de segundo para que el objeto toque el suelo.

#include
#include
#include

void main()
{
float d=100,vel=0;
int time=0;

cout<<"Distancia entre objeto y suelo =";
while (d>0)
{
d=d-vel;
vel=vel+0.98;
Sleep(100);
gotoxy(33,1); cout< time++;
}
clrscr();
cout<<"Tiempo transcurrido = " <

2 comentarios: