Computing">
Laboratorio Domiciliario #2
Laboratorio Domiciliario #2
Laboratorio Domiciliario #2
FACULTAD DE INGENIERÍA
ESCUELA DE FORMACIÓN PROFESIONAL DE SISTEMAS Y COMPUTACIÓN
(SWITCH CASE)
PROBLEMA 1. Una tienda de ropa ha establecido porcentajes de descuentos que se indican continuación, de
acuerdo a la nacionalidad del comprador (peruano, extranjero) y del producto que compra por ejemplo talla (S, M,
L), sexo (hombre, mujer). Por cada compra mostrada debe mostrarse la cantidad de productos comparado por talla,
cuantos hombres y cuantas mujeres compraron, cuantos clientes fueron naciones y cuantos extranjeros y por último
debe mostrarse el importe total de la compra. Los porcentajes de descuento varían según la tabla:
#include<iostream>
NACIONALIDAD TALLA S
TALLA M TALLA L
HOMBRE
MUJER HOMBRE MUJER HOMBRE MUJER
PERUANO 5 4
7 9 10 12
EXTRANJERO 4 5
9 7 12 10
*/
using namespace std;
char x,p='S';
int n,s,compraL=0,compraM=0,compraS=0,hombre=0,mujer=0,extranjero=0,peruano=0,dscto;
float precio;
cout<<"\t\t\t\tBIENVENIDO A LA TIENDA DE ROPA\n\n\n";
while(p=='S'){
else{
switch(x){
PROBLEMA 2. En la feria del hogar se ha encontrado una tienda que vende al contado y al crédito en 6, 12, 18,
24 mensualidades sus artefactos: televisores, refrigeradoras, hornos microondas. Se desea saber en cualquier
momento cuantas ventas se han realizado al contado, cuantas, al crédito en 6, cuantas, al crédito en 12, cuantas, al
crédito en 18, cuantas al crédito en 24 mensualidades.
#include<iostream>
/*PROBLEMA 2. En la feria del hogar se ha encontrado una tienda que vende al contado y al crédito en 6,
12, 18, 24
mensualidades sus artefactos: televisores, refrigeradoras, hornos micro hondas. Se desea saber en cualquier
momento
cuantas ventas se han realizado al contado, cuantas al crédito en 6, cuantas al crédito en 12, cuantas al
crédito en 18,
cuantas al crédito en 24 mensualidades. */
char ventas='S';
int tipoventa, tipocred;
int ncont=0, ncre6=0, ncre12=0, ncre18=0, ncre24=0;
while (ventas=='S'){
switch(tipocred){
}
printf ("\n\n Desea realizar mas ventas? (S)=Si, (N)=No: ");
scanf ("%s",&ventas);
}
printf ("\n\nNumero de ventas al contado : %d",ncont);
printf ("\nNumero de ventas al credito en 06 meses: %d ", ncre6);
printf ("\nNumero de ventas al credito en 12 meses: %d", ncre12);
printf ("\nNumero de ventas al credito en 18 meses: %d", ncre18);
printf ("\nNumero de ventas al credito en 24 meses: %d", ncre24);
return 0;
}
PROBLEMA 3. Una persona va de compras N veces a un supermercado donde le obsequian un chocolate sublime
por cada vez que compra más de 50 soles. Se desea saber cuántos chocolates sublimes ha ganado en las N veces
que compró.
#include<iostream>
int main(){
char ventas='S';
int importe=0;
float sublime=0;
while (ventas=='S'){
if(importe>50){
sublime=sublime+1;
}
}
printf ("\n\nNumero de sublimes ganados = %0.f ",sublime);
return 0;
}
PROBLEMA 4. Una empresa tiene N trabajadores, a cada uno de ellos le paga un sueldo según las horas
trabajadas a cierta tarifa por hora. Además, a cada trabajador cuyo sueldo supero los 600 soles le descuenta 10%
por concepto de impuestos. Se desea saber cuántos trabajadores gana más de 600 soles, cuantos ganan hasta 600
soles y cuánto dinero se tiene que pagar al estado por concepto de impuestos.
#include<iostream>
/*PROBLEMA 4. Una empresa tiene N trabajadores, a cada uno de ellos le paga un sueldo según las horas
trabajadas a cierta tarifa por hora. Además, a cada trabajador cuyo sueldo supero los 600 soles
le descuenta 10% por concepto de impuestos. Se desea saber cuántos trabajadores gana más de 600 soles,
cuantos ganan hasta 600 soles y cuánto dinero se tiene que pagar al estado por concepto de impuestos. */
int main(){
while (x<=n){
if (sueldo >600){
impuestos=impuestos+sueldo*0.1;
may600++;
x++;
}
else{
men600++;
x++;
}
}
cout<<"\n\nTrabajadores con sueldos menores e iguales a 600: "<<men600;
cout<<"\nTrabajadores con sueldos mayores a 600: "<<may600;
cout<<"\nTotal de impuestos: "<<impuestos;
return 0;
}
PROBLEMA 5. Determinar el importe a pagar por un alumno de un instituto cuya cuota tiene un porcentaje de
descuento que se establece en la siguiente tabla y en esa función el colegio de procedencia del alumno; así mismo
los importes están exonerados de impuestos.
INSTITUTOS
A B C
COLEGIO
Nacional 50 40 30
Particular 25 20 15
#include<iostream>
/* PROBLEMA 5. Determinar el importe a pagar por un alumno de un instituto cuya cuota tiene un
porcentaje de descuento que se establece en la siguiente tabla y en esa función el colegio de procedencia
del alumno; así mismo los importes están exonerados de impuestos.
COLEGIO
INSTITUTOS
A B C
Nacional 50 40 30
Particular 25 20 15
*/
using namespace std;
int main (void){
char x;
int n;
float precio;
else{
switch(x){
if(n==1){
cout<<"\nEl importe total a pagar es : S/."<<precio-
(precio*0.5)<<" procedente del (INSTITUTO A : NACIONAL)";
}
if(n==2){
cout<<"\nel importe total a pagar es : S/."<<precio-
(precio*0.25)<<" procedente del (INSTITUTO A : PARTICULAR)";
}
break;
case 'B': printf("\n\nINSTITUTO B\n\n");
if(n==1){
cout<<"\nEl importe total a pagar es : S/."<<precio-
(precio*0.5)<<" procedente del (INSTITUTO B : NACIONAL)";
}
if(n==2){
cout<<"\nel importe total a pagar es : S/."<<precio-
(precio*0.25)<<" procedente del (INSTITUTO B : PARTICULAR)";
}
break;
case 'C': printf("\n\nINSTITUTO C\n\n");
if(n==1){
cout<<"\nEl importe total a pagar es : S/."<<precio-
(precio*0.5)<<" procedente del (INSTITUTO C : NACIONAL)";
}
if(n==2){
cout<<"\nel importe total a pagar es : S/."<<precio-
(precio*0.25)<<" procedente del (INSTITUTO C : PARTICULAR)";
}
break;
}
}
cout<<"\n\n\n";
return 0;
}
PROBLEMA 6. Se ponen a la venta, las entradas para un partido de fútbol internacional, cuyo precio depende de
la tribuna, así: tribuna norte y sur cuesta 25 nuevos soles, tribuna oriente cuesta 45 nuevos soles y tribuna occidente
cuesta 65 nuevos soles. Diseñe usted, la solución a un programa que controle la venta de dichas entradas a fin de
poder saber la cantidad de personas que asisten a cada tribuna, la cantidad total de personas (Asistencia) y el monto
total recaudado por la venta de todas las entradas. (Recaudación).
#include<iostream>
int tn=0,ts=0,to=0,tox=0,montot=0,x;
char ventas='S';
while(ventas=='S'){
printf ("\n\nIngrese el numero de tribuna que desea : ");
scanf("%d",&x);
switch(x){
return 0;
}
PROBLEMA 7. Una hacienda productora de ganado negocia con vacas de cuatro diferentes razas como son
Shorton, Yorkshire, Holstein y Hereford. Diseñe usted la solución de un programa que permita ingresar la raza y el
peso en kilogramos de un conjunto de vacas. Las vacas con peso de hasta 500 kilogramos se destinan a ganadería
de carne, y el resto a la producción de leche. Debe mostrar luego de cada vaca ingresada lo siguiente:
#include<iostream>
/*PROBLEMA 7. Una hacienda productora de ganado negocia con vacas de cuatro diferentes razas
como son
Shorton, Yorkshire, Holstein y Hereford. Diseñe usted la solución de un programa que permita
ingresar la raza y el peso en kilogramos de un conjunto de vacas. Las vacas con peso de hasta 500
kilogramos se destinan a ganadería de carne, y el resto a la producción de leche. Debe mostrar
luego
de cada vaca ingresada lo siguiente:
int main(){
setlocale(LC_CTYPE,"Spanish");
float peso,r1=0,n,r2=0,r3=0,r4=0,suma=0,p1=0,p2=0,p3=0,p4=0,pmenor=10000,pmayor=0;
int opcion;
char x='S';
while(x=='S'){
if(peso<=pmenor){ pmenor=peso; }
if(peso>=pmayor){ pmayor=peso; }
switch(opcion)
{
case 1: cout<<"\n\nShorton"; r1++;
if(peso<=500){ cout<<"\nLa vaca se destina a ganaderia"; }
suma=suma+peso;
n=r1+r2+r3+r4;
return 0;
}
CONTROL DE PROCESOS REPETITIVOS.
PROBLEMA 8. ¿Cuál es la salida de los siguientes bucles? Antes de responder piense primero sobre el
papel la respuesta y después compruébelo con el Dev C++.
#include<iostream>
/* PROBLEMA 8. ¿Cuál es la salida de los siguientes bucles? Antes de responder piense primero
sobre el papel la respuesta y después compruébelo con el Dev C++.
*/
using namespace std;
printf("Hola ");
printf("%i \n",n);
}
cout<<"\n\nEl programa imprime (HOLA) seguido de numeros desde 10 hasta 2 con un descenso
de 2";
return 0;
}
#include<iostream>
/* PROBLEMA 8. ¿Cuál es la salida de los siguientes bucles? Antes de responder piense primero
sobre el papel la respuesta y después compruébelo con el Dev C++.
*/
using namespace std;
int n;
printf("Hola ");
printf("%i \n",n);
}
cout<<"\n\nEl programa imprime (HOLA) seguido de numeros desde 0 hasta 10 con un ascenso de 1";
return 0;
}
#include<iostream>
/* PROBLEMA 8. ¿Cuál es la salida de los siguientes bucles? Antes de responder piense primero
sobre el papel la respuesta y después compruébelo con el Dev C++.
*/
using namespace std;
int n,m;
cout<<"\n\nEl programa imprime una tabla que multiplica numeros (desde 1 hasta 10 con salto de 1) *
(desde 10 hasta 1 con salto de -1)";
return 0;
}
PROBLEMA 9. ¿Qué hace el siguiente bucle while?. Rescríbalo con sentencias for y do-while.
num = 10;
while (num <= 10)
{
printf (“%d \n”, num);
num = num +10;
}
#include<iostream>
/* PROBLEMA 9. ¿Qué hace el siguiente bucle while?. Rescríbalo con sentencias for y do-while.
*/
using namespace std;
int num;
num = 10;
do{
printf("%d \n",num);
num=num + 10;
}while(num <=10);
return 0;
}
#include<iostream>
/* PROBLEMA 9. ¿Qué hace el siguiente bucle while?. Rescríbalo con sentencias for y do-while.
*/
using namespace std;
for(int num=10;num<=10;num=num+10){
printf("%d \n",num);
return 0;
}
#include<iostream>
/* PROBLEMA 9. ¿Qué hace el siguiente bucle while?. Rescríbalo con sentencias for y do-while.
*/
using namespace std;
int num;
num = 10;
while(num <=10){
printf("%d \n",num);
num=num + 10;
}
cout<<"\n\nEl programa imprime un entero que comienza en 10 y avanza de 10 en 10 por la cual no puede
seguir impriendo debido a la condicion";
return 0;
}
PROBLEMA 10. Calcular la suma de las siguientes series:
11 1 1
a) + + +.....
1 2 3 n
1 2 3 4 n
a) 2 + 22 + 23 + 24 +.....+ 2n
#include<iostream>
#include<math.h>
1 1 1 1
a) _ + _ + _ + ... _
1 2 3 n
b) 1 2 3 4 n
_ + _ + _ + _ + ..._
2 2^2 2^3 2^4 2^n
*/
using namespace std;
float num,i=1,secuencia=0,division;
cout<<"ingrese un numero : ";
cin>>num;
while(num>=i){
division=(1/i);
secuencia=secuencia+division;
i++;
}
cout<<"\n\nLa suma de la serie a) es : "<<secuencia;
secuencia=0;
division=0;
i=1;
while(num>=i){
division=(i/pow(2,i));
secuencia=secuencia+division;
i++;
}
cout<<"\n\nLa suma de la serie b) es : "<<secuencia;
return 0;
}
PROBLEMA 11. Realice un programa que lea números enteros positivos hasta que se introduzca un 0. El
programa deberá mostrar por pantalla la cantidad de números leídos, la media, así como el valor máximo
introducido.
#include<iostream>
/*
PROBLEMA 11. Realice un programa que lea números enteros positivos hasta que se introduzca un 0.
El programa deberá mostrar por pantalla la cantidad de números leídos, la media, así como el
valor máximo introducido.
*/
int n=1,suma,media,cant=0;
while(n>0){
}
media=suma/(cant-1);
return 0;
PROBLEMA 12. Realice un programa que calcule y visualice el más grade, el más pequeño y la media de
n números (n>0). El valor de n se solicitará al principio del programa y los números serán introducidos
por el usuario.
#include<iostream>
/*
PROBLEMA 12. Realice un programa que calcule y visualice el más grade, el más pequeño
y la media de n números (n>0). El valor de n se solicitará al principio del programa
y los números serán introducidos por el usuario.
*/
using namespace std;
float n,n1,cont=1,mayor=0,menor=1000000,media,suma=0;
cout<<"\nIngrese la cantidad de numeros que desea calcular : ";
cin>>n;
while(n>0){
cont++;
n--;
if(n1<=menor){
menor=n1;
}
if(n1>=mayor){
mayor=n1;
}
suma=suma+n1;
}
media=suma/(cont-1);
cout<<"\n\nLa media es : "<<media;
cout<<"\nEl numero mayor es : "<<mayor;
cout<<"\nEl numero menor es : "<<menor;
return 0;
}
PROBLEMA 13. Realizar un programa que pida dos números enteros por teclado y muestre por pantalla
el siguiente menú:
MENU
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir
Elija opción:
El usuario deberá elegir una opción y el programa deberá mostrar el resultado por pantalla y después
volver al menú. El programa deberá ejecutarse hasta que se elija la opción 5. Salir.
#include<iostream>
/*
PROBLEMA 13. Realizar un programa que pida dos números enteros por teclado y muestre por
pantalla el siguiente menú:
MENU
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir
Elija opción:
El usuario deberá elegir una opción y el programa deberá mostrar el resultado por pantalla y
después volver al menú.
El programa deberá ejecutarse hasta que se elija la opción 5. Salir.
*/
float a,b,rpta;
int opcion;
char x='S';
while(x=='S'){
switch(opcion){
rpta=0;
}
return 0;
}
PROBLEMA 14. Modificar el ejercicio anterior para que al elegir la opción 5, en vez de salir del
programa directamente, nos muestre el siguiente mensaje de confirmación.
MENU
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir
Elija opción: 5
¿Desea salir realmente (S/N)?
De modo que si pulsamos el carácter ‘s’ salgamos del programa, pero si pulsamos el carácter ‘n’,
volvamos al menú.
#include<iostream>
/*
PROBLEMA 14. Modificar el ejercicio anterior para que al elegir la opción 5, en vez de salir del
programa
directamente, nos muestre el siguiente mensaje de confirmación.
MENU
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
5. Salir
Elija opción:
De modo que si pulsamos el carácter 's' salgamos del programa, pero si pulsamos el carácter 'n',
volvamos al menú.
*/
float a,b,rpta;
int opcion;
char x='N';
while(x=='N'){
switch(opcion){
break;
default: cout<<"\n\n\t\t Opcion no valida \n\n";
break;
}
rpta=0;
}
return 0;
}
PROBLEMA 15. Realice un programa que determine si un número leído del teclado es primo o no.
#include<iostream>
/*
PROBLEMA 15. Realice un programa que determine si un número leído del teclado es primo o no.
*/
int n,i,a=0;
for(i=1;i<=n;i++){
if(n%i==0){
a++;
}
}
if(a==2){
cout<<"\n\nEl numero "<<n<<" es primo";
}
else{
cout<<"\n\nEl numero "<<n<<" no es primo";
}
return 0;
}
PROBLEMA 16. Un número perfecto es un entero positivo, que es igual a la suma de todos los enteros
positivos (excluido él mismo) que son divisores del número. El primer número perfecto es 6, ya que los
divisores de 6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escriba un programa que lea un número entero positivo n y
muestre por pantalla si ese número es o no perfecto.
#include<iostream>
/*
PROBLEMA 16. Un número perfecto es un entero positivo, que es igual a la suma de todos los
enteros positivos
(excluido él mismo) que son divisores del número. El primer número perfecto es 6, ya que los
divisores de
6 son 1, 2, 3 y 1 + 2 + 3 = 6. Escriba un programa que lea un número entero positivo n y muestre
por
pantalla si ese número es o no perfecto.
*/
int n,i,suma=0;
PROBLEMA 17. Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla un menú con las opciones
posibles.
#include<iostream>
/*
PROBLEMA 17. Que pase de Kg a otra unidad de medida de masa, mostrar en pantalla un menú con las
opciones posibles.
*/
using namespace std;
int main(){
setlocale(LC_CTYPE,"Spanish");
int opcion;
float peso;
printf("\n\nSeleccione opción:\n");
printf("\n\n1 - Hectogramos\n");
printf("2 - Decagramos\n");
printf("3 - Gramos\n");
printf("4 - Decigramos\n");
printf("5 - Centigramos\n");
printf("6 - Miligramos\n\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
cout<<"\n\nEl peso es : "<<peso/10;
break;
case 2:
cout<<"\n\nEl peso es : "<<peso/100;
break;
case 3:
cout<<"\n\nEl peso es : "<<peso/1000;
break;
case 4:
cout<<"\n\nEl peso es :"<<peso/10000;
break;
case 5:
cout<<"\n\nEl peso es : "<<peso/100000;
break;
case 6:
cout<<"\n\nEl peso es : "<<peso/1000000;
break;
default:
printf("Opción no válida.");
break;
}
return 0;
}
PROBLEMA 18. Realice un programa que lea un número entero por teclado y devuelva por pantalla el
número de dígitos que componen ese número. Por ejemplo, si introducimos el número 12334, el
programa deberá devolver 5.
(Pista: utilice el operador %, averigüe para qué sirve y piense cómo utilizarlo).
#include<iostream>
/*
PROBLEMA 18. Realice un programa que lea un número entero por teclado y devuelva por
pantalla el número de dígitos que componen ese número. Por ejemplo, si introducimos el
número 12334, el programa deberá devolver 5.
*/
int n,i=0,x=1,y=10,a;
cout<<"\n\n";
if(n<0){
n=n*(-1);
cout<<"-";
}
if(n==0 || n<10){
cout<<n<<" tiene "<<x<<" cifra";
}
else{
while(n>=i){
a=i%y;
if(a==0){
y=y*10;
x++;
}
if(i==n){
cout<<n<<" tiene "<<x<<" cifras";
}
i++;
}
}
return 0;
}
PROBLEMA 19. Realice un programa que lea un número entero por teclado y devuelva por pantalla las
que forman ese número. Por ejemplo, si se introduce el número 2345, el programa deberá mostrar por
pantalla 5 – 4 – 3 – 2.
(Pista: utilice el ejercicio anterior como base para realizar este ejercicio).
#include<iostream>
/*
PROBLEMA 19. Realice un programa que lea un número entero por teclado y devuelva por pantalla las
que forman ese número.
Por ejemplo, si se introduce el número 2345, el programa deberá mostrar por pantalla 5 - 4 - 3 - 2.
(Pista: utilice el ejercicio anterior como base para realizar este ejercicio).
#include<iostream>
/*
PROBLEMA 19. Realice un programa que lea un número entero por teclado y devuelva por
pantalla las que forman ese número.
Por ejemplo, si se introduce el número 2345, el programa deberá mostrar por pantalla 5 - 4 -
3 - 2.
(Pista: utilice el ejercicio anterior como base para realizar este ejercicio).
*/
int n,x=0,a,b=10,n1,a1,i=0,y=10,x1=1;
n1=n;
cout<<"\n\n";
while(n1>=i){
a1=i%y;
if(a1==0){
y=y*10;
x1++;
}
i++;
}
if(n<=9){
x=1;
}
while(x<x1){
y=y/10;
a=n%10;
n=n/10;
cout<<a;
if(n1>=b){
cout<<" - ";
b=b*10;
}
x++;
}
return 0;
PROBLEMA 20. Realizar un programa que imprima las letras desde la ‘A’ hasta la ‘Z’.
Ejemplo:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
#include<iostream>
/*
PROBLEMA 20. Realizar un programa que imprima las letras desde la 'A' hasta la 'Z'.
Ejemplo:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/
char i ;
for(i='A';i<'Z';i++){
cout<<i;
}
return 0;
PROBLEMA 21. Realizar un programa que imprima las letras desde la ‘A’ hasta la ‘Z’ en diagonal.
Ejemplo:
A
B
C
D
…
Z
#include<iostream>
/*
PROBLEMA 21. Realizar un programa que imprima las letras desde la 'A' hasta la 'Z' en diagonal.
Ejemplo:
A
B
C
D
…
Z
*/
while(cont<=n){
cout<<" ";
cont++;
}
cont=1;
n++;
}
return 0;
}
PROBLEMA 22. Realice un programa que pida al usuario un número N y muestre un árbol centrado
desde 1 hasta N
cout<<"\n";
for(x=0;x<n;x++){
for(a=n;y<=a;a--){
cout<<" ";
}
for(a=1;y>=a;a++){
cout<<a;
cout<<" ";
}
cout<<endl;
y++;
}
return 0;
}
PROBLEMA 23. Dado el nombre, día de la semana (0=domingo, 1=lunes, 2=martes, etc.), número de
horas diurnas y número de horas nocturnas trabajadas de un grupo de trabajadores, tomando en cuenta
que:
• La tarifa de las horas diurnas es de Bs. 10000
• La tarifa de horas nocturnas es de Bs. 25000
• En caso de ser Domingo la tarifa se incrementará en Bs. 5000 el turno diurno y Bs. 7500 el
turno nocturno Desarrolle un programa que determine e imprima:
1) Para cada trabajador, el monto a cobrar por concepto de salario
2) Nombre del primer trabajador cuyas horas nocturnas son mayores que las diurnas
3) Nombre del trabajador y día de la semana con mayor salario.
4) Promedio de horas de los trabajadores que laboraron el día domingo.
#include<iostream>
/*
PROBLEMA 23. Dado el nombre, día de la semana (0=domingo, 1=lunes, 2=martes, etc.), número de horas
diurnas y número de horas
nocturnas trabajadas de un grupo de trabajadores, tomando en cuenta que:
*/
while(cent=='N'){
cout<<"\nDia de la Semana (0=Do , 1=Lu , 2=Ma , 3=Mi , 4=Ju, 5=Vi , 6=Sa) : ";
cin>>DS;
if(DS==0){
MT = HD * 15000 + HN * 32500;
S1 = S1 + HD + HN;
C1++;
}
else{
MT = HD * 10000 + HN * 25000;
}
cout<<endl<<Nombre<<" : "<<MT;
if(HN>HD){
if(Bandera1==0){
PNombre = Nombre;
Bandera1 = 1;
}
}
if(Bandera2==0){
Mayor = MT;
MNombre = Nombre;
MDia = DS;
Bandera2 = 1;
}
else{
if(MT>Mayor){
Mayor = MT;
MNombre = Nombre;
MDia = DS;
}
}
cout<<"\n\nUltimo Candidato (S/N) ? ";
cin>>cent;
cout<<"\n\n";
}
if(Bandera1==0){
cout<<"\n\nNo hubo trabajadores con HN > HD ";
}
else{
cout<<"\n\nNombre del primer trabajador con HN > HD : "<<PNombre;
}
cout<<"\nNombre de la persona con mayor salario : "<<MNombre;
cout<<"\nDia de la semana donde gano el mayor salario : "<<MDia;
if(C1==0){
cout<<"\nNo hubo trabajadores en Domingo";
}
else{
Pro = S1 / C1;
cout<<"\n\nPromedio de horas los domingos : "<<Pro;
}
return 0;
PROBLEMA 24. Para ser admitidos en el Club MENSA los candidatos deben aprobar un test de inteligencia con
un puntaje de 74 puntos como mínimo. Los nombres de los candidatos y los resultados son suministrados a una
computadora. Elabore un programa que procese la información y determine lo siguiente:
#include<iostream>
/*
PROBLEMA 24. Para ser admitidos en el Club MENSA los candidatos deben aprobar un test de inteligencia
con un puntaje de 74
puntos como mínimo. Los nombres de los candidatos y los resultados son suministrados a una computadora.
Elabore un programa que procese la información y determine lo siguiente:
*/
int Puntos,mayor,menor;
int C1=0,C2=0,C3=0,Bandera1=0,Bandera2=0,C4=0;
float por;
string Nombre,Mnombre;
char cent='N';
while(cent=='N'){
cout<<"Nombre : ";
cin>>Nombre;
if(Puntos>= 74){
C1++;
if(Puntos >=80 && Puntos<=100){
C4++;
}
}
else{
C2++;
}
C3++;
if(Bandera1==0){
mayor=Puntos;
Bandera1=1;
}
else{
if(Puntos>mayor){
mayor=Puntos;
}
}
if(Bandera2==0){
menor=Puntos;
Bandera1=1;
}
else{
if(Puntos<menor){
menor=Puntos;
}
}
PROBLEMA 25. Se tiene la siguiente información relacionada a los empleados de una empresa:
nombre del empleado
Sexo: 0 = femenino, 1 = masculino
departamento: 1= compras, 2= contabilidad, 3= control de calidad, 4= ingeniería
edad
tiempo en años que tiene trabajando en la empresa
#include<iostream>
#include<string>
#include <clocale>
/*
PROBLEMA 25. Se tiene la siguiente información relacionada a los empleados de una empresa:
nombre del empleado
Sexo: 0 = femenino, 1 = masculino
departamento: 1= compras, 2= contabilidad, 3= control de calidad, 4= ingeniería
edad
tiempo en años que tiene trabajando en la empresa
*/
int S1=0,C1=0,S2=0,C2=0,C3=0,C4=0,mayor;
int sexo, dpto, edad, TT,bandera=0,Medad;
float pro1,pro2,por;
string Nombre,Mnombre;
char cent='N';
while(cent=='N'){
if(sexo==0){
S1 = S1 + edad;
C1 = C1++;
if(dpto==2){
C3++;
}
}
C4 = C4 + 1;
if(edad>40){
S2 = S2 + TT;
C2++;
}
if(bandera==0){
mayor = TT;
Mnombre = Nombre;
Medad = edad;
bandera = 1;
}
else{
if(TT>mayor){
mayor=TT;
Mnombre=Nombre;
Medad=edad;
}
}
if(C1==0){
cout<<"\n\nNo hubo empleadas a quienes calcular el promedio de la edad ";
}
else{
pro1 = S1 / C1;
cout<<"\nPromedio de Edad de las Mujeres : "<<pro1;
}
if(C2==0){
cout<<"\nNo Hubo empleados mayores de 40 años para el promedio";
}
else{
pro1 = S2 / C2;
cout<<"\nPromedio de tiempo trabajado de aquellos con edad > 40 : "<<pro2;
}
}
PROBLEMA 26. Realice un programa que calcule el producto n! (n-1)!...3!*2!*1!
#include<iostream>
/*
PROBLEMA 26. Realice un programa que calcule el producto n! (n-1)!...3!*2!*1!
*/
float n,producto=1,fac=1;
for(int c=1;c<=n;c++){
fac=fac*c;
}
cout<<n<<"!";
if(n>=2){ cout<<" * ";}
producto=producto*fac;
fac=1;
n--;
cout<<" = "<<producto;
return 0;
PROBLEMA 27. Obtener los dígitos de un número ingresado por teclado, ejemplo 100, tiene 3 dígitos.
#include<iostream>
/* PROBLEMA 27. Obtener los dígitos de un número ingresado por teclado, ejemplo
100, tiene 3 dígitos.*/
int n,i=0,x=1,y=10;
cout<<"\n\n";
if(n<0){
n=n*(-1);
cout<<"-";
}
while(n>=i){
if(n>=y){
y=y*10;
x++;
}
if(i==n){
cout<<n<<" tiene "<<x<<" cifras";
}
i++;
}
return 0;
(WHILE Y DO-WHILE)
#include<iostream>
/*
PROBLEMA 28. Hallar la sumatoria de: 2! + 4! + 6! + 8! + ...
*/
int n,serie=2,suma=0,i=1,c=1,fac=1;
do{
while(c<=serie){
fac=fac*c;
c++;
}
cout<<serie<<"! ";
if(n>=2 && n>=i+1){
cout<<" + ";
}
suma=suma+fac;
serie=serie+2;
i++;
c=1;
fac=1;
}while(i<=n);
cout<<" = "<<suma;
return 0;
}
#include<iostream>
/*
PROBLEMA 29. Generar la serie: 1, 5, 3, 7, 5, 9, 7, ..., 23
*/
int serie=1,a=0,b=1;
cout<<serie<<" ";
do{
if(a==0){
serie+=4;
a=1;
cout<<serie<<" ";
}
else{
serie-=2;
a=0;
cout<<serie<<" ";
}
}while(serie<23);
return 0;
}
PROBLEMA 30. Generar 5,10,15,20,25,30, 35…n.
#include<iostream>
/*
PROBLEMA 30. Generar 5,10,15,20,25,30, 35…n.
*/
int n,c=1,serie=5;
while(c<=n){
cout<<serie<<" ";
serie+=5;
c++;
}
return 0;
}
PROBLEMA 31. Si n=7 generar 7,6,5,4,3,2,1.
#include<iostream>
/*
PROBLEMA 31. Si n=7 generar 7,6,5,4,3,2,1.
*/
int n,c=1,serie;
while(c<=n){
cout<<serie<<" ";
serie--;
c++;
}
return 0;
}
PROBLEMA 32. Determine el resultado de la siguiente serie, considerando que el denominador no debe exceder
de 100: ¾ - 7/8 + 15/16 -31/32 + ……
#include<iostream>
/*
PROBLEMA 32. Determine el resultado de la siguiente serie, considerando que el
denominador no debe exceder de 100: 3/4- 7/8 + 15/16 -31/32 + ……
*/
float num1=4,num2=8,rpta=0,suma=0,a=1;
while(num2<60){
cout<<num1-1<<"/"<<num1<<" - "<<num2-1<<"/"<<num2;
num2=num2*2;
num1=num1*2;
rpta=((num1-1)/num1)-((num2-1)/num2);
suma=suma+rpta;
if(a<2){
cout<<" + ";
}
num2=num2*2;
num1=num1*2;
a++;
cout<<" = "<<rpta;
return 0;
PROBLEMA 33. Escriba un programa que, para cualquier entero positivo n, dé una lista de todos los enteros
positivos primos menores o iguales que n.
#include<iostream>
/*
PROBLEMA 33. Escriba un programa que, para cualquier entero positivo n, dé una lista de
todos los enteros positivos primos menores o iguales que n.
*/
int n,i,a,cont=1;
while(cont<n){
a=0;
for(i=1;i<=cont;i++){
if(cont%i==0){
a++;
}
}
if(a==2){
cout<<cont<<" ";
}
cont++;
}
return 0;
}
#include<iostream>
/*
PROBLEMA 34. Recibe un número entero y retorne su factorial.
*/
int n,fac=1;
for(int c=1;c<=n;c++){
fac=fac*c;
}
return 0;
}
PROBLEMA 35. Recibe un número entero y retorne un nuevo número con sus cifras invertidas.
#include<iostream>
/*
PROBLEMA 35. Recibe un número entero y retorne un nuevo número con sus cifras invertidas.
*/
int n,x=0,a,b=10,n1,a1,i=0,y=10,x1=1;
n1=n;
cout<<"\n\n";
while(n1>=i){
a1=i%y;
if(a1==0){
y=y*10;
x1++;
}
i++;
}
if(n<=9){
x=1;
}
while(x<x1){
y=y/10;
a=n%10;
n=n/10;
cout<<a;
x++;
}
return 0;
PROBLEMA 36. Recibe dos números enteros, el primero representa un número y el segundo representa la base de
numeración. El método debe retornar el número expresado en dicha base de numeración.
#include<iostream>
/*
PROBLEMA 36. Recibe dos números, el primero representa un número y el segundo representa
la base de numeración. El método debe retornar el número expresado en dicha base de numeración.
*/
float n,n1,var=1;
float rp=0;
cout<<"\n\nserie = ";
while(n1<=100){
cout<<"("<<var<<")"<<n<<"/"<<n1<<" + ";
rp=rp+var*(n/n1);
if(var==1){
var--;
}
else{
var=1;
}
n=n+n1;
n1=n1*2;
}
return 0;
PROBLEMA 37. Recibe dos números enteros y retorna su máximo común divisor.
#include<iostream>
/*
PROBLEMA 37. Recibe dos números enteros y retorna su máximo común divisor.
*/
int n,n1,c,D,d,r;
if(n==0 || n1==0){
cout<<"\n\nel cero no es factor de ningun numero";
}
else{
if(n>n1){
D=n;
d=n1;
}
else{
D=n1;
d=n;
}
c=D/d;
r=D%d;
while(r!=0){
D=d;
d=r;
c=D/d;
r=D%d;
}
}
cout<<"\n\nMCD("<<n<<","<<n1<<") = "<<d;
return 0;
PROBLEMA 38. Recibe un número entero y retorna el mayor número posible que se pueda formar con sus cifras.
Por ejemplo. Recibe 2009, debe retornar 9200.
#include<iostream>
/*
PROBLEMA 38. Recibe un número entero y retorna el mayor número posible que se pueda formar
con sus cifras. Por ejemplo. Recibe 2009, debe retornar 9200.
*/
int n,i=0,a,x=0,z=10,m=0,z1,mayor=0,mayor1=0;
int oep;
while(i<n){
if(n>=z){
z=z*10;
m++;
}
i++;
}
z=z/10; z1=z;
for(int c=0;c<=m;c++){
while(x<=m){
a=n/z; a=a%10;
if(mayor<=a){
mayor=a;
oep=z;
mayor1=mayor;
}
z=z/10;
x++;
}
n=n-(oep*mayor);
z=z1; x=0; oep=0; mayor=0;
cout<<mayor1;
}
return 0;
}
Nota
Los problemas serán resueltos con Diagramas de Flujo de cada uno de los problemas.
El desarrollo será en forma global en (DEV C/C++.)
Los trabajos se realizarán de forma individual.
Se entregarán grabado en CD e impreso.
La fecha de entrega será el día viernes 15 de diciembre del presente.
La exposición individual con respecto a los problemas se realizará el día 16 de diciembre a horas 11:00 am
del presente.
Las fechas son improrrogables.
El Docente.