fundamentos de la programacion u1 ejercicios

45
Capítulo 5 EJERCICIOS DE AUTOEVALUACION 5.1 Estructuras Simples 5.2 Estructura condicional < if - else > 5.3 Estructura de selectiva múltiple < switch > 5.4 Estructura repetitiva < for > 5.5 Estructura repetitiva < while > y < do - while > 5.6 Anidamiento de bucles

Upload: jon-mori

Post on 13-Jun-2015

822 views

Category:

Documents


6 download

DESCRIPTION

Esta es la entrega que ofrece una amplia enseñanza acerca de la resolución de problemas computacionales en lenguaje C++.Net. Este libro muestra ejercicios diseñados didácticamente para la fácil asimilación del estudiante. Además se incluye ejercicios de maratón, exámenes y ejercicios para aplicaciones actuales. Con este libro Usted podrá culminar su carrera de ciencias informáticas sin morir en el intento.

TRANSCRIPT

Page 1: Fundamentos de la programacion u1 ejercicios

Capítulo 5

EJERCICIOS DE AUTOEVALUACION

5.1 Estructuras Simples

5.2 Estructura condicional < if - else >

5.3 Estructura de selectiva múltiple < switch >

5.4 Estructura repetitiva < for >

5.5 Estructura repetitiva < while > y < do - while >

5.6 Anidamiento de bucles

Page 2: Fundamentos de la programacion u1 ejercicios

5.1 Estructuras Simples

/**********************Inicio del Programa*************************** Ejercicio 01: Ingrese por teclado un número, calcular y mostrar: -El doble del número ingresado -La 3ra. parte del número ingresado. -El cubo del número ingresado. *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro, doble, cubo; double tercera_parte; printf("\nIngrese un numero: "); scanf("%d", &nro); fflush(stdin); doble = nro * 2; cubo = nro * nro * nro; tercera_parte = nro / 3.0; printf("\nDoble: %d", doble); printf("\nCubo: %d", cubo); printf("\nTercera Parte: %8.3lf", tercera_parte); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 02: Ingrese por teclado el nombre y 3 notas de un alumno, calcular y mostrar el promedio del alumno *********************************************************************/ #include <iostream> using namespace std; void main(){ char nombre[30]; int n1, n2, n3; double prom; printf("\nIngrese nombre: "); gets(nombre); fflush(stdin); printf("\nIngrese nota 1: "); scanf("%d", &n1); fflush(stdin); printf("\nIngrese nota 2: "); scanf("%d", &n2); fflush(stdin);

Page 3: Fundamentos de la programacion u1 ejercicios

printf("\nIngrese nota 3: "); scanf("%d", &n3); fflush(stdin); prom = ( n1 + n2 + n3 ) / 3.0; printf("\n\n%s tiene promedio: %8.0lf", nombre, prom); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 03: Ingrese por teclado una cantidad en metros, transformar los metros a centímetros, pulgadas (2.54 cm) y a pies (12 pulgadas) *********************************************************************/ #include <iostream> using namespace std; void main(){ double centimetro=100, pulgada=2.54, pie=12 ; double metros, centimetros, pulgadas, pies; printf("\nIngrese cantidad en metros: "); scanf("%lf", &metros); fflush(stdin); centimetros = metros * centimetro; pulgadas = centimetros / pulgada; pies = pulgadas / pie; printf("\n\n Centimetros: %8.3lf", centimetros); printf("\n Pulgadas: %8.3lf", pulgadas); printf("\n Pies: %8.3lf", pies); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 04: Ingrese por teclado la descripción, precio y cantidad vendida de un producto, calcular y mostrar: -Importe de la compra -Impuesto general a las ventas (18%) -Importe Final

Page 4: Fundamentos de la programacion u1 ejercicios

*********************************************************************/ #include <iostream> using namespace std; void main(){ char descripcion[50]; double precio, importe_compra, igv=0.18, impuestos, importe_final; int cantidad; printf("\nIngrese descripcion producto: "); gets(descripcion); fflush(stdin); printf("\nIngrese precio: "); scanf("%lf", &precio); fflush(stdin); printf("\nIngrese cantidad vendida: "); scanf("%d", &cantidad); fflush(stdin); importe_compra = precio * cantidad; impuestos = importe_compra * igv; importe_final = importe_compra + impuestos; printf("\n\n Importe Compra: %8.2lf", importe_compra); printf("\n Impuesto General a las Ventas: %8.2lf", impuestos); printf("\n Importe Final: %8.2lf", importe_final); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 05: Ingrese por teclado un número de 3 cifras, calcular y mostrar: - Suma de las cifras - EL número ingresado en sentido inverso *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro, U, D, C, nroinv; printf("\nIngrese un numero de tres cifras: "); scanf("%d", &nro); fflush(stdin); C = nro / 100; D = (nro % 100) / 10; U = nro % 10; nroinv = U*100 + D*10 + C; printf("\n\n Suma de cifras: %d", U + D + C); printf("\n\n Nro ingresado invertido: %d", nroinv); printf("\n\n");

Page 5: Fundamentos de la programacion u1 ejercicios

system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 06: Ingrese por teclado el número de alumnos matriculados en un colegio, calcular y mostrar: - Cantidad de aulas completas - Cantidad de alumnos que faltan para completar la última aula. Nota: Un aula completa es de 40 alumnos. *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro_alu, aulac, alufal, aula=40; printf("\nIngrese un numero de alumnos matriculados: "); scanf("%d", &nro_alu); fflush(stdin); aulac = nro_alu / aula; alufal = aula - (nro_alu % aula); printf("\n\n Aulas completas: %d", aulac); printf("\n\n Alumnos que faltan para completar la ultima aula: %d", alufal); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 07: Se tiene n segundos, calcular y mostrar: - Cantidad de horas - Cantidad de minutos - Cantidad de segundos restantes *********************************************************************/ #include <iostream> using namespace std; void main(){

Page 6: Fundamentos de la programacion u1 ejercicios

int seg, hor, min, seg_res, segxhor=3600, segxmin=60; printf("\nIngrese numero de segundos: "); scanf("%d", &seg); fflush(stdin); hor = seg / segxhor; min = (seg % segxhor) / segxmin; seg_res = ((seg % segxhor) % segxmin); printf("\n\n Horas: %d", hor); printf("\n\n Minutos: %d", min); printf("\n\n Segundos restantes: %d", seg_res); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 08: Ingrese por teclado el sueldo de un empleado, visualizar la mejor forma de distribución, si para eso contamos con: -Billetes de 100, 50, 20, 10 -Monedas de 5, 2, 1, 0.50, 0.20, 0.10 *********************************************************************/ #include <iostream> using namespace std; void main(){ double sueldo_real, centavos_real; int sueldo, B100, B50, B20, B10, M5, M2, M1, centavos, M05, M02, M01; printf("\nIngrese sueldo: "); scanf("%lf", &sueldo_real); fflush(stdin); sueldo = sueldo_real; B100 = sueldo /100; B50 = (sueldo % 100) / 50; B20 = ((sueldo % 100) % 50) / 20; B10 = (((sueldo % 100) % 50) % 20) / 10; M5 = ((((sueldo % 100) % 50) % 20) % 10) / 5; M2 = (((((sueldo % 100) % 50) % 20) % 10) % 5) / 2; M1 = (((((sueldo % 100) % 50) % 20) % 10) % 5) % 2 ; centavos_real = sueldo_real - sueldo; centavos = centavos_real * 10; printf("\n\nCentavos:%d", centavos); M05 = centavos / 5; M02 = (centavos % 5) / 2;

Page 7: Fundamentos de la programacion u1 ejercicios

M01 = (centavos % 5) % 2; printf("\n\n Numero Billetes de 100: %d", B100); printf("\n\n Numero Billetes de 50: %d", B50); printf("\n\n Numero Billetes de 20: %d", B20); printf("\n\n Numero Billetes de 10: %d", B10); printf("\n\n Numero Monedas de 5: %d", M5); printf("\n\n Numero Monedas de 2: %d", M2); printf("\n\n Numero Monedas de 1: %d", M1); printf("\n\n Numero Monedas de 0.50: %d", M05); printf("\n\n Numero Monedas de 0.20: %d", M02); printf("\n\n Numero Monedas de 0.10: %d", M01); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 09: Ingrese por teclado el nombre y 2 fechas (día, mes año) una la fecha actual y otra la fecha de nacimiento de la persona, calcule y muestre la edad exacta de dicha persona. *********************************************************************/ #include <iostream> using namespace std; void main(){ int anio=360, mes=30; char nombre[50]; int an, mn, dn;//fecha nacimiento int aa, ma, da;//fecha actual int av, mv, dv;// tiempo vivido int tdfn, tdfa, tdv; printf("\nIngrese nombre: "); gets(nombre); fflush(stdin); printf("\n\nFecha Actual "); printf("\ndia: "); scanf("%d", &da); fflush(stdin); printf("mes: "); scanf("%d", &ma); fflush(stdin); printf("anio: "); scanf("%d", &aa); fflush(stdin); printf("\n\nFecha de Nacimiento "); printf("\ndia: "); scanf("%d", &dn); fflush(stdin); printf("mes: "); scanf("%d", &mn); fflush(stdin); printf("anio: "); scanf("%d", &an); fflush(stdin);

Page 8: Fundamentos de la programacion u1 ejercicios

//Pasamos los datos a días tdfa=(aa*anio)+(ma*mes)+da; tdfn=(an*anio)+(mn*mes)+dn; //Restamos los días tdv=tdfa-tdfn; //Pasamos a formato año, mes y día av=tdv/anio; mv=(tdv%anio)/mes; dv=(tdv%anio)%mes; printf("\n\n\%s tienes %d Ano(s) con %d Mes(es) y %d Dia(s) ", nombre, av, mv, dv ); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 10: Ingrese por teclado dos números, realice un intercambio interno de valores entre variables. *********************************************************************/ #include <iostream> using namespace std; void main(){ int A, B, aux; printf("\nIngrese numero 1: "); scanf("%d", &A); fflush(stdin); printf("\nIngrese numero 2: "); scanf("%d", &B); fflush(stdin); aux=A; A=B; B=aux; printf("\n\n Numeros intercambiados"); printf("\n\nNumero 1: %d ", A); printf("\n\nNumero 2: %d ", B); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 9: Fundamentos de la programacion u1 ejercicios

5.2 Estructura condicional < if - else >

/**********************Inicio del Programa*************************** Ejercicio 01: Ingrese por teclado un número y muestre un mensaje "es cero", solo cuando esto ocurra. *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro; printf("\nIngrese numero : "); scanf("%d", &nro); fflush(stdin); if(nro==0) printf("\n\n Es cero"); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /**********************Inicio del Programa*************************** Ejercicio 02: Ingrese por teclado las tallas de dos personas, solo si la segunda talla es mayor a la primera se visualizara la mayor talla. *********************************************************************/ #include <iostream> using namespace std; void main(){ double talla1, talla2; printf("\nIngrese talla 1 : "); scanf("%lf", &talla1); fflush(stdin); printf("\nIngrese talla 2 : "); scanf("%lf", &talla2); fflush(stdin); if(talla2 > talla1) printf("\n\n La mayor talla es : %8.2lf", talla2); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 10: Fundamentos de la programacion u1 ejercicios

/**********************Inicio del Programa****************************** Ejercicio 03: Ingrese por teclado el nombre, cantidad de hijos y sueldo basico de un trabajador, Solo si el trabajador tiene hijos tendra una bonificación de 4% del sueldo basico, mostrar la bonificacion y el sueldo final. *********************************************************************/ #include <iostream> using namespace std; void main(){ char nombre[50]; int cant_hijos; double sueldo, bonificacion, porc=0.04, sueldoFinal; printf("\nIngrese nombre de trabajador : "); gets(nombre); fflush(stdin); printf("\nIngrese cantidad de hijos : "); scanf("%d", &cant_hijos); fflush(stdin); printf("\nIngrese sueldo basico : "); scanf("%lf", &sueldo); fflush(stdin); //Inicializacion bonificacion = 0; sueldoFinal = sueldo; //Evaluacion if(cant_hijos > 0){ bonificacion = sueldo * porc; sueldoFinal = sueldo + bonificacion; } //Impresion de informacion printf("\n\n Trabajador %s tiene ", nombre); printf("\n\n Bonificacion es : %8.2lf", bonificacion); printf("\n\n Sueldo Final es : %8.2lf", sueldoFinal); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 04: Ingrese un caracter por teclado y visualice el mensaje "es letra del alfabeto mayuscula" solo cuando esto ocurra. *********************************************************************/ #include <iostream> using namespace std; void main(){ char caracter; printf("\nIngrese caracter : "); caracter=getchar(); fflush(stdin);

Page 11: Fundamentos de la programacion u1 ejercicios

if(caracter >= 'A' && caracter <= 'Z') printf("\n\n Es letra del alfabeto mayuscula "); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 05: Ingrese un caracter por teclado y visualice el mensaje "es vocal mayuscula o minuscula" solo cuando esto ocurra. *********************************************************************/ #include <iostream> using namespace std; void main(){ char caracter; printf("\nIngrese caracter : "); caracter=getchar(); fflush(stdin); if(caracter == 'A' || caracter == 'E' || caracter == 'I' || caracter == 'O' || caracter == 'U') printf("\n\n Es vocal mayuscula "); if(caracter == 'a' || caracter == 'e' || caracter == 'i' || caracter == 'o' || caracter == 'u') printf("\n\n Es vocal minuscula "); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 06: Una empresa de transporte terrestre vendio una determinada cantidad de boletos vendidos, ingrese por teclado el numero de correlativo del primer y ultimo boleto vendido asi como el precio por boleto. Si es que la cantidad de boletos vendidos es mayor 1000, calcular y mostrar: -Importe de boletos vendidos -Incentivo que sera el 20% del importe de boletos vendidos *********************************************************************/ #include <iostream> using namespace std;

Page 12: Fundamentos de la programacion u1 ejercicios

void main(){ int bol_inicial, bol_final, cantidad, limite = 1000; double precio, importe, incentivo, porc = 0.25 ; printf("\nIngrese Numero del primer boleto : "); scanf("%d", &bol_inicial); fflush(stdin); printf("\nIngrese Numero del ultimo boleto : "); scanf("%d", &bol_final); fflush(stdin); printf("\nIngrese precio unitario de boleto : "); scanf("%lf", &precio); fflush(stdin); cantidad = (bol_final - bol_inicial) + 1 ; if(cantidad > limite){ importe = precio * cantidad; incentivo = importe * porc; printf("\n\n Importe: %8.2lf", importe); printf("\n\n Incentivo: %8.2lf", incentivo); } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 07: Ingrese 3 numeros enteros, muestre el mayor, menor y el que se encuentra en el medio. *********************************************************************/ #include <iostream> using namespace std; void main(){ int a, b, c, mayor, menor, medio; printf("\n\rIngrese 1er #: ");scanf("%d",&a); fflush(stdin); printf("\n\rIngrese 2do #: ");scanf("%d",&b); fflush(stdin); printf("\n\rIngrese 3er #: ");scanf("%d",&c); fflush(stdin); mayor = a; if(b > mayor)mayor = b; if(c > mayor)mayor = c; menor = a; if(b < menor)menor = b; if(c < menor)menor = c; medio = ( a + b + c ) - ( mayor + menor ); printf("\n\n\rEl mayor es: %d", mayor); printf("\n\rEl que se situa en el medio es: %d", medio);

Page 13: Fundamentos de la programacion u1 ejercicios

printf("\n\rEl menor es: %d", menor); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 08: Realizar la siguiente funcion: |X , 1<=X<=5 |X + 5, 5< X <=25 Z => |1 / X, 25< X <=50 |5X -4, 50< X <=90 |X3 , X >90 *********************************************************************/ #include <iostream> using namespace std; void main(){ double X; printf("\n\rIngrese valor de X: "); scanf("%lf",&X); fflush(stdin); //No anidamos porque segun la funcion, X solo puede entrar a una condicion. if( 1 <= X && X <= 5){ printf("\n\n\rZ: %8.2lf \n\n", X ); system("PAUSE"); exit(0); } if( 5 < X && X <= 25){ printf("\n\n\rZ: %8.2lf \n\n", X + 5 ); system("PAUSE"); exit(0); } if( 25 < X && X <= 50){ printf("\n\n\rZ: %8.2lf \n\n", 1 / X ); system("PAUSE"); exit(0); } if( 50 < X && X <= 90){ printf("\n\n\rZ: %8.2lf \n\n", 5*X -4 ); system("PAUSE"); exit(0); } if( X > 90){

Page 14: Fundamentos de la programacion u1 ejercicios

printf("\n\n\rZ: %8.2lf \n\n", X*X*X ); system("PAUSE"); exit(0); } } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 09: Ingrese por teclado un numero entero, evalue si cumple: - Que sea positivo - Que sea de dos ó 4 cifras - Si es de dos cifras que la primera sea sea mayor a la segunda - Si es de cuatro cifras que la suma de las cifras sea mayor a la primera y a la segunda. *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro, U, D, C, M; bool bandera=false; printf("\n\rIngrese numero a evaluar: "); scanf("%d",&nro); fflush(stdin); //No es necesario validar que sea positivo, //puesto que esta implicito en las evaluaciones if( nro>=10 && nro <=99 ) { D = nro / 10; U = nro % 10; bandera = D > U; } if( nro>=1000 && nro <=9999 ){ M = nro / 1000; C = (nro % 1000) / 100; D = ((nro % 1000) % 100) / 10; U = nro % 10; bandera = (M + C + D + U) > M && (M + C + D + U) > U; } if(bandera) printf("\n\nSi cumple las condiciones\n\n"); else printf("\n\nNo cumple las condiciones\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 15: Fundamentos de la programacion u1 ejercicios

/********************************************************************* Ejercicio 10: Ingrese un numero por teclado, diga si es par o impar *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro; printf("\n\rIngrese numero a evaluar: "); scanf("%d",&nro); fflush(stdin); if( nro % 2 == 0 ) printf("\n\nNumero es Par\n\n"); else printf("\n\nNumero es Impar\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 11: Ingrese por teclado el nombre, edad y sexo (M, F), muestre uno de acuerdo a los datos ingresados los siguientes mensajes: -Masculino mayor de edad -Masculino menor de edad -Femenino mayor de edad -Femenino menor de edad *********************************************************************/ #include <iostream> using namespace std; void main(){ char nombre[50], sexo; int edad; printf("\n\rIngrese nombre : "); gets(nombre); fflush(stdin); printf("\n\rIngrese sexo (M, F): "); sexo=getchar(); fflush(stdin); printf("\n\rIngrese edad: "); scanf("%d",&edad); fflush(stdin); if( sexo=='M' ) if(edad>=18) printf("\n\nMasculino mayor de edad\n\n"); else

Page 16: Fundamentos de la programacion u1 ejercicios

printf("\n\nMasculino menor de edad\n\n"); else if( sexo=='F' ) if(edad>=18) printf("\n\nFemenino mayor de edad\n\n"); else printf("\n\nFemenino menor de edad\n\n"); else printf("\n\nError en ingreso de sexo\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 12: Ingrese por teclado, el nombre e importe de compra de un cliente, calcular y mostrar: - Impuesto general a la venta (18%), solo si el importe de compra es mayor a 5.00 soles, caso contrario sera cero. -Subtotal -Descuento del subtotal, Si el subtotal es mayor a 500.00 sera el 9% de no ser asi sera 2%. -Importe Final *********************************************************************/ #include <iostream> using namespace std; void main(){ char nombre[50]; double importe, lim_impcomp = 5, IGV = 0.18, impuestos, dscto, descuentos, subtotal, lim_subtotal = 500, importeFinal; printf("\n\rIngrese nombre : "); gets(nombre); fflush(stdin); printf("\n\rIngrese importe de la compra: "); scanf("%lf",&importe); fflush(stdin); if(importe > lim_impcomp) impuestos = importe * IGV; else impuestos = 0; subtotal = importe + impuestos; if(subtotal > lim_subtotal){ dscto = 0.09; descuentos = subtotal * dscto; }else{ dscto = 0.02; descuentos = subtotal * dscto; }

Page 17: Fundamentos de la programacion u1 ejercicios

importeFinal = subtotal - descuentos; printf("\n\nImpuesto general a la venta : %lf", impuestos); printf("\n\nSubtotal : %lf", subtotal); printf("\n\nDescuentos : %lf", descuentos); printf("\n\nImporte Final : %lf\n\n", importeFinal); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 13: Se desea saber cual es la mejor compra entre dos tipos de pizza rectangular y circular. Para eso se ingresan las dimensiones largo, ancho y diametro respectivamente, ademas del precio de la pizza. *********************************************************************/ #include <iostream> using namespace std; void main(){ double PI=3.14159, radio, area; double diametro,largo,ancho; double precio_redonda, preciounit_redonda; double precio_rectangular, preciounit_rectangular; printf("\n\nPizza redonda\n\n"); printf("Ingrese diametro(en pulgadas) de una pizza redonda:"); scanf("%lf", &diametro); fflush(stdin); printf("Ingrese precio de una pizza redonda $/ :"); scanf("%lf", &precio_redonda); fflush(stdin); printf("\n\nPizza rectangular\n\n"); printf("Ingrese largo(en pulgadas) de una pizza rectangular :"); scanf("%lf", &largo); fflush(stdin); printf("Ingrese ancho(en pulgadas) de una pizza rectangular :"); scanf("%lf", &ancho); fflush(stdin); printf("Ingrese precio de pizza rectangular $/ :"); scanf("%lf", &precio_rectangular); fflush(stdin); area = largo * ancho; preciounit_rectangular = precio_rectangular / area; radio = diametro / 2.0; area=PI*radio*radio; preciounit_redonda=precio_redonda / area; printf("\n\nPrecio pizza rendonda: $ %8.2lf", precio_redonda); printf("\n\rPrecio pizza por pulgada cuadrada: $ %8.2lf", preciounit_redonda); printf("\n\nPrecio pizza rectangular: $ %8.2lf", precio_rectangular); printf("\n\rPrecio pizza por pulgada cuadrada: $ %8.2lf", preciounit_rectangular);

Page 18: Fundamentos de la programacion u1 ejercicios

if(preciounit_redonda<preciounit_rectangular) printf("\n\nLa pizza redonda es la mejor compra."); else printf("\n\nLa pizza rectangular es la mejor compra."); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 19: Fundamentos de la programacion u1 ejercicios

5.3 Estructura de selectiva múltiple < switch >

/********************************************************************* Ejercicio 01: Se pide ingresar un número del uno al veinte, imprima dicho número en letras. *********************************************************************/ #include <iostream> using namespace std; void main(){ int n; printf("\n\rIngrese #(1-20) : "); scanf("%d",&n); printf("\n\n\r"); switch(n){ case 1: printf("Uno");break; case 2: printf("Dos");break; case 3: printf("Tres");break; case 4: printf("Cuatro");break; case 5: printf("Cinco");break; case 6: printf("Seis");break; case 7: printf("Siete");break; case 8: printf("Ocho");break; case 9: printf("Nueve");break; case 10:printf("Diez");break; case 11:printf("Once");break; case 12:printf("Doce");break; case 13:printf("Trece");break; case 14:printf("Catorce");break; case 15:printf("Quince");break; case 16:printf("Diez y Seis");break; case 17:printf("Diez y siete");break; case 18:printf("Diez y ocho");break; case 19:printf("Diez y nueve");break; case 20:printf("Veinte");break; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 02: Realizar un algoritmo que lea un numero que represente el día de semana. Muestre el numero en dias: (Lunes=1, Martes=2, …, Domingo=7).

Page 20: Fundamentos de la programacion u1 ejercicios

*********************************************************************/ #include <iostream> using namespace std; void main(){ int n; printf("\n\rIngrese numero de dia de semana #(1-7) : "); scanf("%d",&n); printf("\n\n\r"); switch(n){ case 1: printf("Lunes");break; case 2: printf("Martes");break; case 3: printf("Miercoles");break; case 4: printf("Jueves");break; case 5: printf("Viernes");break; case 6: printf("Sabado");break; case 7: printf("Domingo");break; default: printf("Numero de dia No reconodido");break; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 03: Escribir un algoritmo que solicite el ingreso de dos números y a continuación un operador aritmético (+, -, *, /). El algoritmo debe calcular el resultado de la operación seleccionada. *********************************************************************/ #include <iostream> using namespace std; void main(){ char ope; double n1, n2; printf("\n\rIngrese numero 1 : "); scanf("%lf",&n1); fflush(stdin); printf("\n\rIngrese numero 2 : "); scanf("%lf",&n2); fflush(stdin); printf("\n\rIngrese Operacion (+,-,*,/) : "); ope=getchar(); fflush(stdin); printf("\n\n\rResultado:"); switch(ope){ case '+': printf("%8.2lf", n1 + n2);break; case '-': printf("%8.2lf", n1 - n2);break; case '*': printf("%8.2lf", n1 * n2);break; case '/': printf("%8.2lf", n1 / n2);break;

Page 21: Fundamentos de la programacion u1 ejercicios

default: printf("Operacion ingresada No reconodido");break; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/ /********************************************************************* Ejercicio 04: Escribir un algoritmo que solicite el ingreso de dos números y a continuación un operador aritmético (+, -, *, /). El algoritmo debe calcular el resultado de la operación seleccionada. *********************************************************************/ #include <iostream> using namespace std; void main(){ char ope; double n1, n2; printf("\n\rIngrese numero 1 : "); scanf("%lf",&n1); fflush(stdin); printf("\n\rIngrese numero 2 : "); scanf("%lf",&n2); fflush(stdin); printf("\n\rIngrese Operacion (+,-,*,/) : "); ope=getchar(); fflush(stdin); printf("\n\n\rResultado:"); switch(ope && ope){ case '+': printf("%8.2lf", n1 + n2);break; case '-': printf("%8.2lf", n1 - n2);break; case '*': printf("%8.2lf", n1 * n2);break; case '/': printf("%8.2lf", n1 / n2);break; default: printf("Operacion ingresada No reconodido");break; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 22: Fundamentos de la programacion u1 ejercicios

5.4 Estructura repetitiva < for >

/********************************************************************* Ejercicio 01: Mostrar el doble, triple y el cuadrado de todos los numeros que se encuentran entre el 10 y 30. *********************************************************************/ #include <iostream> using namespace std; void main(){ int ini = 10, fin = 30, i; for(i=ini;i<=fin;i++) printf("\n\rNumero %d, doble %d, triple %d y su cuadrado %d.", i, i * 2, i * 3, i * i); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 02: Visualice la palabra "ALGORITMO" 200 veces. *********************************************************************/ #include <iostream> using namespace std; void main(){ int ini = 1, fin = 200, i; for(i=ini;i<=fin;i++) printf("\n\rALGORITMO"); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/*********************************************************************

Page 23: Fundamentos de la programacion u1 ejercicios

Ejercicio 03: Digite un numero positivo y entero, visualice la palabra "SENTENCIA" 5 veces el numero ingresado. Ademas enumere cada visualizacion. *********************************************************************/ #include <iostream> using namespace std; void main(){ int ini = 1, fin , i, n; printf("\n\rIngrese numero : "); scanf("%d",&n); fin = n * 5; for(i=ini;i<=fin;i++) printf("\n\r %d ALGORITMO", i); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 04: Digite un numero entero, visualice los 50 numeros superiores e inferiores consecutivos a este. *********************************************************************/ #include <iostream> using namespace std; void main(){ int cantidad = 50, i, n, ini, fin; printf("\n\rIngrese numero : "); scanf("%d",&n); printf("\n\nNumeros Superiores consecutivos\n\n"); ini = n + 1; fin = n + cantidad ; for(i = ini;i<=fin;i++) printf("\n\r %d", i); printf("\n\nNumeros Inferiores consecutivos\n\n"); ini = n - 1; fin = n - cantidad ; for(i = ini;i>=fin;i--) printf("\n\r %d", i); printf("\n\n"); system("PAUSE");

Page 24: Fundamentos de la programacion u1 ejercicios

} /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 05: Ingrese por teclado dos numeros (asuma enteros y positivos) visualice todos los enteros consecutivos que estan comprendidos en estos. Ademas mostrar la suma al finalizar. *********************************************************************/ #include <iostream> using namespace std; void main(){ int S, i, n1, n2, ini, fin; printf("\n\rIngrese numero 1: "); scanf("%d",&n1); printf("\n\rIngrese numero 2: "); scanf("%d",&n2); if(n1>n2){ ini = n2; fin = n1; }else{ ini = n1; fin = n2; } S=0; for( i = ini + 1 ; i < fin ; i++ ){ S+=i; printf("\n\r %d", i); } printf("\n\n La Suma es %d\n\n", S); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 06: Ingrese por teclado dos notas y el nombre de N alumnos, mostrar el promedio, condicion (Aprobado, Desaprobado) y promedio global. *********************************************************************/ #include <iostream> using namespace std; void main(){

Page 25: Fundamentos de la programacion u1 ejercicios

char nombre[50]; int i, N, n1, n2; double promA, promG, SG; printf("\n\rIngrese numero de alumnos: "); scanf("%d",&N);fflush(stdin); SG=0; for(i=1;i<=N;i++){ printf("\n\rIngrese nombre alumno %d: ", i); gets(nombre); fflush(stdin); printf("\n\rIngrese nota 1: "); scanf("%d",&n1); fflush(stdin); printf("\n\rIngrese nota 2: "); scanf("%d",&n2); fflush(stdin); promA = (n1 + n2) / 2.0; if(promA >= 10.5) printf("\nAprobado con %8.2lf", promA); else printf("\nDesaprobado con %8.2lf", promA); SG+= promA; } printf("\n\n\n El promedio global es %8.2lf", SG / N); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 07: Genere: -Los 70 primeros impares positivos -Los 50 primeros numeros multiplos de 3 -Los multiplos de 2 y 3 a la vez comprendidos en (20-100), al final mostrar cuantos numeros se generaron. *********************************************************************/ #include <iostream> using namespace std; void main(){ int i, ini, fin, cantidad; printf("\n\n70 primeros impares positivos \n\n"); ini = 1; fin = 70 * 2; for(i=ini ; i<=fin ; i+=2) printf("%d\t", i); printf("\n\n50 primeros numeros multiplos de 3 \n\n"); ini = 3; fin = 50 * ini;

Page 26: Fundamentos de la programacion u1 ejercicios

for(i=ini ; i<=fin ; i+=3) printf("%d\t", i); printf("\n\nMultiplos de 2 y 3 a la vez comprendidos en (20-100) \n\n"); ini = 20; fin = 100; cantidad=0; for(i=ini ; i<=fin ; i++) if(i%2==0 && i%3==0){ printf("%d\t", i); cantidad++; } printf("\n\nNumeros generados %d\n\n", cantidad); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 08: Ingrese un numero, muestre el mensaje "Es primo o No" segun sea el caso. Numero primo es que solo es divisible por la unidad y el mismo numero Ejm:7(1, 7), 13(1,13) *********************************************************************/ #include <iostream> using namespace std; void main(){ int i, N, divisores; printf("\n\rIngrese numero : "); scanf("%d",&N); fflush(stdin); divisores=0; for(i=1;i<=N;i++) if(N%i==0)divisores++; if(N==1 || divisores==2) printf("\n\rEs primo "); else printf("\n\rNo es primo"); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/*********************************************************************

Page 27: Fundamentos de la programacion u1 ejercicios

Ejercicio 09: Ingrese un numero entero de n cifras, muestre y sume sus cifras. *********************************************************************/ #include <iostream> using namespace std; void main(){ int i, N, nro, digito, S; printf("\n\rIngrese numero : "); scanf("%d",&N); fflush(stdin); S=0; for(nro=N ; nro > 0 ; nro/= 10){ digito = nro % 10; S+=digito; } printf("\n\nSuma digitos: %d\n\n", S); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 10: Ingrese por teclados los N terminos. Sume y genére las siguientes secuencias: a) -2 -4 -6 -8 -10...N b) 3.3 4.4 5.5 6.6 7.7 8.8...N c) 1 4 9 16 25 36...N d) -1 +2 -3 +4 -5 +6 -7...N e) -1 3 15 35 63 99...N f) 1 2 4 7 11 16...N *********************************************************************/ #include <iostream> using namespace std; void main(){ int i, N, S, termino, parte_entera, incremento, A, B, C; double parte_real, termino_real, S_real; printf("\n\rIngrese numero de terminos : "); scanf("%d",&N); fflush(stdin); printf("\n\n a) -2 -4 -6 -8 -10...N \n\n"); S=0; for(i=1 ; i<=N ; i++){ termino = i*-2; printf("%d\t", termino); S+=termino; } printf("\n\nSuma de secuencia: %d\n\n", S);

Page 28: Fundamentos de la programacion u1 ejercicios

printf("\n\n b) 3.3 4.4 5.5 6.6 7.7 8.8...N \n\n"); S_real=0; for(i=1 ; i<=N ; i++){ parte_entera = i + 2; parte_real = parte_entera / 10.0; termino_real = parte_entera + parte_real; printf("%8.1lf\t", termino_real); S_real+=termino_real; } printf("\n\nSuma de secuencia: %8.1lf\n\n", S_real); printf("\n\n c) 1 4 9 16 25 36...N \n\n"); // B-> 3 5 7 9 11 S=0; A=1; B=3; for(i=1; i<=N ; i++){ printf("%d\t", A); S+=A; A+=B; B+=2; } printf("\n\nSuma de secuencia: %d\n\n", S); printf("\n\n d) -1 +2 -3 +4 -5 +6 -7...N \n\n"); S=0; for(i=1 ; i<=N ; i++){ if(i%2!=0){ termino = i*-1; printf("%d\t", termino); }else{ termino = i; printf("+%d\t", termino); } S+=termino; } printf("\n\nSuma de secuencia: %d\n\n", S); printf("\n\n e) -1 3 15 35 63 99...N \n\n"); // B-> 4 12 20 28 36 // C-> 8 8 8 8 S=0; A=-1; B=4; C=8; for(i=1; i<=N ; i++){ printf("%d\t", A); S+=A; A+=B; B+=C; } printf("\n\nSuma de secuencia: %d\n\n", S);

Page 29: Fundamentos de la programacion u1 ejercicios

printf("\n\n f) 1 2 4 7 11 16...N \n\n"); // i-> 1 2 3 4 5 S=0; A=1; for(i=1; i<=N ; i++){ printf("%d\t", A); S+=A; A+=i; } printf("\n\nSuma de secuencia: %d\n\n", S); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 11: Ingrese 2 numeros que representen una base y un exponente. Muestre el resultado de la operacion. *********************************************************************/ #include <iostream> using namespace std; void main(){ int x,y,i; long r; printf("Ingrese nro...");scanf("%d",&x); printf("Ingrese exponente...");scanf("%d",&y); r=1; for(i=1;i<=y;i++) r*=x; printf("Resultado...%ld\n\n",r); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 30: Fundamentos de la programacion u1 ejercicios

5.5 Estructura repetitiva < while > y < do - while >

/********************************************************************* Ejercicio 01: Contruya un proceso repetitivo que permita el ingreso por teclado de varias letras, el programa terminara cuando se ingrese la letra 'K' *********************************************************************/ #include <iostream> using namespace std; void main(){ char car; do{ printf("\nIngrese caracter: "); car=getchar(); fflush(stdin); }while(car!='K'); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 02: Contruya un proceso repetitivo que permita el ingreso por teclado de varias numeros, el programa terminara cuando se ingrese el numero cero. *********************************************************************/ #include <iostream> using namespace std; void main(){ int N; do{ printf("\n\rIngrese numero : "); scanf("%d",&N); }while(N!=0); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 03: Contruya un proceso repetitivo que permita el ingreso por teclado de numeros de una cifra positivos, el programa terminara cuando se

Page 31: Fundamentos de la programacion u1 ejercicios

ingrese un numero de mas de una cifra. *********************************************************************/ #include <iostream> using namespace std; void main(){ int N; do{ printf("\n\rIngrese numero : "); scanf("%d",&N); }while(N>=10); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 04: Contruya un proceso repetitivo que permita el ingreso por teclado de numeros de dos cifras positivos, el programa terminara cuando la suma de las cifras sea 12. *********************************************************************/ #include <iostream> using namespace std; void main(){ int N, U, D; do{ printf("\n\rIngrese numero de dos cifras: "); scanf("%d",&N); fflush(stdin); D = N/10; U = N%10; }while( D + U != 12 ); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 05: Contruya un proceso repetitivo que muestre en forma ascendente todos los numeros impares comprendidos entre 33 y 9000 *********************************************************************/ #include <iostream> using namespace std; void main(){

Page 32: Fundamentos de la programacion u1 ejercicios

int ini, fin, i; ini=33; fin=9000; i=ini; while( i<=fin ){ printf("\n\r %d", i); i+=2; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 06: Se pide ingresar un numero entero positivo de N cifras, realice el proceso de invertir dicho numero. *********************************************************************/ #include <iostream> using namespace std; void main(){ long N, nro, nroInv; int R; printf("\n\rIngrese numero de n cifras: "); scanf("%ld",&N); fflush(stdin); nro=N; nroInv=R=0; //Inicializamos las dos variables a cero. do{ R = nro % 10; nro = nro / 10; nroInv = (nroInv * 10) + R; }while( nro > 0 ); printf("\n\r Nro Invertido: %ld", nroInv); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 07: Se pide ingresar un numero en base 10, convierta dicho numero a base 5.

Page 33: Fundamentos de la programacion u1 ejercicios

*********************************************************************/ #include <iostream> using namespace std; void main(){ long N, nro, nroInv, incremento; int R; printf("\n\rIngrese numero en base 10: "); scanf("%ld",&N); fflush(stdin); nro=N; nroInv=R=0; incremento=1; do{ R = nro % 5; nro = nro / 5; nroInv = nroInv + R * incremento; incremento = incremento * 10; }while( nro > 0 ); printf("\n\r Nro Convertido: %ld", nroInv); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 08: Se pide ingresar una secuencia de numeros, diga cuantos son pares, impares y multiplos de 7, ademas de la cantidad de numeros ingresados. El programa acaba cuando se ingresa el numero cero. *********************************************************************/ #include <iostream> using namespace std; void main(){ int N, cp, ci, c7, ct; cp=ci=c7=ct=0; do{ printf("\n\rIngrese numero : "); scanf("%d",&N); fflush(stdin); if(N!=0){ if(N%2==0) cp++; else ci++; if(N%7==0)c7++; } ct++; }while( N != 0 );

Page 34: Fundamentos de la programacion u1 ejercicios

printf("\n\r Cantidad Pares : %ld", cp); printf("\n\r Cantidad ImPares : %ld", ci); printf("\n\r Cantidad Multiplos 7 : %ld", c7); printf("\n\r Total Numeros Ingresados: %ld", ct); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 09: Se pide sumar y generar la serie fibonacci. 1 1 2 3 5 8 13 21 ...N *********************************************************************/ #include <iostream> using namespace std; void main(){ int N, A, B, i, S; printf("\n\rIngrese numero de terminos : "); scanf("%d",&N); fflush(stdin); // A-> 1 1 2 3 5 8 13 21 ...N // B-> 1 0 1 1 2 3 5 8 S=i=A=0; B=1; do{ A=A + B; B=A - B; S+= A; printf("\t%d", A); i++; }while( i<N ); printf("\n\n Suma : %d", S); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 10: Ingresar una secuencia de numeros, estos deben ser sumados siempre que: - Sea Impar - Sus cifras sean diferentes - Que la cifra del medio sea cualquiera

Page 35: Fundamentos de la programacion u1 ejercicios

- Que sea de tres cifras - Que sea Positivo *********************************************************************/ #include <iostream> using namespace std; void main(){ int nro, U, D, C, S; bool bandera=true; S=0; while(bandera){ printf("\n\rIngrese numero a evaluar: "); scanf("%d",&nro); fflush(stdin); bandera = ( nro>=100 && nro <=999 ); if(!bandera)continue; bandera = ( nro%2!=0 ); if( !bandera )continue; C = nro / 100 ; D = (nro % 100) / 10; U = nro % 10; bandera = ( C != D && D != U ); if( !bandera )continue; S+=nro; } printf("\n\nSumatoria: %d\n\n", S); system("PAUSE"); } /***************************Fin del Programa****************************/

/********************************************************************* Ejercicio 11: Sumar y generar la siguiente secuencia: a) -1 -2 3 4 -5 -6 7 8...N b) -1 -2 -3 4 5 6 -7 -8 -9...N c) -1 -2 -3 -4 5 6 7 8...N *********************************************************************/ #include <iostream> using namespace std; void main(){ int N, i, S, termino, cambio_signo, C; bool bandera=true; printf("\n\rIngrese numero de terminos: "); scanf("%d",&N); fflush(stdin);

Page 36: Fundamentos de la programacion u1 ejercicios

cambio_signo=2; S=C=0; i=1; while(i<=N){ C++; if(bandera) termino = i*-1; else termino = i; printf("%d\t", termino); S+= termino; if( C == cambio_signo ){ C=0; bandera = !bandera; } i++; } printf("\n\nSumatoria: %d\n\n", S); //Para la secuencia b) solo cambie la variable cambio_signo=3 //Para la secuencia c) solo cambie la variable cambio_signo=4 system("PAUSE"); } /***************************Fin del Programa****************************/

Page 37: Fundamentos de la programacion u1 ejercicios

5.6 Anidamiento de bucles

/**********************Inicio del Programa*************************** Ejercicio 01: Se tiene en la billetera S/. 1,000 soles y se desea comprar varios articulos, pero todos tienen el precio de S/. 10, S/. 50 y S/. 100 soles. Diga las combinaciones posibles de compra de tal forma que: a) No me sobre dinero b) Me sobre al menos S/. 10 soles c) Me sobre al menos S/. 500 soles *********************************************************************/ #include <iostream> using namespace std; void main(){ int i100, i50, i10, final100, final50, final10, B100=100, B50=50, B10=10; int Monto=1000, sobra=0, combinacion; final100 = Monto / B100; final50 = Monto / B50; final10 = Monto / B10; combinacion=0; for(i100=1;i100<=final100;i100++) for(i50=1;i50<=final50;i50++) for(i10=1;i10<=final10;i10++){ if( !((i100*B100 + i50*B50 + i10*B10) == (Monto - sobra)) )continue; combinacion++; printf("\n\rCombinacion: %d\tB100: %d B50: %d B10: %d", combinacion, i100, i50, i10); } //Para el punto b) cambiar la variable sobra a 10 //Para el punto c) cambiar la variable sobra a 500 printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 02: Sume u genere la siguiente secuencia de potencias (base, potencia):

Page 38: Fundamentos de la programacion u1 ejercicios

(10, 1), (15, 2), (20, 3), (25, 4), ...N *********************************************************************/ #include <iostream> using namespace std; void main(){ int i,j, n, base ; unsigned long s, termino;//Tipo long sin signo printf("Ingrese #...");scanf("%d",&n); base=10; s=0; for( i=1 ; i<=n ; i++){ termino=1; for( j=1 ; j<=i ; j++) termino = termino * base; printf("\n\r(%d, %d) = %u \n ",base, i, termino); base+=5; s+=termino; } printf("\n\nLa suma es...%u",s); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 03: Se pide mostrar y sumar todos los numeros primos de cuatro cifras. *********************************************************************/ #include <iostream> using namespace std; void main(){ int c,cd,i,j; long s; c=s=0; for(i=1000;i<=9999;i++){ cd=0; for(j=1;j<=i;j++) if(i%j==0)

Page 39: Fundamentos de la programacion u1 ejercicios

cd++; if(cd==2){ printf("Primo %d : %d\n\r",c, i); c++; s+=i; } } printf("\n\n\rSuma de los # primos de 4 cifras es...%d", s); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 04: Se pide mostrar y sumar la secuencia de factoriales. FACTORIAL DE N TERMINOS S=1!+3!+5!+7!...N Recordar que: !3 = 3*2*1 !n = n*(n-1)*(n-2)*...* 1 *********************************************************************/ #include <iostream> using namespace std; void main(){ int n,i,j; unsigned long s, termino; printf("Ingrese #...");scanf("%d",&n); s=0; for(i=1;i<=n*2;i+=2){ termino=1; for(j=1;j<=i;j++) termino*=j; printf("!%d = %u\n", i, termino); s+=termino; }//CIERRE FOR printf("\n\nLa suma es...%u",s); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

Page 40: Fundamentos de la programacion u1 ejercicios

/**********************Inicio del Programa*************************** Ejercicio 05: Sume u muestre todos los numeros perfectos entre 5 y 1000. *********************************************************************/ #include <iostream> using namespace std; void main(){ int i,j, sd, s; s=0; for(i=5;i<=1000;i++){ sd=0; for(j=1;j<=i/2;j++) if(i%j==0) sd+=j; if(sd==i){ printf("Es perfecto..%d\n", i); s+=i; } } printf("\n\nLa suma es...%d",s); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 06: Sume y genere la siguiente secuencia: 1! 1 2! 1 3! 2 4! 3 5! 5 ...N *********************************************************************/ #include <iostream> using namespace std; void main(){ int n,i; unsigned long S, termino; int A, B;//fibonacci int j, terminofac;//factorial

Page 41: Fundamentos de la programacion u1 ejercicios

printf("Ingrese #...");scanf("%d",&n); // 1! 1 2! 1 3! 2 4! 3 5! 5 ...N // 1! 2! 3! 4! 5! =>factorial // 1 1 2 3 5 =>fibonacci // 1 2 3 4 5 6 7 8 9 10...N -> i S=0; A=0;B=1;//fibonacci terminofac=0;//factorial for(i=1;i<=n;i++){ if(i%2==0){//fibonacci A=A+B; B=A-B; termino = A; printf("%u\n", termino); }else{//factorial terminofac++; termino=1; printf("%d! = ", terminofac); for( j=1 ; j<=terminofac ; j++ ){ termino = termino * j; if(j < terminofac) printf("%d * ", j); else printf("%d", j); } printf(" = %u\n", termino); } S+=termino; } printf("\n\nLa suma es...%u",S); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 07: Ingrese por teclado el numerador y denominador de una fraccion, visualice la fraccion simplificada, o la fraccion original de no poderse simplificar. *********************************************************************/ #include <iostream> using namespace std; void main(){

Page 42: Fundamentos de la programacion u1 ejercicios

int n,m, i, mayor, menor, ns, ms; printf("Ingrese numerador...");scanf("%d",&n); printf("Ingrese denominador...");scanf("%d",&m); mayor=n; if(m>mayor)mayor=m; ns=n; ms=m; for(i=mayor;i>=1;i--) if(ns%i==0 && ms%i==0){ ns=ns/i; ms=ms/i; } printf("\n\nNumerador simplificado...%d",ns); printf("\n\nDenominador simplificado...%d",ms); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 07: Ingrese por teclado el numerador y denominador de una fraccion, visualice la fraccion simplificada, o la fraccion original de no poderse simplificar. *********************************************************************/ #include <iostream> using namespace std; void main(){ int n,m, i, mayor, menor, ns, ms; printf("Ingrese numerador...");scanf("%d",&n); printf("Ingrese denominador...");scanf("%d",&m); mayor=n; if(m>mayor)mayor=m; ns=n; ms=m; for(i=mayor;i>=1;i--) if(ns%i==0 && ms%i==0){ ns=ns/i; ms=ms/i; } printf("\n\nNumerador simplificado...%d",ns); printf("\n\nDenominador simplificado...%d",ms);

Page 43: Fundamentos de la programacion u1 ejercicios

printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 08:Ingresar por teclado un numero (1-3999). Mostrar el numero en romanos. *********************************************************************/ #include <iostream> using namespace std; void main(){ int n,u,d,c,m, i; char r; do{ printf("\n\n\rIngrese Numero(1-3999)..."; scanf("%d",&n); fflush(stdin); m=n/1000; c=(n%1000)/100; d=((n%1000)%100)/10; u=n%10; printf("\n\n\t\t"; for(i=1;i<=m;i++) printf("M"); if(c==9) printf("CM"); else for(i=1;i<=c;i++) printf("C"); if(d==9) printf("XC"); else for(i=1;i<=d;i++) printf("X"); switch(u){ case 1:printf("I");break; case 2:printf("II");break; case 3:printf("III");break; case 4:printf("IV");break; case 5:printf("V");break; case 6:printf("VI");break; case 7:printf("VII");break; case 8:printf("VIII");break; case 9:printf("IX");break;

Page 44: Fundamentos de la programacion u1 ejercicios

} printf("\n\nDesea Continuar S/N "; r=getchar(); }while(r=='s'|| r=='S'); printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/

/**********************Inicio del Programa*************************** Ejercicio 09: Caja de Prestamos a Plazos con descuentos Se pide ingresar por teclado el monto, tasa de interes y duracion de un prestamo a asignar a un cliente. Debe mostrar el monto a entregar, ademas dar la opcion si desea entregar exactamente el monto solicitado. Debera mostrar las cuotas a pagar por meses. *********************************************************************/ #include <iostream> using namespace std; void main(){ const double MES=12; double cant, tasa, ncant, cant_sug, pag_men, inte; int tiempo;char op; printf("\n\t\t\tPRESTAMOS A PLAZOS CON DESCUENTOS"); printf("\n\nIngrese monto de dinero que necesita..."); scanf("%lf",&cant); fflush(stdin); printf("\nIngrese tasa de interes..."); scanf("%lf",&tasa); fflush(stdin); printf("\nIngrese duracion de prestamo (En meses)..."); scanf("%d",&tiempo); fflush(stdin); inte=((cant*tasa) / 100) * (tiempo / MES); ncant=cant - inte; pag_men=cant / tiempo; printf("\n\nUsted recibira %1.2f y los pagara en %d meses con cuotas de %1.2f.", ncant, tiempo, pag_men); printf("\n\n1. Esta conforme con lo que recibe.\n2. Desea recibir %1.2f", cant); printf("\n\nIgrese Opcion: "); op=getchar(); fflush(stdin); switch(op){ case '2': cant_sug=cant;

Page 45: Fundamentos de la programacion u1 ejercicios

do{ cant_sug+=0.1; inte=((cant_sug*tasa) / 100) * (tiempo / MES); ncant=cant_sug - inte; pag_men=cant_sug / tiempo; }while(ncant < cant); printf("\n\nUsted debe solicitar %1.2lf y los pagara en %d meses con cuotas de %1.2lf.", cant_sug, tiempo, pag_men); break; default: break; } printf("\n\n"); system("PAUSE"); } /***************************Fin del Programa****************************/