[PROGRAMACION I – C++] IDSystems 2011CUADERNO DE TRABAJO DE C++ CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 1 [PROGRAMACION I – C++] IDSystems 2011 Contenido PARTE I ............................................................................................................................................. 5 INSTRUCCIONES ................................................................................................................................ 6 Ejercicio 1 – Hola Mundo .................................................................................................................. 7 Ejercicio 2 – Tipos de datos ............................................................................................................... 7 Ejercicio 3 – Mezcla de tipos de datos ............................................................................................... 8 Ejercicio 4 – Simplificando comandos y datos ................................................................................... 9 Ejercicio 5 – Variables de preprocesador......................................................................................... 10 Ejercicio 6 – Salida por pantalla ....................................................................................................... 11 Ejercicio 7 – Entrada y salida por pantalla ....................................................................................... 11 Ejercicio 8 – Operadores y tipos de datos ........................................................................................ 12 Ejercicio 9 – Operaciones simples ................................................................................................... 13 Ejercicio 10 - Concatenacion ........................................................................................................... 14 Ejercicio 11 – If…Else ....................................................................................................................... 15 Ejercicio 12 – Operaciones condicionales ........................................................................................ 15 Ejercicio 13 – IF…ELSE anidados ...................................................................................................... 16 Ejercicio 14 – Salida a un archivo externo ....................................................................................... 18 Ejercicio 15 - Switch ........................................................................................................................ 20 Ejercicio 16 – Area de poligonos con Switch .................................................................................... 20 Ejercicio 17 – Ciclo For .................................................................................................................... 23 Ejercicio 18 – Ciclo while ................................................................................................................. 24 Ejercicio 19 – Ciclos anidados .......................................................................................................... 25 Ejercicio 20 – Ciclo While ................................................................................................................ 26 PRACTICA 1 ..................................................................................................................................... 26 Ejercicio 21 - Juego del Granjero ..................................................................................................... 27 Ejercicio 22 - Juegos ........................................................................................................................ 33 Ejercicio 22a – Juego de Adivinanzas ........................................................................................... 34 Ejercicio 22b - Tragamonedas..................................................................................................... 36 Ejercicio 22c – Pseudovirus ......................................................................................................... 38 Ejercicio 23 - Juego del Ahorcado .................................................................................................... 40 Ejercicio 24 - Juego Las Torres de Hanoi .......................................................................................... 48 Ejercicio 25 – Arreglos ..................................................................................................................... 52 Ejercicio 26 ..................................................................................................................................... 54 Ejercicio 27 – Cadenas .................................................................................................................... 56 Ejercicio 28 - Arreglos y cadenas ..................................................................................................... 58 Ejercicio 29 - Juego del Gato (Tic-Tac-Toe) ...................................................................................... 60 Ejercicio 30 – Estructuras ................................................................................................................ 64 Practica/Ejercicio 1 – Zodiaco ......................................................................................................... 66 Practica/Ejercicio 2 – Califaciones Estilo USA .................................................................................. 70 Practica/Ejercicio 3 – Sueldos a trabajador...................................................................................... 72 Practica/Ejercicio 4 – Promocion de Ventas .................................................................................... 74 Practica/Ejercicio 5 – Retraso en renta peliculas ............................................................................. 77 Practica/Ejercicio 6 – Dados ............................................................................................................ 79 PRACTICA 7 – Contando dinero ....................................................................................................... 82 PRACTICA 8 – Numeros ................................................................................................................... 82 PRACTICA 9 – Numeros ordenados ................................................................................................. 82 PRACTICA 10 – Boletos.................................................................................................................... 82 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 2 [PROGRAMACION I – C++] IDSystems 2011 PRACTICA 11 – Conversiones metricas ............................................................................................ 82 PRACTICAS DE VARIABLES, TIPOS DE DATOS, ASIGNACIONES, OPERADORES .................................. 83 PRACTICA 12 – Rectangulo .......................................................................................................... 83 PRACTICA 13 – Pies ..................................................................................................................... 83 PRACTICA 14 – Triangulo ............................................................................................................. 83 PRACTICA 15 – Raices.................................................................................................................. 83 PRACTICA 16 – Tiempos .............................................................................................................. 83 PRACTICA 17 – Prestamo ............................................................................................................ 83 PRACTICA 18 – Metros ................................................................................................................ 83 PRACTICA 19 – Millonario ........................................................................................................... 84 PRACTICA 20 – Promedio ............................................................................................................ 84 PRACTICA 21 – Circulo ................................................................................................................. 84 PRACTICA 22 – Maquina reversadora de numeros ...................................................................... 84 PRACTICA 23 – Nibles .................................................................................................................. 84 PRACTICA 24 – Multiplicacion por 300 ........................................................................................ 84 PRACTICA 25 – Peso .................................................................................................................... 84 PRACTICA 26 – Fahrenheit .......................................................................................................... 84 PRACTICA 27 – Celsius ................................................................................................................. 84 PRACTICA 28 – Determinante ...................................................................................................... 85 PRACTICA 29 – Don Manolo ........................................................................................................ 85 PRACTICA 30 - ISBN .................................................................................................................... 85 PRACTICA 31 – Odometer ........................................................................................................... 86 PRACTICA 32 – Triangulo II .......................................................................................................... 86 PRACTICA 33 – Distancia Euclidiana ............................................................................................ 86 PRACTICA 34 – Validacion de Tarjetas de credito ........................................................................ 86 PRACTICA 35 – Suma de fracciones ............................................................................................. 87 PRACTICAS DE ESTRUCTURAS DE CONTROL .................................................................................... 87 PRACTICA 36 – Max ..................................................................................................................... 87 PRACTICA 37 – Positivo Negativo ................................................................................................ 87 PRACITCA 38 – Par Impar ............................................................................................................ 87 PRACTICA 39 – Convertidor de divisas ......................................................................................... 87 PRACTICA 40 – Grado Promedio.................................................................................................. 88 PRACTICA 41 – Bisiesto ............................................................................................................... 88 PRACTICA 42 – Diferencia............................................................................................................ 88 PRACTICA 43 – Saludo ................................................................................................................. 88 PRACTICA 44 - Control ................................................................................................................ 88 PRACTICA 45 – Multiplo .............................................................................................................. 89 PRACTICA 46 – ASCII ................................................................................................................... 89 PRACTICA 47 – Super Raices ........................................................................................................ 89 PRACTICA 48 – Dia semana ........................................................................................................ 89 PRACTICA 49 – Super Triangulo ................................................................................................... 89 PRACTICAS DE ESTRUCTURAS REPETITIVAS ..................................................................................... 89 PRACTICA 50 – Countdown ......................................................................................................... 89 PRACTICA 51 – Factorial .............................................................................................................. 89 PRACTICA 52 – Serie 1 ................................................................................................................. 90 PRACTICA 53 – Primo .................................................................................................................. 90 PRACTICA 54 – Ingenieros 2050 .................................................................................................. 90 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 3 .. 92 PRACTICA 70 – Amigos .............................................. 90 PRACTICA 58 – Decimal a Hexadecimal ............................................................ 90 PRACTICA 61 – Tablas de Multiplicar .............. 90 PRACTICA 60 – Binario ...................... 90 PRACTICA 59 – Rombo ..................................................................... 91 PRACTICA 64 – Adivinar.........................................[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 55 – Super Primos ........................................................ 91 PRACTICA 65 – Nicomaco .................................................. 92 PRACTICAS CON VECTORES ...................... 92 PRACTICA 72 – Cafeteria .............................................................................................. 93 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 4 ............................................................................................................................................................................................................................................................. 92 PRACTICA 69 – Power ..................................................................................................................................................................................................................................................... 93 PRACTICA 73 – Traductor de Codigo Morse .. 90 PRACTICA 57 – Cuadrado ................................................................................................................................................................................................................................................................................................................................................. 92 PRACTICA 67 – Sumatorias .......................... 91 PRACTICA 63 – Calculadora ................................................................................................................................................................................................ 92 PRACTICA 71 – Minimo ....................................................................................................................................................... 90 PRACTICA 56 – Mayor Menor ............................... 93 PRACTICA 74 – Serie .......................... 92 PRACTICA 68 – Guess my age ....................................................................................................................................................................................................................................... 91 PRACTICA 66 – Perfectos .............................................................................................................................................................................................. 91 PRACTICA 62 – Divisores ......................................................... las instrucciones estandar y al finalizar algunos ejemplos de comandos condicionales SI…ENTONCES. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 5 . Se vera la estructura basica de un programa.[PROGRAMACION I – C++] IDSystems 2011 PARTE I Los ejercicios y practicas de esta primera parte estan enfocados a entender los conceptos y el modo de sintaxis de C++. si se los envias por correo electronico: Alumno_Grado_NoEjercicio. te familiarices con la sintaxis.. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 6 . cada ejercicio debera ir acompañado de su diagrama de flujo y pseudocodigo.. Recuerda que debes guardarlos y entregar tanto el compilado (...0 que soporta hasta Windows XP. Debes teclear cada uno de los programas en tu compilador de C++. pseudocodigo o indicar su funcionamiento. sino que deberas realizarla desde cero.EXE) como el codigo fuente a tu profesor. Ambos deben ir en un archivo ZIP como se describe a continuacion.zip Ademas. Ejemplo: ReynolHernandez_03_Prog01. Los programas fueron creados en Visual C++ 6. Hacer la compilacion y encadenamiento y ver los resultados.. no tendran aquí la respuesta. Las practicas. Los ejercicios seran instrucciones paso a paso o programas ya resueltos para que los teclees. de la suite Microsoft Visual Studio 6. Necesitaras descargar el Visual C++ 2008 Studio Express y posiblemente hacer algunas modificaciones en el codigo. este compilador no funcionara. comados y realices alguna tarea sobre ellos como generar los diagramas de flujo. Para versiones Windows Vista y Windows 7.[PROGRAMACION I – C++] IDSystems 2011 INSTRUCCIONES En este cuaderno de trabajo tendras los EJERCICIOS y PRACTICAS que veras en el curso de Programacion I.0. std::cout << std::endl. } Responde que es lo que hace cada una de las instrucciones: SENTENCIA Que tipo de variables declaramos? ACCION CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 7 .[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 1 – Hola Mundo 1. y usa la salida a la pantalla o consola Segundo. return 0. } Indica que es lo que hace cada linea: Ejercicio 2 – Tipos de datos El segundo programa trabaja con variables de tipo de dato entero. std::cout << x + y <<" " << x * y.cpp #include <iostream> int main() { std::cout<< "Hola Mundo". Aqui lo hemos nombrado hola.cpp #include <iostream> int main() { int x = 5.cpp Primero. return 0. std::cout << std::endl. El primer programa es el clasico HOLA MUNDO. int y = 7. [PROGRAMACION I – C++] IDSystems 2011 Que operaciones estamos realizando? Cual es el comando para mostrar salida por pantalla? Ejercicio 3 – Mezcla de tipos de datos El tercer programa es una variacion del segundo que incorpora un tipo de dato caracter para mezclar los dos Segundob.cpp #include <iostream> int main() { int x = 5; int y = 7; std::cout << std::endl; std::cout << "Estos son los valores: "; std::cout << x << "y " << y; std::cout << std::endl; std::cout << x + y <<" " << x * y; std::cout << std::endl; return 0; } Cual es la diferencia entre este programa y el anterior? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 8 [PROGRAMACION I – C++] IDSystems 2011 Ejercicio 4 – Simplificando comandos y datos El cuarto programa es otra variacion del no. 2, pero aqui pedira una entrada por el teclado, se almacena en una variable caracter y luego muestra todos los resultados. Tercero.cpp /* Tercero.cpp Este es el tercer programa y vamos a ver la entrada del teclado y salida por pantalla en la consola */ /* Esta es la libreria basica */ #include <iostream> /* Para no repetir la libreria std, la declaramos aqui */ using std::cout; using std::cin; int main() { int x = 5; int y = 7; char nombre [200]; cout << std::endl; cout<<"Estos son los valores: "<<x<<" y "<< y; cout<< std::endl; cout << x + y <<" " << x * y; cout << std::endl; cout <<"Cual es tu nombre? "; cin>>nombre; cout<<"Bienvenido "<<nombre<<". Gracias por usar C++\n\n"; return 0; } Responde a lo que se indica: SENTENCIA Que tipo de datos estamos declarando? Que operaciones estamos realizando? Cual es el comando de salida en pantalla? Cual es el comando de entrada de datos? Cual es la instruccion para ENTER o indicar una linea nueva? ACCION CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 9 [PROGRAMACION I – C++] IDSystems 2011 Ejercicio 5 – Variables de preprocesador En este ejercicio veremos como usar variables para ejecutarse en el preprocesador Prog05.cpp /* Prog05_Case.cpp Un programa que pregunta su nombre y le saluda De: El C++ por la practica. FICHA 1. Pag. 15 Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Valle del Bravo 17, Mayo,2009 */ #include <iostream> #define FRIEND 1 int main (void) { char name [200]; std::cout << "Escribe tu nombre \n"; std::cin >> name; #ifdef FRIEND std::cout << "Hola " << name << ", que tal! \n"; #endif return 0 ; } Responde a lo que se indica: Cual es la diferencia entre una variable normal y las variables de preprocesador? Como declaramos las variables de preprocesador? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 10 h> int main(void) { cout << "Esto del C++ parece muy facil" << endl. Para: Universidad Matamoros 17. return 0.cpp Programa del ejercicio propuesto pag. Por: Lic. cout << "*********************"<<endl.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 6 – Salida por pantalla Simple programa de salida por pantalla Prog06.cpp Programa para el ejercicio propuesto en pag. } Cual es la diferencia entre este programa y los que se han escrito anteriormente? Ejercicio 7 – Entrada y salida por pantalla Entrada y salida por pantalla: Prog07. Mayo.cpp /* Prog06_17. cin >> msg.h> int main(void) { char msg[200] . cout << "Escribe un mensaje con una sola palabra: "<<endl. return 0. 2009 */ #include <iostream. 17 Manual C++ por la practica 4.cpp /*Prog07_17. cout << msg << endl. Sergio Hugo Sanchez O. 2009 */ #include <iostream. Sergio Hugo Sanchez O. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 11 .1 no. 17 C++ por la practica. 2 Por: Lic. Para repasar la forma de mostrar mensajes en la pantalla. Para: Universidad Matamoros 17.Mayo. return 0. } INSTRUCCION Que tipos de datos estamos declarando? ACCION Que tipos de operaciones estamos realiznado? Cual es el resultado del programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 12 . int main (void) { int a= 1. Sergio Hugo Sanchez O Para: Universidad Matamoros 17. double y = 2.2 .[PROGRAMACION I – C++] IDSystems 2011 Que tipo de dato estamos declarando? Y como? Ejercicio 8 – Operadores y tipos de datos Programa que muestra el uso de operadores y tipos de datos Prog08.3 . a=global + (int) x. 2009 FICHA2 */ #include <iostream. cout << "x+y="<<x+y<<" "<<"a="<<a<<endl. Mayo.cpp /* Prog08_19.cpp Programa de la pagina 19 Curso C++ a la practica Para conocer los tipos basicos de datos en C Por: Lic. cout<<"a="<<a<<endl. double x = 1.h> int global = 5. 2009 Ficha2 */ #include <iostream. } Realiza el pseudocodigo de este programa CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 13 . cout << "Introduzca el primer numero" << endl. cin >> x.cpp /* Prog09_21. z. Mayo. cin >> y. cout << x <<"+"<< y << "="<< z << endl.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 9 – Operaciones simples Otro ejemplo de operaciones simples con tipos de datos numericos Prog09. z = x+y.cpp Programa pag 21 El C++ por la practica Tipos de datos numericos y operaciones simples Por: Lic.h> int main (void) { double x. Para: Universidad Valle del Bravo 17. Sergio Hugo Sanchez O. cout << "Introduzca el segundo numero" << endl. return 0. y. suma o concatenacion de caracteres cout << "El resultado " << a. Para: Universidad Matamoros 17.} Responde a lo siguiente: ¿Qué es la concatenación? ¿Cómo se realiza la concatenación? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 14 . cout << "Introduzca el segundo caracter: " << endl. tambien llamada CONCATENACION.Concatenacion Suma de caracteres. Sergio Hugo Sanchez O.cpp Programa que permite la suma (concatenacion) de 2 caracteres. // a=a+b. cin >> a. //declaracion de la variable tipo caracter char b.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 10 . 2009 Ficha 2 */ #include <iostream. return 0.cpp /*Prog11. cout << "Introduzca el primer caracter: " << endl. Prog11. a+=b. cin >> b. Mayo.h> int main (void) { char a. Por: Lic. 2(Multiplicacion)? " << endl. 1(suma). cin >> a.} else {cout << "i es mayor que j"<<endl. entrada salida por consola y condicional Prog13. } Explica el comando de IF Ejercicio 12 – Operaciones condicionales Ejercicio con operaciones. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 15 . Anidamientos y operaciones logicas */ #include <iostream. if (c==1) {cout << "El resultado es: " << a+b<<endl.h> int main() { double a.} return 0. cin >> b. int c.cpp /* Sentencias tipo if/else. cout << "Que operacion deseas hacer. cin >> c.cpp /* Pregunta dos numoers.h> int main () { int i = 1.} else {cout <<"El resultado es: " <<a*b<<endl. int j = 2. que operacion deseas hacer y muestra el resultado */ #include <iostream. if (i>j) {cout << "i es mejor que j"<<endl.} return 0.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 11 – If…Else Ejercicio para usar la sentencia IF/ELSE Prog12. cout << "Introduce el primer numero " << endl. cout << "Introduce el segundo numero " << endl. b. area=a*a. cout << "¿que area deseas calcular)" << endl.} else if (figura==2) { cout << "Valor del lado menor = ". cin >>a.. triangulo (3)" << endl.ELSE anidados Prog14. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 16 . if (figura==1) { cout << "valor del lado=". b. int figura. cin >> figura.cpp /*Calcular el area de diferentes poligonos */ #include <iostream. cout << "Figura= cuadrado (1). rectangulo (2).[PROGRAMACION I – C++] IDSystems 2011 Realiza el pseudocódigo del programa anterior Ejercicio 13 – IF…ELSE anidados Ejercicio mas complejo de IF..h> int main() { double a. double area. area=0.[PROGRAMACION I – C++] IDSystems 2011 cin >>a.0. } ACCION ¿Qué son las condiciones anidadas? COMANDO ¿Cómo se escriben las condiciones anidadas? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 17 . area = a*b. return 0.} else if (figura==3) { cout <<"Valor de la base =". cout << "Valor de la altura =". cin >> b.} cout <<"El area de la figura es= "<<area<<endl. cin >> b.} else { cout << "figura equivocada" << endl. cout << "Valor del lado mayor = " . area=a*b/2. cin >> a. MyReport. entrada y salida por pantalla. MyReport << " *********************************** inicio" << endl. Nuevos comandos Prog15. matrices. como se crean los vectores y el uso de un archivo de texto */ #include <iostream.ELSE.. el concepto de matriz se restringe de momento a un vector. creacion de archivo de texto. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 18 . MyReport << " *********************************** fin"<<endl.h> #define MAX_SIZE 25 int main () { int size. MyReport << " ERROR: dimesion del vector debe ser menor de " << MAX_SIZE <<endl..h> #include <fstream. MyReport << " *********************************** fin"<<endl.close(). cout << "Introduzca la dimension del vector" <<endl. return 0. return 1.txt").close(). cin >> size. MyReport.cpp /* Se define la dimesion de un vector mediante un entero. ofstream MyReport("resultado. if (size > MAX_SIZE) { cerr << "Error. MyReport << " Vector de " << size << " componentes " <<endl. MyReport << " *********************************** inicio" << endl. tamaño demasiado grande" << endl. se escribe un texto de salida mediante sentencia logica Aqui veremos otras librerias de C. mas de 1 libreria. } cout << "Vamos a trabajar con un vector de " << size << " componentes"<< endl.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 14 – Salida a un archivo externo Programa mas complejo que involucra: IF. [PROGRAMACION I – C++] IDSystems 2011 Indica lo siguiente: ¿Qué librerías estamos incorporando al programa? ¿Qué es lo que hace el programa? ¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 19 . b..cpp /* Uso de switch en lugar de IF Igual al prog13 */ #include <iostream. int figura. } Menciona las diferencias entre la instrucción Switch y la instrucción IF Ejercicio 16 – Area de poligonos con Switch Variacion de operaciones con poligonos usando switch en lugar de IF. break.. cout << "Que operacion deseas hacer: 1(suma) 2(Multiplicacion)"<<endl. variacion del primer programa IF. cin>>c. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 20 . cin >> figura.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 15 . else Prog17..h> int main() { double a. default: cout << "el resultado es:"<<a*b<<endl. cout << "Figura= rectangulo (1).h> int main () { double a. cout << "Introduzca el primer numero"<<endl.cpp /*Calcular el area de diferentes poligonos usando Switch*/ #include <iostream. area.. cout << "Introduzca el segundo numero"<<endl. cin >> b. } return 0. break. int c.Switch Programa de ejemplo para el Switch. cout << "¿que area deseas calcular)" << endl. b. triangulo (2)" << endl. switch (c) { case 1: cout << "el resultado es:"<<a+b<<endl.ELSE Prog16. cin >> a. [PROGRAMACION I – C++] IDSystems 2011 switch (figura) { case 1: cout << "Valor del lado menor = ". area=a*b/2. area = a*b. cout << "Valor del lado mayor = " . cin >> b. break. cin >> b. return 0. default: cout << "figura equivocada" << endl. cin >> a. } Prueba a hacer este programa sin ver el código aquí presentado. la figura no tiene area"<<endl. break. break . case 2: cout <<"Valor de la base =". else cerr <<"error. ya que es una variación del ejercicio de polígonos usando el IF…else CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 21 . cout << "Valor de la altura =". cin >>a. area=0. } if (area) cout <<"El area de la figura es= "<<area<<endl.0. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 22 . y ejemplos de algunos juegos los cuales preparan al estudiante en la logica de la programacion.[PROGRAMACION I – C++] IDSystems 2011 PARTE II En esta segunda parte se incluyen ejemplos para realizar ciclos. matrices. Ademas de incorporar funciones. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 23 . // el resto de 0 cout << " no es múltiplo de 3". i++) // bucle for de 1 a 20 << i. // o no lo es << endl. indicando a la derecha de cada uno si es divisible por 3 o no. // variable para bucle for(i = 1. Una buena documentación te ahorrará mucho tiempo y te evitará muchos dolores de cabeza. Si lo dejas para cuando has terminado el código. actualizaciones o correcciones deberías incluir una explicación de cada una de ellas y la fecha en que se hicieron. // cambio de línea El enunciado es el típico de un problema que puede ser solucionado con un bucle "for".cpp // Este programa muestra una lista de números.h> // librería para uso de cout int main() // función principal { int i. Prog19. Escribir un programa que muestre una lista de números del 1 al 20. y acostúmbrate a incluirlos en todos tus programas. // 11/09/2000 Salvador Pozo #include <iostream. { cout if(i dividir por 3 es else cout } return 0. cuando hagas revisiones. } i <= 20. probablemente sea demasiado tarde. añadiendo también el nombre del autor y la fecha en que se escribió. .[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 17 – Ciclo For Primero haremos uno fácil. // muestra el número % 3 == 0) cout << " es múltiplo de 3". indicando para cada uno // si es o no múltipo de 3. y la mayoría de las veces no lo harás. Observa el uso de los comentarios.-) También es una buena costumbre incluir al principio del programa un comentario extenso que incluya el enunciado del problema. Acostúmbrate también a escribir el código al mismo tiempo que los comentarios. Además. // el numero es múltiplo de 3 else cout << " no es múltiplo de 3". Esto también es muy recomendable.h> // librería para uso de cout // Prototipos: bool MultiploDeTres(int n). pero usando una función para verificar si el número es divisible por tres.cpp // Este programa muestra una lista de números. Por último. con el nombre adecuado. // muestra el número if(MultiploDeTres(i)) cout << " es múltiplo de 3". } } // Función que devuelve verdadero si el parámetro 'n' en // múltiplo de tres y falso si no lo es bool MultiploDeTres(int n) { if(n % 3) return false. de hecho prácticamente sobra el comentario. else return true. int main() // función principal { int i = 1. Prog20. // o no lo es cout << endl. al declarar la variable i le hemos dado un valor inicial 1. Observa que al incluir la función. #include <iostream. Además. } Comprueba cómo hemos declarado el prototipo de la función "MultiploDeTres". // variable para bucle while(i <= 20) // bucle hasta i igual a 20 { cout << i. y un bucle de tipo "while". fíjate en que la definición de la función va precedida de un comentario que explica lo que hace. // cambio de línea i++. el código queda mucho más legible. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 24 .[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 18 – Ciclo while Escribir el programa anterior. indicando para cada uno // si es o no múltipo de 3. que usa "j" como variable toma valores entre 1 e "i". // muestra el número cout << endl. además del bucle interior.cpp // Este programa muestra una lista de números // de este tipo: // 1 // 1 2 // 1 2 3 // ..h> // librería para uso de cout int main() // función principal { int i.. la orden de cambio de línea. después de cada número se imprime un espacio en blanco. j <= i. Además. El bucle exterior incluye. Prog21.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 19 – Ciclos anidados Escribir un programa que muestre una salida de 20 líneas de este tipo: 1 12 123 1234 . // cambio de línea } return 0. i <= 20. j. El bucle interior. i++) // bucle hasta i igual a 20 { for(j = 1. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 25 . de otro modo los números aparecerían amontonados.. // variables para bucles for(i = 1. j++) // bucle desde 1 a i cout << i << " ". de no ser así.. #include <iostream. la salida no tendría la forma deseada. } Este ejemplo ilustra el uso de bucles anidados. [PROGRAMACION I – C++] IDSystems 2011 Ejercicio 20 – Ciclo While Escribir un programa que muestre una salida con la siguiente secuencia numérica: 1. return 0.. ". // Se ha alcanzado la condición de fin do { // Hacer cout << i. // función principal separadores if(sumar) i += 4. alternativamente.Ahora lee las paginas de la 32 a la 40 del manual el C++ por la practica y realiza los ejercicios propuestos ahí para enviarlos al profesor. 5.// Calcula siguiente elemento sumar = !sumar. // variable para bucles bool sumar = true.while".. 7. } // Cambio de línea PRACTICA 1 1. El enunciado es rebuscado. 7. 23 La secuencia debe detenerse al llegar al 23. Veamos cómo resolverlo: Prog21. ..h> int main() { int i = 1. // Actualiza condición de fin if(terminado) cout << ". // Cambia la siguiente operación } while(!terminado). 9. mientras no se termine cout << endl.. else i -= 2.cpp /* Prog22 */ #include <iostream. // Siguiente operación es sumar o restar bool terminado = false. pero ilustra el uso de los bucles "do. // . CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 26 .. // Puntuación. // muestra el valor en pantalla terminado = (i == 23). La secuencia se obtiene partiendo de 1 y sumando y restando 4 y 2. 3. 5... else cout << ".". com/ He aqui el codigo: granjero.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 21 . Y JUGARLO. unsigned gallina : 1. 1. 5. Deberas teclear todo el codigo en C++ 2.gliffy. LINEA X LINEA del codigo del juego indicando que es lo que crees que hace. NOTA: Puedes usar el siguiente programa ONLINE y gratuito para hacer tu diagrama de flujo. 3. No olvides guardarlo o invitar al profesor con tu registro para que lo evalue. }. asi como ver nuevas instrucciones que con un juego. Deberas ejecutarlo. http://www. Opcial (para obtener mas puntos) realizar el diagrama de flujo del juego. // variable generica bitfield CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 27 . nuevas librerias y comandos (sentencias). unsigned maiz : 1.cpp /* * G R A N J E R O * * El problema del granjero cruzando el rio * */ #include <stdio. para mostrar un ejemplo mas practico y divertido sobre la programacion y sobre C++.. funciones. consulta la ayuda del editor o en la wikipedia. Nada mejor que checar la logica de un programa.h> #define BELL 7 #define K_ESC 27 #define NBYTES 80 /* * Estructura de datos de los jugadores (bitfield) */ struct player_st { unsigned granjero : 1.. unsigned zorra : 1. 4. Como estructuras. Si tienes una duda sobre alguna instruccion. Deberas realizar el algoritmo.h> #include <conio.. Este programa incluye algunas cosas que no se han visto hasta este momento en el curso. Pero que por lo demas no son dificiles de entender.Juego del Granjero Aqui vamos a hacer un alto o un parentesis en los temas que llevamos visto..h> #include <stdlib. struct player_st Player. bank = Player. void YouLose(void). //0 significa que el granjero esta en // el codigo de la tecla para el // numero de viajes a traves del rio //respuesta del usuario /* * Poner las condiciones iniciales. } /* * Instruct() * * Despliega las reglas del juego * */ void CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 28 .zorra = Player.\n\n"). el banco izquierdo int move.granjero = Player. char reply[NBYTES]. int GetMove(int). void PrintMap(void). if (MadeIt()) break. Todos los elementos estan en el * banco oeste y no se han hecho ningun viaje */ Player.gallina = Player. printf("Necesita instrucciones? (Pulse S o N): "). printf("Presione ESC en cualquier tiempo para salir. int CheckMap(int).granjero. ++trips. trips = 0.maiz = 0. int main() { int bank. while (1) { move = GetMove(bank). trips).granjero.[PROGRAMACION I – C++] IDSystems 2011 /* * Prototipos de funcion */ void Instruct(void). printf("El numero de viajes fueron %d\n". PrintMap(). movimiento requerido int trips. printf("\n============= GRANJERO =================\n"). bank = Player. return (0). if (reply[0] == 'S' || reply[0] == 's' ) Instruct(). int MadeIt(void). DoMove(move). void DoMove(int). } printf("Felicidades! Has llegado a salvo!\n"). gets(reply). PrintMap(). if (CheckMap(bank)) YouLose(). \n").maiz == bank) printf("M(aiz) ").zorra == bank) break. una gallina y un balde de maiz. printf("El tiene una zorra. printf("Tampoco puede dejar a la gallina con el maiz.maiz == bank ) break. if (Player. printf("Usted es el granjero. // mal comando CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 29 . while (1) { key = toupper(getch()). printf("posible numero de viajes.\n").[PROGRAMACION I – C++] IDSystems 2011 Instruct() { printf("**************************** INSTRUCCIONES ********************************** \n"). printf("al lado este con su equipaje a cuestas mientras hace el \n"). /* * Pregunte al usuario solo con los comandos disponibles. if (key == 'S') break.zorra == bank) printf("Z(orra) ").\n"). } /* * * GetMove() * Hacer los movimientos */ int GetMove(int bank) { int key. else if (key == 'M' && Player. exit (0).\n"). else if (key == 'G' && Player. printf("El granjero solo puede tomar una cosa a la vez en el bote.gallina == bank) break.\n"). } else putchar(BELL).gallina == bank) printf("G(allina) ").\n"). if (Player.\n"). printf(":"). Intente llegar desde el lado oeste del rio \n"). printf("Un granjero debe cruzar un rio en un bote. else if (key == K_ESC) { putchar('\n'). printf("Cuando el granjero esta presente. else if (key == 'Z' && Player. */ printf("\nComandos: S(olo) "). printf("La zorra no se puede quedar sola con la gallina porque se la come. los animales se portan bien. if (Player. maiz. case 'M': Player. } Player. ec. } void DoMove(int move) { switch (move) { case 'S': break.maiz != bank) status = 1. else wc = 'G'.wc. if (Player.granjero. break.maiz = !Player.gallina !=bank && Player.granjero = !Player. break.gallina = !Player. if (Player.zorra. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 30 . return (key).[PROGRAMACION I – C++] IDSystems 2011 } putchar('\n'). ec). case 'Z': Player.granjero) ec = 'G'.zorra = !Player. printf("\n%c ^^^^^^ %c\n". if (Player.gallina.zorra != bank && Player. break.gallina != bank) status = 1. case 'G': Player. } /* * CheckMap() * * Verificar que ningun elemento hostil se quedo solo * Regresar 1 si lo estan o 0 si no */ int CheckMap(int bank) { int status = 0. return (status). /* El granjero */ wc = ec = ' '. } /* * PrintMap() * * Desplegar el mapa actual mostrando las posiciones * del granjero y los demas elementos */ void PrintMap() { char wc. status =0. printf("\n%c ^^^^^^ %c\n". else if (Player. if (Player.maiz) printf("La gallina se comio el maiz. ec). return (status). printf("\n%c ^^^^^^ %c\n".maiz) status = 1. ec).wc.gallina && Player. "). has perdido.\n"). else wc = 'g'. exit(1).maiz) ec = 'm'. } /* * Cuando pierdes */ void YouLose() { printf("Lo sentimos.zorra == Player. if (Player. if (Player.zorra) ec = 'z'. /* La gallina */ wc = ec = ' '. printf("\n%c ^^^^^^ %c\n".gallina) ec = 'g'. else wc = 'm'. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 31 .wc. /* El maiz */ wc = ec = ' '.zorra && Player.gallina) printf("La zorra se comio a la gallina.[PROGRAMACION I – C++] IDSystems 2011 /* La zorra */ wc = ec = ' '.granjero && Player. if (Player.\n"). ec). if (Player. } /* * MadeIt() * * Determinar si todos los elementos fueron satisfactoriamente * transportados al lado este del rio */ int MadeIt() { int status.wc.gallina == Player. else wc = 'z'. [PROGRAMACION I – C++] IDSystems 2011 Responde a lo siguiente: ¿Cual es el objetivo del juego? ¿Cuantas y cuales son las funciones que tiene el juego? ¿Porque el juego esta dividido en funciones? ¿Cuales son las nuevas libreras incluidas? ¿Cuales son los commandos que sustituyen a cout y cin? ¿Que tipo de datos estamos declarando y como? ¿Que significa cada constante declarada? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 32 . H y STDLIB. Por lo tanto. 4. que si bien existen en la version del compilador de Microsoft que estamos usando. Ademas. lo haras con " ".H al inicio de tu programa pero veras que en lugar de <>. preguntale a tu profesor. Sin embargo. De entre ellas. porque deberas anexar estos dos archivos. 3. es importante hacer la siguiente aclaracion: Estos juegos fueron adaptados de otras versiones de compilador C++. vamos a ver 3 juegos mas. estaras indicando que sera de manera local.H y CONSOLA. INSTRUCCIONES ANTES DE EJECUTAR LOS PROGRAMAS. 5. algunas setenciones no se recomiendan en su uso porque precisamente no son librerias estandar que puedan ser emuladas facilmente. hay una libreria llamada CONIO. otro muy usado es el Turbo C++ o Borland C++. hay que seguir algunas reglas para que estos juegos funcionen y apliques estas nuevas instrucciones que generalmente son utiles en los juegos. Sin embargo. deberas incluir el archivo CONSOLA. Estos compiladores traen unas librerias no estandar de C. Asi que habra que seguir un par de instrucciones para que estos programas funcionen de manera correcta. no contiene las mismas instrucciones. ya que.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 22 .LIB 2.Juegos Para terminar de ver los ejemplos acerca de las condicionales y los ciclos.H. Uno bajo HEADER y el otro bajo RESOURCES. Como habiamos visto en la primer leccion. Sera muy importante que primero crees un proyecto de programa. que permiten extender un poco el lenguaje y facilitar algunas tareas en modo DOS para accesar algunas funciones graficas. Estos dos archivos deberas incluirlos donde este tu proyecto de programa. 1. Ve a la seccion de Manuales y Video y deberas bajar CONSOLA. y ademas del Microsot Visual C++. Cualquier duda. hay varios compiladores de C++. Tambien se deberan sustituir algunas instrucciones (que veras como comentarios en algunos casos) por otras compatibles con esta version del compilador (como RANDOM y RANDOMIZE). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 33 . h> #include <time. Te servira para repasar las instrucciones de condicion. has acertado en "<<i<<" oportunidades \n".[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 22a – Juego de Adivinanzas El siguiente es un pequeño juego de adivinanzas. el numero es: "<<a <<endl. } } Aqui veras que se incluyen nuevas librerias. i < 9. REALIZA: El pseudocódigo El diagrama de flujo CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 34 . if (b == a) { cout<<"Muy bien.cpp #include <iostream. //clrscr().h> void main(){ int i.h> #include <stdlib. i++){ cin>>b. Deberas descubrirlas y ver que es lo que hacen. a = 1 + rand() % 100. } if (b != a) { cout<<"Lo siento. //randomize(). } else if (b>a) cout<<"Es alto\n". a. for (i = 1. Ademas de nuevas instrucciones que no habiamos visto hasta el momento. prog22a_adivinanzas.h> #include <conio. system("cls"). cout<<"Adivina el numero que estoy pensando\n". srand(time(0)). La computadora "pensara" un numero entre 1 y 100 y tu deberas adivinarlo en maximo 9 oportunidades. else cout<<"Es bajo\n". break. //a=rand()%100. contadores y generacion de numeros aleatorios. cout<<"A D I V I N A N Z A S\n". b. [PROGRAMACION I – C++] IDSystems 2011 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 35 . strcpy(fruta[1]. un pequeño juego muy popular en las vegas. strcpy(fruta[7]. "Durazno"). cout<<"--.h> <dos. // for seed based on current time strcpy(fruta[0]. srand(time(0)). strcpy(fruta[8]..h> <time. */ #include #include #include #include #include #include #include <iostream. b = 1 + rand() % 5. el cual cada vez que lo ejecutes generara aleatoriamente las columnas con los elementos. "Pera"). frutas[cuenta] = a. "Mango"). for (cuenta =1.Tragamonedas Ahora.cpp /* progb22b_tragamonedas. cuenta++) { columna += 20. Si le "atinas" a que las 3 columnas contengan lo mismo. b. cuenta<=3. "Sandia"). prog22b_tragamonedas. YA GANASTE!. m. El clasico tragamonedas. strcpy(fruta[9]. // c = random(5). // b = random(5). "Naranja"). } if (frutas[1]==frutas[2] && frutas[1]==frutas[3]) { gotoxy(24. "Piña"). //clrscr(). "Fresa"). columna = 0. int frutas[4].cpp JUEGO: El clasico de las Vegas. strcpy(fruta[4].[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 22b .h> "consola.F e l i c i d a d e s h a s !!!". Frutas(columna). "Frambuesa"). char fruta[10][10]. c = 1 + rand() % 5.h" void Frutas(int col). strcpy(fruta[3].h> <conio. c. strcpy(fruta[5]. system("cls"). void main() { //randomize().h> <stdlib. "Melon"). } if (frutas[1]==frutas[2] || frutas[1]==frutas[3] || frutas[2]==frutas[3]) { gotoxy(24. int cuenta.20). strcpy(fruta[6].h> <string. a. int i. g a n a d o CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 36 .. "Melocoton").20). strcpy(fruta[2]. a = 1 + rand() % gotoxy(col. } getch().". srand(time(0)).[PROGRAMACION I – C++] IDSystems 2011 cout<<"=== Ya casi ganas. i ). Deberas realizar: 1) El codigo 2) El diagrama de flujo Ademas indica lo siguiente: ¿Cuáles son las librerías que incorpora el programa y que hacen cada una? ¿Qué tipos de datos estamos declarando y como? ¿Qué funciones de C++ nuevas has descubierto en el programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 37 . cout<<" "<<endl. Asi con una pequeña funcion. i<10. i ). gotoxy(col. i++){ //a=random(10). cout<<" . } } //for seed based on current time 9. cout<<fruta[a]. i ). Aqui repasaras sobre los ciclos y las condicionales. gotoxy(col. } void Frutas(int col){ for (i=0. //srand(time(0). te falto uno !!!". delay(100). LIB en el mismo directorio del programa para compilar */ #include <iostream. NOTA: Recordar que necesitamos el archivo CONSOLA.H y CONSOLA. } // cambiar * por el codigo ASCII 176 (Si usas NOTEPAD++).cpp /* Pseudovirus. int col.h> #include <conio. for (i=1. void izquierda(int fila). for (j=1.h> #include <dos. Normal @ CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 38 . j++) cout<<"---Auxilio!!! un virus al ataque al sistema ". void final(). j<=50. i<=25.cpp Programa que muestra un supuesto virus en la pantalla Por: LSC Sergio Hugo Sanchez.h> #include <math. r.i. i++) { if (i % 2 !=0 ) derecha(i). } final().[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 22c – Pseudovirus Quieres hacer una pequeña demostracion de un virus? Aqui tienes la oportunidad mientras practicas los ciclos. j. prog22c_pseudovirus. void main(){ clrscr().h> #include "consola.h" void derecha(int fila). r=50. else izquierda(i). cout<<" * gotoxy(20. cout<<" * * * * *".fila). gotoxy(col. * * *". cout<<" * * ** *". col--) { delay(r).11). gotoxy(col. } for (col=9. col<=6. * * * *". cout<<" * * * * *".[PROGRAMACION I – C++] IDSystems 2011 void derecha(int fila) { for (col=1. } } void izquierda(int fila) { for (col=80. gotoxy(20. } for (col=74. 6). Normal * void final() { clrscr(). col--) { delay(r). gotoxy(20. } for (col=75. } } //cambiar Ü por el codigo ASCII 220 (Si usas NOTEPAD++). col++) { delay(r). cout<<" * * * *".10). gotoxy(20. col>=1. cout<<" * * * * *". gotoxy(20. gotoxy(20. cout<<" ". cout<<" * gotoxy(20. cout<<" * gotoxy(20. col--) { delay(r).13). cout<<"¦¦¦¦¦¦". gotoxy(20.fila). 7).12). cout<<"||||||". col<=74. gotoxy(col. cout<<" ". cout<<"¦".fila). delay(3000). 5).fila).15). * * **". } Aqui veras bastantes ciclos for. cout<<" * * * * *".16). delay(1000). gotoxy(col. Ademas indica lo siguiente: ¿Qué librerías incluye este programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 39 . cout<<" ********** gotoxy(20. gotoxy(20. gotoxy(20. Realiza: 1) El codigo 2) El diagrama de flujo. col++) { delay(r).17).fila). col++) { delay(r). Algunas instrucciones de pantalla y retardo. cout<<" * * * * *". 9). col>=1. * * * *". } for (col=1. col>=74. col<=80. cout<<" * * * * *".14). gotoxy(20. 8). cout<<"|".fila). gotoxy(col. gotoxy(col. cout<<" ********** * * * *". clrscr(). divirtete y si quieres modifica el programa para que acepte mas palabras una vez que te funcione. ahora veamos este juego un poco mas largo: el Ahorcado. contiene un menu inicial y la forma basica para jugarlo.[PROGRAMACION I – C++] IDSystems 2011 ¿Qué tipos de datos estamos declarando? ¿Qué funciones propias estamos usando? Ejercicio 23 . pero te gustara: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 40 .Juego del Ahorcado Para seguir probando lo que son las funciones y como un programa se divide en estas para hacer mas facil de administrar. En la seccion de practicas de este curso apareceran otros modelos de juego del ahorcado (incluso con graficas. Si bien. es un juego sencillo ya que solo acepta 3 palabras. mas temas y el uso de archivos para las palabras) que estan hechos en Borland C++ (en lugar de MS Visual C++) y con los cuales podras practicar. Aqui aplicaremos los temas anteriores: El programa esta un poco largo. Mientras. [PROGRAMACION I – C++] IDSystems 2011 prog23_ahorcado.cpp /*Pro23_ahorcado.cpp Este es el juego del Ahorcado. Solamente contiene 3 palabras iniciales pero puede ser agrandado hasta donde quieras. Por: LSC Sergio Hugo Sanchez NOTA: No oldivar poner el header y libreria CONSOLA.H, CONSOLA.LIB en la misma carpeta */ #include #include #include #include #include <iostream.h> <conio.h> <stdio.h> <string.h> "consola.h" #define num_palabras 3 void void void void void void void void void void void void construye_todo(); captura_las_palabras(); muestra_las_palabras(); exhibe_el_menu(); elegir_palabra(); construye_cabeza(); construye_tronco(); construye_brazo_izquierdo(); construye_brazo_derecho(); construye_pie_izquierdo(); construye_pie_derecho(); construye_hora(); int opcion_elegida; int posicion_de_palabra_a_adivinar; int cant_de_palabras = num_palabras; int longitud_de_las_palabras[num_palabras]; char todas_las_palabras[20] [num_palabras]; char palabra_actual[20]; int logitud_palabra_actual=0; main() { opcion_elegida = 0; clrscr(); exhibe_el_menu(); getche(); return 0; } //*********************************************************** void exhibe_el_menu(void) { //clrscr(); do { gotoxy(25,2); printf("PRESIONA EL NUMERO DE LA OPCION QUE DESEE"); gotoxy(25,3); printf("-----------------------------------------"); CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 41 [PROGRAMACION I – C++] IDSystems 2011 gotoxy(25,3.5); printf("-"); gotoxy(59,3.5); printf("!"); gotoxy(25,4); printf("MENU DEL JUEGO EL AHORCADO !"); gotoxy(25,5); printf("1 - INGRESAR LAS PALABRAS !"); gotoxy(25,6); printf("2 - JUGAR EL AHORCADO !"); gotoxy(25,7); printf("3 - MOSTRAS LAS PALABRAS !"); gotoxy(25,8); printf("4 - ABANDONAR EL PROGRAMA !"); gotoxy(25,9); printf("----------------------------------------"); gotoxy(25.5,15); printf("ELIJA LA OPCION QUE DESEE Y PULSE ACEPTAR:"); gotoxy(67,15); scanf("%d",&opcion_elegida); } while (opcion_elegida < 1 || opcion_elegida > 4 ); switch (opcion_elegida) { case 1: captura_las_palabras(); case 2: elegir_palabra(); case 3: muestra_las_palabras(); case 4: break; } } //***************************************************************** void captura_las_palabras(void) { int ia,ja; clrscr(); for (ia=0; ia<cant_de_palabras; ia++) { gotoxy(5,ia+10); printf("ESCRIBA LA PALABRA NUMERO %d: ", ia+1); gotoxy(35,ia+10); cin>>palabra_actual; longitud_palabra_actual = strlen(palabra_actual); longitud_de_las_palabras[ìa] = longitud_palabra_actual; for (ja=0; ja<longitud_palabra_actual; ja++) todas_las_palabras[ja][ia]=palabra_actual[ja]; } exhibe_el_menu(); } //**************************************************************** void muestra_las_palabras(void) { int i,j; clrscr(); for (i=0; i<cant_de_palabras; i++) { gotoxy(5,i+10); printf("PALABRA No %d: ", i+1); longitud_palabra_actual = longitud_de_las_palabras[i]; for (j=0; j<longitud_palabra_actual; j++) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 42 [PROGRAMACION I – C++] IDSystems 2011 { gotoxy(19+j, i+10); printf("%c", todas_las_palabras[j][i]); } } printf("\n Pulse una tecla para continuar..."; getche(); exhibe_el_menu(); } //*************************************************************** void elegir_palabra(void) { int longitud_de_palabra_a_adivinar, l; int i,j,sw=0, errores=0,contaP=0; char letra[l], completa[20]; clrscr(); do { gotoxy(10,4); printf("Escriba un numero entre 1 y %d y pulse enter:", cant_de_palabras); gotoxy(55,4); scanf("%d", &posicion_de_palabra_a_adivinar); clrscr(); } while (posicion_de_palabra_a_adivinar < 1 || posicion_de_palabra_a_adivinar > cant_de_palabras); longitud_de_palabra_a_adivinar = longitud_de_las_palabras[posicion_de_palabra_a_adivinar-1]; for (i=0: i<longitud_de_palabra_a_adivinar; i++) { gotoxy(i+20,3); printf("-"); } do { i++; gotoxy(10,4); printf("\n Escriba una Letra y Presione <Enter>..."); cin>>letra; sw=0; for (j=0; j<longitud_de_palabra_a_adivinar; j++) { if (todas_las_palabras[j][posicion_de_palabra_a_adivinar1]==letra[0]) { gotoxy(j+20,3); printf("%c", letra[0]); completa[j]= letra[0]; sw=1; } } contaP=0; for (l=0; l<longitud_de_palabra_a_adivinar; l++) { if(completa[l]==todas_las_palabras[l][posicion_de_palabra_a_adivinar1]) contaP++; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 43 } else { if (sw==0) errores++.. errores=7.10). } //************************************************************************* void construye_cabeza(void) { gotoxy(39. construye_todo(). else if (errores==7) { clrscr(). printf("|||||"). else if (errores==6) construye_pie_izquierdo().[PROGRAMACION I – C++] IDSystems 2011 } if (contaP=longitud_de_palabra_a_adivinar) { gotoxy(37."). } } } while (i<longitud_de_palabra_a_adivinar || errores <=6). errores=4. exhibe_el_menu(). else if (errores==3) construye_brazo_derecho(). printf("|_-_|"). printf("\nGANASTES EL JUEGO.. gotoxy(38. getche(). . else if (errores==4) construye_brazo_izquierdo().6). else if (errores==2) construye_tronco(). getch(). } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 44 . if (errores==1) construye_cabeza(). printf( "\n\n Pulse una tecla para continuar. else if (errores==5) construye_pie_derecho(). printf("| ...").. gotoxy(38.7). exhibe_el_menu().8). i=longitud_de_palabra_a_adivinar. |"). 9).11). } //******************************************************************* void construye_pie_izquierdo(void) { gotoxy(42. printf("/"). printf("|"). } //******************************************************************** void construye_brazo_derecho(void) { gotoxy(40. gotoxy(44. printf("|"). gotoxy(44. gotoxy(41. printf("").10).14). printf("/").12). gotoxy(41. } //******************************************************************** void construye_brazo_izquierdo(void) { gotoxy(42.13). printf("|"). gotoxy(42. printf("/"). printf("\").14).5). printf(":"). } //******************************************************************* void construye_pie_derecho(void) { gotoxy(40. gotoxy(38.10). printf("\").3). gotoxy(41. } //****************************************************************** void construye_horca(void) { int i.[PROGRAMACION I – C++] IDSystems 2011 //*********************************************************************** void construye_tronco(void) { gotoxy(41. gotoxy(38. gotoxy(41. printf("|"). printf("/"). printf(":").9).4). printf(""). gotoxy(41.10). printf(":"). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 45 .9).13). printf(":::::::::::::::"). gotoxy(41.3). . construye_pie_izquierdo().i). printf("==============="). construye_brazo_derecho()."). construye_cabeza().. Este programa tiene errores de manera intencional. } gotoxy(50. } //******************************************************************** void construye_todo(void) { gotoxy(37. construye_pie_derecho(). } NOTA: Recuerda que algunas funciones de este programa son una emulacion de la biblioteca original conio.LIB. printf(":").[PROGRAMACION I – C++] IDSystems 2011 for (i=3. i++) { gotoxy(57. Descubrelos y da una solucion. ademas: Responde a lo siguiente: ¿Qué librerías son las que se incluyen en este programa? ¿Cuáles son las funciones en las que esta dividido este programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 46 .. construye_brazo_izquierdo()..i).4). construye_horca(). printf("\nPERDISTE EL JUEGO.h de Borland C++. construye_tronco().. i<18.H y la libreria CONSOLA. por lo que deberas incluir el archivo header CONSOLA. que se incluyen en este programa? ¿Qué tipos de datos se declaran en este programa? ¿Dónde se almacenan las palabras? ¿Cómo se pueden poner mas palabras? ¿Qué función o proceso es lo que mas realiza este programa y se repite? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 47 .[PROGRAMACION I – C++] IDSystems 2011 ¿Cuáles son los nuevos comandos de C. n)-1"). GetConsoleScreenBufferInfo(hStdOut.n).Y. int. csbi.X * csbi. char). c). Towers( n. printf("\n\tpara jugar con los colores solo activen las funciones").dvSize. c). printf("\n\tque estan como comentarios.a. DWORD count. printf("\n\n\n\tnota: estas variables solo alcanzan para 30 discos"). coord). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 48 . Prueba hacer el codigo siguiente en MS Visual C++ prog24_hanoi. Mosqueda */ #include <stdio.C\n"). printf("\n\ty usando la funcion POW(2. void main() { //clsscr().h> /* include <windows.&n). FillConsoleOutputCharacter(hStdOut.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 24 . printf("las torres estan representadas como A. c=0. SetConsoleCursorPosition(hStdOut. ' '.").cpp /*prog24_hanoi. printf("\n\tEl resultado es el mismo => %d".n)-1.Juego Las Torres de Hanoi Generalmente para probar el tema de la recursividad se aplica el ejercicio del juego de las torres de Hanoi. coord.'C').h> #include <math. &count).'B'.B.c). el usuario tiene que mover unos aros que estan desde el poste 1 hasta el poste 3.cpp Programa de la Torre de Hanoi Por: Enrique R. int n=0.0}.dvSize. En este juego. printf("Digite el 0 para salir del sistema. a=0. printf("\n\n Con %d DISCOS %d". c=((a+b)-1). c=pow(2. printf("\n\n\t\tTORRE DE HANOI\n"). CONSOLE_SCREEN_BUFFER_INFO csbi. n. printf("\n\tEl numero de Dias es => %d". b=0.h> #define BG_BLACK (0) #define FG_RED (12) #define FG_BLUE (9) #define FG_WHITE (15) #define FG_GREEN (2) */ //void clrscr() /* { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE).'A'. char.h> #include <conio. }*/ void Towers( int. de tal forma que queden acomodados de menor a mayor hacia abajo como estaban en el poste 1. printf("\nEspero que les guste "). printf("CREADO POR ENRIQUE RADHAMES MOSQUEA MARTINEZ\n"). pasando a veces por el poste 2. scanf("%d".\n"). char. COORD cor = {0. &csbi). printf("Digite la cantidad de Discos ===> ". //SetConsoleTextAttribute(hStdOutput. Este ultimo programa esta escrito en Borland C++ y utiliza bibliotecas graficas de MSDOS. } a=a+1. c*=a+b. " HACIA ". hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 49 . frompeg. printf("\n%s%d%s%c%s%c". " DESDE ". para que ejecutes el ejecutable. hStdOutPut = INVALID_HANDLE_VALUE. } /* juego del sistema */ void Towers( int n. frompeg. printf( "\n%s%d%s%c%s%c". n. "\t\t\t DISCO ". ve a la seccion de BIBLIOTECA\DESCARGAS y baja el archivo de HANOIG (BORLAND). " HACIA ". } Y despues. BG_BLACK | FG_BLUE ). auxpeg. char auxpeg ) { /* HANDLE hStdInput = INVALID_HANDLE_VALUE. topeg. topeg. char frompeg. int a. " DESDE ". //SetConsoleTextAttribute(hStdOutput. auxpeg. BG_BLACK | FG_RED).[PROGRAMACION I – C++] IDSystems 2011 getch(). "\t\t\t DISCO ". */ if (n==1) { b=b+2.a. BG_BLACK | FG_BLUE ). frompeg. frompeg. Towers( n-1. topeg). return. topeg).a. n. char topeg. a). a). Towers( n-1. SetConsoleTextAttribute(hStdOutput. hStdInput = GetStdHandle(STD_INPUT_HANDLE). =) Responde a lo que se indica: ¿Qué es la recursión? ¿Por qué están varias instrucciones con comentarios? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 50 . ¿Podrias modificar el programa para que tu seas el que haga los movimientos? Es un buen reto.[PROGRAMACION I – C++] IDSystems 2011 NOTA: En ambos es posible que solo veas a la computadora jugar. [PROGRAMACION I – C++] IDSystems 2011 PARTE III ARREGLOS Y ESTRUCTURAS CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 51 . usando arrays: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 52 .h> #define MAX 100 //Declara funcion de vectores //void vectores() // Comenzamos con la funcion normal /* A continuaci´on se muestra un programa que cuenta el numero de apariciones de los numeros 0. Primero un programa que cuenta los numeros sin usar arrelgos: prog24_vectores. &num ). printf("Por lo que se te preguntara por un numero. c3=0.cpp /* prog24 . scanf( "%d". while (num != -1) { if (num == 0) c0++. printf("Para finalizar el ciclo. if (num == 2) c2++. %d. printf("El siguiente programa cuenta en numero de apariciones de los numeros 0 al 3\n"). teclea -1 y te apaceran los resuñtados \n\n"). teclealo y pulsa ENTER \n"). &num). c3 ). } printf( "Resultado Contadores:%d. } Y ahora basado en el mismo concepto de contar numeros. if (num == 1) c1++. 1. */ int main() { int num.Ejemplo de vectores */ #include <stdio. scanf("%d". c1. c0. 2 y 3 en una secuencia de enteros acabada en -1. c0=0. c2. if (num == 3) c3++. return 0. c2=0. c1=0. %d. %d \n\n". tecleando los siguientes programas para que veas el funcionamiento de los arreglos.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 25 – Arreglos Realiza la siguiente practica. [PROGRAMACION I – C++] IDSystems 2011 prog30_vectores. se halla en el uso de vectores. i.Uso de vectores */ /* ¿Que ocurriria si tuviesemos que contar las apariciones de los cien primeros numeros enteros? ¿Deber´ýamos declarar cien contadores y escribir cien construcciones if para cada caso? La respuesta. cont[i] ). &num2). while (num2 != -1) { if ((num2 >= 0) && (num2 <= MAX)) cont[num2]++. printf("Por lo que se te preguntara por un numero. teclea -1 y te apaceran los resuñtados \n\n"). scanf("Numero %d". como era de esperar. for (i= 0. i< MAX. scanf( "%d". num2. return 0. teclealo y pulsa ENTER \n"). printf("El siguiente programa cuenta en numero de apariciones de los numeros 0 al 3\n").cpp /* Pro30 . i++) cont[i] = 0. cont[MAX]. } Responde a lo siguiente: ¿Cuál es la diferencia entre los dos programas? ¿Cómo declaramos las variables en ambos programas? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 53 . i< MAX. &num2 ). Veamoslo en el siguiente codigo que llama a la funcion: */ #include <stdio.h> #define MAX 100 int main() { int i. printf("Para finalizar el ciclo. i++) printf( "Contador [%d] = %d \n\n". } for (i= 0. b++) for (c= 0. b < DIM. a. a.h).h. a< DIM. Tambien se ha usado la funcion getchar (stdio. b< DIM. c++) { printf( "\n\n tabla[%d][%d][%d] = ". a++) for (b= 0. tabla_random[a][b][c] ). printf( "%d". /* Muestra series de DIM en DIM elementos. Concretamente. } printf( "\n\nPulse ENTER para seguir" ).h> #define DIM 10 void main() { int tabla_random [DIM][DIM][DIM].cpp /* Prog31 . c. b++) { for (c= 0. for (a= 0. b.Arrays multidimensionales El siguiente ejemplo muestra el empleo de una tabla multidimensional. */ #include <stdio. c ).h> #include <stdlib. a++) for (b= 0. */ for (a= 0. b. c++) tabla_random[a][b][c] = rand(). el programa utiliza una tabla de 3 dimensiones para almacenar 1000 numeros aleatorios.[PROGRAMACION I – C++] IDSystems 2011 ¿Por qué cambiaron las instrucciones para los ciclos? Ejercicio 26 Ahora un ejercicio para aprender sobre arrays multidimensionales: prog31. getchar(). que interrumpe el programa y espera a que el usuario presione una tecla. c< DIM. c < DIM. Para generar numeros aleatorios se usa la funcion rand de la libreria estandar stdlib. } } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 54 . a< DIM. [PROGRAMACION I – C++] IDSystems 2011 Responde a lo siguiente: ¿Que son los arrays multidimensionales? ¿Como generamos aleatorios? los numerous ¿Como declaramos las variables? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 55 . cpp /* Prog33 . printf( "\nPALABRA:" ). y finalmente escribe la cadena resultante. cad2[80]. c=' '. scanf( "%s".Otro ejemplo de cadenas A continuacion se muestra otro ejemplo que hace uso de las cadenas de caracteres. las concatena. /* Una palabra de la frase.h> #include <string. palfrase. */ char c.h> #define MAXLIN 100 void main() { char pal[MAXLIN]. */ char palfrase[MAXLIN]. cad3[160]. El programa lee dos cadenas de caracteres.". } printf( "\nLa palabra %s aparece %d veces. El programa emplea la funcion de comparacion de cadenas strcmp. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 56 . convierte las letras minusculas en mayusculas y viceversa. */ #include <stdio.h> #include <string. pal. pal ). palfrase) == 0) total++. &c ). int total = 0.h> void main() { char cad1[80]. while (c != '\n') { scanf( "%s%c".Ejemplo de cadenas El siguiente programa cuenta el numero de veces que se repite una palabra en una frase.[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 27 – Cadenas Para repasar los temas.cpp /* Prog32 . realiza estos dos programas: prog32. Dicha funcion devuelve 0 en caso de que las cadenas comparadas sean iguales */ #include <stdio. total ). /* La que buscamos. if (strcmp(pal. printf( "\nFRASE:" ). } Y tambien este otro: prog33. } Responde a lo siguiente: ¿Qué es lo que hace el primer programa? ¿Qué es lo que hace el segundo programa? ¿Cuáles son las funciones de cadena que usan estos programas? ¿Cuáles son las instrucciones de entrada en los dos programas? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 57 . delta = 'a' . cad3 ). i = 0. gets(cad1). while (cad3[i] != '\0') { if ((cad3[i] >= 'a') && (cad3[i] <= 'z')) cad3[i] -= delta. gets( cad2 ). cad2 ).[PROGRAMACION I – C++] IDSystems 2011 int i. delta. cad1 ). /* cad3 = cad1 + cad2 */ strcpy( cad3. printf( "Introduzca la primera cadena:\n" ). minuscula */ i++. } printf( "La cadena resultante es: %s \n". /* Convierte a mayuscula */ else if ((cad3[i] >= 'A') && (cad3[i] <= 'Z')) /* Convierte a cad3[i] += delta. strcat( cad3.'A'. printf( "Introduzca la segunda cadena:\n" ). [PROGRAMACION I – C++] IDSystems 2011 ¿Cómo se declaran las variables en ambos programas y por que de esa manera? Ejercicio 28 . tanto de numeros como de cadenas { 3.333. } st [2][3] = { {{ 'a'. //Aqui static static static j.'n'.4. 4444. static int b[2][5] = { 1. 3e3 }. static struct { int i. float x.4444.c Inicializacion y manejo de "arrays". 55555 }. 22. static char *c = "cadena". 7.1415e4}. realiza el siguiente ejercicio para que veas como se determinan y que resultados muestran: prog23_arrays. { 'b'. 3. 2.'e'. float s.'d'. 5. 6e2 }.55555.5e4 }.22.5. 4e2 }. } sta = { 1.'a'. 2 }. = { 'c'.2.cpp /* ej4. { { 'd'. //Aqui pondremos los resultados de dichos arrays y estructuras. = "cadena". cadenas y estructuras.3. 5e3 }}. 1.'\0' }. static struct { char c. 3.h> void main() { int i. 1.Arreglos y cadenas Para repasar la leccion anterior sobre los arrays. stb = { 2.} }. { 'c'. 333. int i.1 }. 2. inicializamos los int enteros [5] = char cadena1 [16] char cadena2 [16] arrays. 4. 1. 3. //Ahora inicializamos las estructuras de datos static int a[2][5] = { { 1. { 5. // Comenzamos con las cadenas CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 58 . 4.'a'. 1 } }. */ # include <stdio. j<3. st[i][j]. ++i ) printf ("%d ". c). } Responde a lo siguiente: Que variables declaramos en este programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 59 . cadena2). //Que nos muestra las variables enteros en este ciclo? for (i=0. printf ("b:\n"). printf ("cadena1:\n").i. b[i][j]). st[i][j]. enteros[i]). printf ("%d %f \n\n". printf ("%s\n\n". for (i=0. sta.c. ++j) printf ("%c %d %f\n". i<5. ++i) for (j=0.i. i<2.[PROGRAMACION I – C++] IDSystems 2011 printf ("enteros:\n"). i<2. printf ("%s\n\n". printf ("%s\n\n". printf ("st:\n"). printf ("sta:\n"). printf("\n\n"). ++i) for (j=0. ++j) printf ("%d ". for ( i=0. printf ("\n\n"). i<2. cadena1). printf ("a:\n"). ++j) printf ("%d ". st[i][j]. sta. j<5.s). printf ("cadena2:\n"). j<5. a[i][j]). //Ahora mostremos las estructuras de datos de numeros for (i=0. ++i) for (j=0. printf ("c:\n"). printf ("\n\n").x). int main() { int m. n<3. while (ch=='Y' || ch =='y') { for (m=0.h> char matrix[3][3].j. sum=0. m<3.h> #include <stdlib. Que te diviertas!!! prog35_juegogato. while (sum<10) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 60 .h> #include <conio. ademas tendras que traducirlo porque los mensajes estan en ingles. n. //={0} void playbox(void). int i. Teclea el codigo siguiente y ejecutalo. para aprender un poco mas sobre las matrices y ver su aplicacion.[PROGRAMACION I – C++] IDSystems 2011 Que funcion tienen la instruccion static? Cual es la descripcion del formato que usa la funcion printf? Ejercicio 29 . m++) for (n=0.Juego del Gato (Tic-Tac-Toe) A continuacion se presenta el juego del gato o Tres en raya (Tic-Tac-Toe en ingles). char ch='y'.cpp #include <iostream. n++) matrix[m][n]='\0'. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 61 .\n". cout<<"Player 1 is 'X': choose the row and column"<<endl. cout<<"Column : ". } // player 2's turn cout<<"Player 2 is 'O': choose the row and column "<<endl.i>3 || i<1 || j>3 || j<1 || ('X'==matrix[i-1][j-1] ||'O'==matrix[i-1][j-1]). sum++. but you gotta choose another place. cin>>i. cin>>j. you both stink!!!"<<endl. hahaha. but you gotta choose another place. cout<<"Coumn : ".) { cout<<"Sorry boy. for (. for (.[PROGRAMACION I – C++] IDSystems 2011 { if (sum==0) playbox(). playbox(). cout<<"Row : ".) { cout<<"Sorry boy. cout<<"Row : ". } matrix[i-1][j-1]='X'. cin>>j. cout<<"Coumn : ". cin>>j.\n". cin>>i. cin>>i. //Check if wins if (matrix[0][0]=='X' && matrix[1][1]==matrix[2][2]) { if (matrix[2][0]=='X' && matrix[1][1]==matrix[0][2]) { if (matrix[0][0]=='X' && matrix[1][0]==matrix[2][0]) { if (matrix[0][1]=='X' && matrix[1][1]==matrix[2][1]) { if (matrix[0][2]=='X' && matrix[1][2]==matrix[2][2]) { if (matrix[0][0]=='X' && matrix[0][1]==matrix[0][2]) { if (matrix[1][0]=='X' && matrix[1][1]==matrix[1][2]) { if (matrix[2][0]=='X' && matrix[2][1]==matrix[2][2]) { } if (sum==9) { //sum=9 because there are only 9 matrix[0][0]==matrix[1][1] && matrix[2][0]==matrix[1][1] && matrix[0][0]==matrix[1][0] && matrix[0][1]==matrix[1][1] && matrix[0][2]==matrix[1][2] && matrix[0][0]==matrix[0][1] && matrix[1][0]==matrix[1][1] && matrix[2][0]==matrix[2][1] && boxes in the game cout<<"The game is over and no one wins. cout<<"Row : ". break.i>3 || i<1 || j>3 || j<1 || ('X'==matrix[i-1][j-1] ||'O'==matrix[i-1][j-1]). "<<matrix[1][0]<<" | ---|---|---\n". } system("PAUSE"). //Check if wins if (matrix[0][0]=='O' && && matrix[1][1]==matrix[2][2]) { if (matrix[2][0]=='O' && && matrix[1][1]==matrix[0][2]) { if (matrix[0][0]=='O' && && matrix[1][0]==matrix[2][0]) { if (matrix[0][1]=='O' && && matrix[1][1]==matrix[2][1]) { if (matrix[0][2]=='O' && && matrix[1][2]==matrix[2][2]) { if (matrix[0][0]=='O' && && matrix[0][1]==matrix[0][2]) { if (matrix[1][0]=='O' && && matrix[1][1]==matrix[1][2]) { if (matrix[2][0]=='O' && && matrix[2][1]==matrix[2][2]) { } cout<<"\nWould you like to play again??? (Y cin>>ch. 2 3\n"<<endl. } matrix[0][0]==matrix[1][1] matrix[2][0]==matrix[1][1] matrix[0][0]==matrix[1][0] matrix[0][1]==matrix[1][1] matrix[0][2]==matrix[1][2] matrix[0][0]==matrix[0][1] matrix[1][0]==matrix[1][1] matrix[2][0]==matrix[2][1] . } } /****************************/ void playbox(void) { //the play box cout<<"\n\t\t 1 cout<<"\t\t 1 "<<matrix[0][1]<<" | "<<matrix[0][2]. cout<<"Column : ".N)\n". return 0. } matrix[i-1][j-1]='O'. cin>>j.[PROGRAMACION I – C++] IDSystems 2011 cout<<"Row : ". cout<<"\t\t cout<<"\t\t 2 "<<matrix[1][1]<<" | "<<matrix[1][2]. cin>>i. "<<matrix[0][0]<<" | ---|---|---\n". cout<<"\t\t cout<<"\t\t 3 "<<matrix[2][1]<<" | "<<matrix[2][2]. "<<matrix[2][0]<<" | CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 62 . //the play box playbox(). sum++. [PROGRAMACION I – C++] IDSystems 2011 Responde a lo siguiente: ¿Por que este juego implementa arreglos? ¿Que tipo de arreglos usa este programa? Este programa contiene errores de manera intencional. ¿Cuáles son? ¿Cuál es la solucion a los errores presentados? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 63 . i++) { printf( "\nNombre: " ).dni ). }. void main() { int i. //printf( "\nRFC: " ).[PROGRAMACION I – C++] IDSystems 2011 Ejercicio 30 – Estructuras Realiza el siguiente ejemplo de manejo de estructuras: prog34_estruc.persona[i]. } // Ahora hay que realizar el codigo para imprimir los resultados de la tabla } Y una vez terminado. &tabla. }. gets( tabla.persona[i]. long int dni. i< tabla. for (i= 0.cpp /* Prog34 . printf( "\nApellido: " ). gets( tabla. char apellido[20]. struct tablapersonas tabla.Ejemplo de estrucutras */ #include <stdio. completalo. struct datos persona[100]. struct tablapersonas { int numpersonas.apellido ). creando el codigo necesario para que imprima los resultados capturados que se almacenaron en la estructura de la tabla. scanf( "%d". printf( "Numero de personas: " ).h> struct datos { char nombre[20].persona[i].numpersonas.nombre ). &tabla.numpersonas ). //scanf( "%ld". Responde a lo que se indica: ¿Cuál fue el código que escribiste para completar el programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 64 . [PROGRAMACION I – C++] IDSystems 2011 ¿Qué es una estructura? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 65 . scanf("%d". salir=0. scanf("%d". DWORD count.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)./*Llamando la funcion para limpiar pantalla. GetConsoleScreenBufferInfo(hStdOut. scanf("%d". FillConsoleOutputCharacter(hStdOut.h> #include <windows.*/ //muestra el signo zodiacal #include <STdio.&d.\n\n"):printf("\nSu signo es ACUARIO. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 66 ."\n"). coord).cpp /*Este programa muestra el signo zodiacal de una persona."\n"). while(salir==0){ clrscr()."\n"). while ((m > 12) || (m < 1)){ printf("Introduzca su mes de nacimiento(DE 1 A 12): ").[PROGRAMACION I – C++] IDSystems 2011 Practica/Ejercicio 1 – Zodiaco Ahora teclea el siguiente programa que te dice el signo zodiacal de una persona.&d.\n\n")."\n"). } void main() { int salir.h> #include <math. csbi. Para ello el usuario debe introducir únicamente el día y el mes de nacimiento y el programa determinará inmediatamente el signo zodiacal de la persona. coord. esta basado en instrucciones condicionales IF…ELSE. CONSOLE_SCREEN_BUFFER_INFO csbi. &count).&m. COORD coord = {0.X * csbi. Este ya es un ejercicio resuelto en donde veras algunas instrucciones nuevas para construir una funcion que borre la pantalla. prog36_zodiaco. } if (m==1){ printf("Introduzca su dia de nacimiento: ").d = 0.Y. while ( (d>31) || (d != (d)) ){//!= esta sentencia es diferente de{ printf("Introduzca dia(ENTRE 1 Y 31): "). } (d<=20) ? printf("\nSu signo es CAPRICORNIO. SetConsoleCursorPosition(hStdOut. printf("Introduzca su mes de nacimiento: ").&m.*/ short unsigned int m. scanf("%d".saliryesno. &csbi). El programa ademas.dwSize.dwSize.h> void clrscr()/*Creando funcion para limpiar pantalla. ' '. 0}. "\n").\n\n"). scanf("%d"."\n"). scanf("%d". scanf("%d"."\n").[PROGRAMACION I – C++] IDSystems 2011 } else{ if(m==2){ printf("Introduzca su dia de nacimiento: "). } (d<=19) ? printf("\nSu signo es ACUARIO.&d.\n\n"):printf("\nSu signo es GEMINIS."\n"). scanf("%d". scanf("%d".\n\n"):printf("\nSu signo es PISCIS. } (d<=20) ? printf("\nSu signo es PISCIS.&d."\n").&d.\n\n"):printf("\nSu signo es TAURO. scanf("%d". } else{ if(m==3){ printf("Introduzca su dia de nacimiento: "). scanf("%d".\n\n"):printf("\nSu signo es ARIES. while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ")."\n")."\n"). } else{ if(m==6){ printf("Introduzca su dia de nacimiento: "). scanf("%d".\n\n")."\n")."\n"). scanf("%d". while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").&d.&d. while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). scanf("%d". } else{ if(m==4){ printf("Introduzca su dia de nacimiento: ").\n\n"). } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 67 . } (d<=21) ? printf("\nSu signo es TAURO.&d.&d. while ( (d>29) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 29): ").&d.&d. while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").\n\n"). } (d<=20) ? printf("\nSu signo es ARIES. } else{ if(m==5){ printf("Introduzca su dia de nacimiento: ")."\n").&d. &d. } (d<=23) ? printf("\nSu signo es LEO."\n").&d. scanf("%d".&d.\n\n"):printf("\nSu signo es VIRGO.&d.&d. scanf("%d".\n\n")."\n"). while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). scanf("%d".\n\n"):printf("\nSu signo es CANCER. scanf("%d". scanf("%d".\n\n"). while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ")."\n").\n\n"):printf("\nSu signo es LIBRA."\n"). } else{ if(m==9){ printf("Introduzca su dia de nacimiento: "). while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 68 ."\n"). } else{ if(m==8){ printf("Introduzca su dia de nacimiento: ")."\n").\n\n"):printf("\nSu signo es LEO. scanf("%d". scanf("%d". } (d<=23) ? printf("\nSu signo es CANCER. } else{ if(m==7){ printf("Introduzca su dia de nacimiento: "). while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). } (d<=23) ? printf("\nSu signo es LEO."\n").&d.&d.\n\n"). } else{ if(m==10){ printf("Introduzca su dia de nacimiento: ").\n\n").[PROGRAMACION I – C++] IDSystems 2011 (d<=21) ? printf("\nSu signo es GEMINIS. scanf("%d".&d. scanf("%d".\n\n"). } } } } } } } } } } } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). } (d<=21) ? printf("\nSu signo es SAGITARIO. scanf("%d"."\n").\n\n") : printf("\nSu signo es ESCORPION. while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").\n\n").\n\n"). } else{ if(m==12){ printf("Introduzca su dia de nacimiento: "). scanf("%d". while ( (d>31) || (d !=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").\n\n"):printf("\nSu signo es CAPRICORNIO.&saliryesno)."\n")."\n").&d.&d. } (d<=23) ? printf("\nSu signo es LIBRA. } else{ if(m==11){ printf("Introduzca su dia de nacimiento: "). } (d<=22) ? printf("\nSu signo es ESCORPION. scanf("%d"."\n").\n\n"):printf("\nSu signo es SAGITARIO.&d. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 69 ."\n").&d.[PROGRAMACION I – C++] IDSystems 2011 scanf("%d". Este tipo de programas se utilizan en el ambito escolar para saber las calificaciones de los alumnos. También el programa dará una pequeña pero valiosa recomendación al usuario respecto a su nivel de estudio y calidad como estudiante. while(salir==0){ clrscr(). El programa preguntará al usuario su nota y transformará ese resultado al equivalente en el Standard Grading System. DWORD count. GetConsoleScreenBufferInfo(hStdOut.dwSize. Primero se debe mostrar una tabla de equivalencias y luego preguntara la calificacion. float nota./*Llamando la funcion para limpiar pantalla.Y.X * csbi.h" #include <windows.saliryesno. Generalmente. printf("\n\t\t\tNOTAS\t\tEQUIVALENTE\n"). CONSOLE_SCREEN_BUFFER_INFO csbi. &count). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 70 . salir=0.*/ #include "stdio.[PROGRAMACION I – C++] IDSystems 2011 if(saliryesno==1){ salir=1.dwSize. csbi. 0}. FillConsoleOutputCharacter(hStdOut. para este tipo de programas se utilizan muchas condicionales. coord. } } } ACTIVIDAD Realiza el mismo programa pero usando sentencias SWITCH y una modificacion para hacer el algoritmo mas simple.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE).*/ int a. Practica/Ejercicio 2 – Califaciones Estilo USA Este ejercicio permite convertir el sistema de calificacion escolar de Mexico al sistema de Estados Unidos que se basa en letras de la A hasta la F. SetConsoleCursorPosition(hStdOut. &csbi).h> void clrscr()/*Creando funcion para limpiar pantalla. ' '. COORD coord = {0. El resultado sera el equivalente a la notacion americana. coord). prog37_califeu. } void main() { int salir.cpp /*El programa muestra primero una tabla de notas con sus equivalentes en el Standard Grading System o el sistema utilizado en los Estados Unidos que va desde la A hasta la F. printf("\t\t 8.¬a).8. if(nota<0 || nota>10){ /*a sigue valiendo cero y no se sale del ciclo*/ } else{ a=1. } else{/*nota mayor que cero pero CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 71 . scanf("%f".7.[PROGRAMACION I – C++] IDSystems 2011 printf("\t\t 9. } else{ if(nota>=8){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: B\n"). } else{ if(nota>=8. si continua asi usted es un genio. printf("\t\t 7.4\t\t C\n"). printf("\t\t 7.0 .0 .5 . } } if(nota>=9){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: A\n"). printf("\t\t 0.0\t\t F\n"). } else{ if(nota>=6){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: D\n").6. trate de no bajar.9\t\t C+\n"). su nivel es muy bueno.9\t\t B+\n").0 . printf("\t\t 8. printf("RECOMENDACIONES: Excelente.10.\n\n").7. while(a==0){ printf("\nIntroduzca su nota en Programacion II: "). } else{ if(nota>=7. printf("RECOMENDACIONES: Usted esta en la cuerda floja.4\t\t B\n"). printf("RECOMENDACIONES: Usted la va pasando.\n\n"). pero trate elevar su promedio. a=0.6.\n\n").0 .5){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: B+\n").\n\n"). un pequeno descuido \nlo pone en problemas.\n\n").0 . printf("RECOMENDACIONES: Muy bien. printf("\t\t 6. printf("RECOMENDACIONES: Bien.0\t\t A\n"). su nivel es impresionante.5){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: C+\n").8.5 . } else{ if(nota>=7){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: C\n").9\t\t D\n").\n\n"). printf("RECOMENDACIONES: Usted esta dentro del promedio. &saliryesno).h> void clrscr()/*Creando funcion para limpiar pantalla. cambiando las sentencias condicionales IF.[PROGRAMACION I – C++] IDSystems 2011 menor que 6. if(saliryesno==1){ salir=1.*/ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: F\n"). GetConsoleScreenBufferInfo(hStdOut. asi como la logica de construccion. COORD coord = {0. busque nuevas \ntecnicas de estudio. Tambien podrias usar un archivo externo para leer la informacion de equivalencias o la informacion de calificaciones de un alumno.. DWORD count. &csbi).h" #include <windows. scanf("%d". El ejercicio ya esta escrito por lo que deberas leer y entender los comentarios al principio.cpp /*Este programa muestra los pagos que recibirá un trabajador por cada hora laboral en base a la hora del día en que trabaja. Este tipo de programas se usa mucho en sistemas administrativos de nominas o recursos humanos prog38_sueldos. printf("RECOMENDACIONES: Su nota sinceramente es mala. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 72 . } } } } } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). El usuario deberá escribir el número de horas trabajadas en cada uno de los horarios y el programa determinará el total de dinero a recibir por el trabajador y también dirá si ganó más dinero por horas extras que por horas de oficina trabajadas o viceversa. } } } ACTIVIDAD Realiza el mismo programa. 0}.\n\n"). o si el trabajador ganó exáctamente lo mismo por horas extras que por horas de oficina.ELSE por SWITCH para hacer el programa mas corto. Practica/Ejercicio 3 – Sueldos a trabajador En este ejercicio deberas realizar un programa que calcule el pago que recibe un trabajador en base a las horas del dia en que trabaja.*/ #include "STdio.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). CONSOLE_SCREEN_BUFFER_INFO csbi. horas_doble.saliryesno.&horas_trab50). SetConsoleCursorPosition(hStdOut.pago.50)*pago).suma_extra. suma_extra=(pago_extra25+pago_extra50+pago_doble). salir=0. sueldo_total= suma_extra+pago_base. suma_base=pago*horas_trab.suma_base.horas_trab50. scanf("%d". printf("SUELDO BASE POR HORA TRABAJADA: "). while(salir==0){ clrscr(). pago_base=(horas_trab*pago). } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). scanf("%f". ' '.8:00 AM\t\tPAGO DOBLE\n\n").pago_doble. scanf("%d".dwSize. printf("\nNumero de horas trabajadas de 8:00 am a 4:00 pm: "). printf("EL SALARIO DEL TRABAJADOR POR HORAS DE OFICINA ES: $%. printf("Numero de horas trabajadas de 8:00 pm a 12:00 am: ")./*Llamando la funcion para limpiar pantalla. scanf("%d".&horas_trab).0)*pago).dwSize. } else{/*pago_base es mayor que suma_extra*/ printf("EL TRABAJADOR GANO MAS DINERO POR HORAS DE OFICINA QUE POR HORAS EXTRA\n\n"). } void main() { int salir.12:00 AM\t 50 POR CIENTO EXTRA\n").X * csbi. coord.8:00 PM\t 25 POR CIENTO EXTRA\n").sueldo _total. int horas_trab.[PROGRAMACION I – C++] IDSystems 2011 FillConsoleOutputCharacter(hStdOut.suma_extra). if(saliryesno==1){ CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 73 .sueldo_total).*/ printf("\n\t\tHORARIO\t\t\t PAGO \n\n"). printf("EL SALARIO DEL TRABAJADOR POR HORAS EXTRAS ES: $%. csbi. pago_extra25=(horas_trab25*(1.2f\n".Y.4:00 PM\t\tPAGO BASE\n"). pago_extra50=(horas_trab50*(1. float pago_base.&saliryesno). scanf("%d".suma_base). scanf("%d". printf("Numero de horas trabajadas de 4:00 pm a 8:00 pm: "). printf("Numero de horas trabajadas de 12:00 am a 8:00am: ").2f\n\n". printf("\nEL PAGO TOTAL QUE RECIBIRA EL TRABAJADOR ES: $%. printf("\t 12:00 AM .pago_extra. pago_doble=(horas_doble*(2. } else{ if(suma_extra==suma_base){ printf("EL TRABAJADOR GANO EL MISMO SALARIO POR HORAS EXTRAS QUE POR HORAS DE OFICINA\n\n").&horas_doble). printf("\t 8:00 PM .2f\n".&horas_trab25).horas_trab25.pago_extra50. &count). printf("\t 8:00 AM .25)*pago).pago_extra25. printf("\t 4:00 PM . if (suma_extra>suma_base){ printf("\nEL TRABAJADOR GANO MAS DINERO POR HORAS EXTRAS QUE POR HORAS DE OFICINA\n\n"). coord).&pago). de manera que el programa mostrará un nuevo valor a pagar luego de haber aplicado el descuento.h> #include <stdlib.dwSize. ' '. no hay descuento.*/ #include <stdio. CONSOLE_SCREEN_BUFFER_INFO csbi. GetConsoleScreenBufferInfo(hStdOut. De tal forma.h> #include <windows. sí se aplicará un descuento determinado según la tabla que aparecerá. SetConsoleCursorPosition(hStdOut. COORD coord = {0. el programa genera de forma aleatoria un número entero del cero al cinco. condicionales.cpp /*Este programa pide primeramente la cantidad total de compras de una persona.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). que de manera aleatoria le tocara una bola de un color y dicho color tendra asociado un descuento para los productos que compre.h> void clrscr()/*Creando funcion para limpiar pantalla.Y.[PROGRAMACION I – C++] IDSystems 2011 salir=1. el programa dirá que el cliente no aplica a la promoción.X * csbi. DWORD count. coord).dwSize. Este tipo de programa es util en el area de ventas de un negocio. &count). coord. Si la cantidad es inferior a $100. Es un interesante ejemplo para ver nuevamente la funcion aleatoria.00. } } } ACTIVIDAD: Realiza el diagrama de flujo de este programa Practica/Ejercicio 4 – Promocion de Ventas El siguiente programa hara una promocion de ventas a un cliente en una tienda. Pero si la persona ingresa una cantidad en compras igual o superior a $100.h> #include <time. y ese descuento se aplicará sobre el total de la compra que introdujo inicialmente el usuario. &csbi). prog39_promocion. csbi. 0}. pero si es uno de los otros cuatro colores. FillConsoleOutputCharacter(hStdOut. Si la bola aleatoria es color blanco.00. } void main() { CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 74 . manejo de tablas. Cada número corresponderá a un color diferente de cinco colores de bolas que hay para determinar el descuento que el cliente recibirá como premio. ncargo. ncargo. printf("SU NUEVO TOTAL A PAGAR ES: $%. ncargo=gasto-(gasto*0. scanf("%f". srand(time(NULL))./*Llamando la funcion para limpiar pantalla. printf("\t\tBOLA AMARILLA\t\t50 POR CIENTO\n\n"). } else{ EL TOTAL A PAGAR ES DE CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 75 .*/ int random.1). printf("SU NUEVO TOTAL A PAGAR ES: $%.00 Y POR TANTO PARTICIPA EN LA PROMOCION.&gasto. NO HA GANADO NINGUN DESCUENTO.\n"). salir=0. while(salir==0){ clrscr().2f\n\n". } else{ if(random==1){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA ROJA\n\n"). printf("\n\t\t COLOR\t\t DESCUENTO\n\n").gasto).saliryesno."\n\n").&gasto. printf("\t\tBOLA VERDE\t\t25 POR CIENTO\n"). ncargo=gasto-(gasto*0.[PROGRAMACION I – C++] IDSystems 2011 int salir./*Inicializa el generador random*/ random=rand()%5."\n")."\n\n"). printf("\t\tBOLA ROJA\t\t10 POR CIENTO\n")."\n"). printf("FELIDADES. printf("LO SENTIMOS. printf("\t\tBOLA BLANCA\t\t NO TIENE\n"). scanf("%f". HA GANADO UN 10 POR CIENTO DE DESCUENTO \n\n")./*Genera los números random*/ if(random==0){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA BLANCA\n\n")."). printf("\nINTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA: "). while (gasto < 0) { printf("NO EXISTEN CARGOS NEGATIVOS INTRODUZCA NUEVO GASTO: "). } else{ if(random==2){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AZUL\n\n").2f\n\n".2f\n\n".2). } if (gasto >= 100) { printf("\nSU GASTO IGUALA O SUPERA LOS $100. ncargo. printf(" $%. HA GANADO UN 20 POR CIENTO DE DESCUENTO \n\n"). printf("FELIDADES. float gasto. printf("\t\tBOLA AZUL\t\t20 POR CIENTO\n"). printf("SU NUEVO TOTAL A PAGAR ES: $%. } } } } } } else{/*El gasto es menor a $100. printf("SU NUEVO TOTAL A PAGAR ES: $%. } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). ncargo=gasto-(gasto*0.2f\n\n".00*/ printf("\n\nLO SENTIMOS.\n\n"). SU GASTO ES MENOR A CIEN DOLARES Y NO APLICA A LA PROMOCION. ncargo. ncargo=gasto-(gasto*0. HA GANADO UN 50 POR CIENTO DE DESCUENTO \n\n"). } } } ACTIVIDAD Realiza el mismo programa pero usando las sentencias SWITCH donde se requiera CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 76 ."\n\n")."\n\n").2f\n\n". printf("FELIDADES. } else{ if(random==4){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AMARILLA\n\n").25). HA GANADO UN 25 POR CIENTO DE DESCUENTO \n\n"). ncargo.5).[PROGRAMACION I – C++] IDSystems 2011 if(random==3){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA VERDE\n\n"). if(saliryesno==1){ salir=1. printf("FELIDADES. scanf("%d".&saliryesno). Y.h" #include <windows.&cod_pel).saliryesno. printf("\tESTRENOS\t$3. salir=0. while(a==0){ if(cod_pel<1 || cod_pel>4){ printf("INTRODUZCA EL CODIGO DE LA CATEGORIA DE LA PELICULA (ENTRE 1 Y 4): "). y así se muestra al final el total a pagar.fav. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 77 .dwSize.sest. a=0. ' '. scanf("%d". printf("\tSUPER ESTRENOS\t$4. DWORD count. &csbi). printf("\tFAVORITOS\t$2.00\n").a. printf("\tNUEVOS\t\t$3.50\n\n"). GetConsoleScreenBufferInfo(hStdOut. Este mostrara un listado de peliculas y luego se pedira el numero de dias de atraso de una pelicula. float dias./*Llamando la funcion para limpiar pantalla. printf("\t CATEGORIA\tPRECIO\t CODIGO\tRECARGO/DIA DE ATRASO\n\n").cpp /*Este programa muestra primero el listado de categoria de peliculas y pide al usuario que introduzca el codigo de la categoria de la pelicula y posterior a ello pide que el usuario introduzca el número de días de atraso en la devolución de la película.[PROGRAMACION I – C++] IDSystems 2011 Practica/Ejercicio 5 – Retraso en renta peliculas La siguiente practica es para elaborar un programa que se usaria en un videoclub.50\t\t1\t\t$0. printf("\n"). COORD coord = {0.nue.50\t\t3\t\t$1.dwSize. prog40_peliculas.*/ #include "STdio.50\n").*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). coord. El programa calculara el monto a pagar. } void main() { int salir. SetConsoleCursorPosition(hStdOut. while(salir==0){ clrscr(). según el precio de la pelicula y la tabla de recargos.*/ int cod_pel. CONSOLE_SCREEN_BUFFER_INFO csbi. Lo que hace el programa es sumar el precio de la película más el valor del recargo multiplicado por el número de días de atraso.X * csbi.75\n"). printf("INTRODUZCA EL CODIGO DE LA CATEGORIA DE LA PELICULA: "). coord).00\t\t2\t\t$0. &count). FillConsoleOutputCharacter(hStdOut.00\t\t4\t\t$1. csbi.est. 0}.h> void clrscr()/*Creando funcion para limpiar pantalla. printf("\nEL TOTAL A PAGAR ES: $%. case 2: nue=((dias*0.2f\n\n". a=0.nue).fav).5).5)+2. } else{ a=1. } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ").5).&dias).&cod_pel).00)+3. scanf("%d". } } } ACTIVIDAD Elimina el codigo que no sea necesario y que puedas sustituir por otras funciones o crear las propias CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 78 . break. printf("\nEL TOTAL A PAGAR ES: $%. while(a==0){ if(dias<0){ printf("INTRODUZCA EL NUMERO DE DIAS DE ATRASO EN LA DEVOLUCION: ").[PROGRAMACION I – C++] IDSystems 2011 scanf("%d". scanf("%f".sest). } } switch(cod_pel) { case 1: fav=((dias*0.2f\n\n". } else{ a=1.&dias).0).2f dolares\n\n". } } printf("INTRODUZCA EL NUMERO DE DIAS DE ATRASO EN LA DEVOLUCION: "). printf("\nEL TOTAL A PAGAR ES: $%. scanf("%f". case 3: est= ((dias*1. break.est).2f\n\n".&saliryesno). break. switch(saliryesno){ case 1: salir=1. break. printf("\nEL TOTAL A PAGAR ES: $%. case 4: sest=((dias*1.5)+4.75)+3). //Generar numeros aleatorios CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 79 . EL PROGRAMA DEBE INDICAR EN QUE TIRADA\n"). contador=0. SetConsoleTextAttribute(hStdOutput. int saliryesno. salir=0. int a. hStdOutput=INVALID_HANDLE_VALUE. printf("SALGA UN SIETE DOS VECES CONSECUTIVAS. printf("\n\t\t\t EJERCICIO 41 (DADOS)\n"). FONDO|VERDE).cpp /* DISELE UN PROGRAMA QUE SIMULE EL LANZAMIENTO DE DOS DADOS HASTA QUE SALGA UN SIETE DOS VECES CONSECUTIVAS EL PROGRAMA DEBE INDICAR EN QUE TIRADA OCURRIO ESE RESULTADO Este programa es posible gracias a la utilizacion del generador de numeros aleatorios para simular el lanzamiento de dos dados El programa indica en que tirada se da el evento de los dos dados que caigan 7 consecutivamente.\n\n").h> #include <time. Se añade tambien un contador que es el que dice finalmente a las cuantas tiradas se dio el eento de dos sietes consecutivamente*/ #include <stdio. //Inicializar generador aleatorio while(i==0){ lanzamiento=1+rand()%12. el programa se sale del ciclo o de lo contrario continua.FONDO|AMARILLO). Si esto es asi. Para lograr esto se da la condicion ("if") que cada vez que caiga un 7 que vaya a evaluar si la siguiente tirada da otro siete. i=0. printf("\nPROBLEMA: DISEÑE UN PROGRAMA QUE SIMULE UN LANZAMIENTO DE DOS DADOS HASTA QUE\n"). srand(time(NULL)). while(salir==0) { system("cls"). printf("OCURRIO ESE RESULTADO.h> #include <windows. printf("\t\t\t =====================\n").h> #define FONDO (0) #define VERDE (10) #define AMARILLO (14) void main() { HANDLE hStdInput=INVALID_HANDLE_VALUE. hStdOutput=GetStdHandle(STD_OUTPUT_HANDLE). float salir. Tambien repasamos las sentencias IF…ELSE prog41_dados. SetConsoleTextAttribute(hStdOutput.[PROGRAMACION I – C++] IDSystems 2011 Practica/Ejercicio 6 – Dados Otra practica de programa para ver la funcion aleatoria. lanzamiento. hStdInput=GetStdHandle(STD_INPUT_HANDLE). contador=contador+1.[PROGRAMACION I – C++] IDSystems 2011 if (lanzamiento==7){ lanzamiento=1+rand()%12. i=1. printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). } printf("EL SIETE SALIO DOS VECES CONSECUTIVAS EN LA TIRADA NUMERO %d. sea una moneda (recuerda que tiene 2 lados). } } contador=contador+1. &saliryesno).contador).\n\n". scanf("%d". CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 80 . SetConsoleTextAttribute(hStdOutput. salir=1. if (lanzamiento==7){ contador=contador+1. if (saliryesno==1){ printf("\n\a"). } } //Fin del while } ACTIVIDAD Trata de modificar el programa para que en lugar de un dado. FONDO|AMARILLO). [PROGRAMACION I – C++] IDSystems 2011 PARTE IV PRACTICAS PARA DESARROLLAR CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 81 . se le pide que introduzca el valor de la unidad que selecciono y entonces el programa le dice el equivalente de ese valor en todas las otras unidades de medida. pulgadas. y la distancia mayor o igual a 100 kilometros. El programa dira la suma total de dinero que tiene. Despues. PRACTICA 9 – Numeros ordenados Crea un programa donde el usuario introduzca tres numeros enteros y se orden de manera ascendete y a continuacion en orden descendente. PRACTICA 10 – Boletos Desarrolla un programa que nos diga el precio de un boleto de ida y vuelta en autobus. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 82 . conociendo la distancia a recorrer y sabiendo que si el numero de dias de estancia es mayor o igual a 7. Finalmente el programa dara al usuario la posibiliad de transformar la cantidad de la moneda local a dolares o euros según decida el usuario. el boleto tiene un descuento del 50% PRACTICA 11 – Conversiones metricas Crea un programa que muestre un listado de unidades de medida y que pida al usuario indicar con cual desea trabajar. pies y yardas.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 7 – Contando dinero Desarrolla un programa que ira preguntando por la cantidad de billetes y monedas de cada valor que tiene el usuario y luego determinara la suma de dinero que hay en monedas y la suma que hay en billetes. La transformacion a equivalencia se hace entre estas cuatro unidades: metros. PRACTICA 8 – Numeros Desarrolla un programa donde el usuario introduzca tres numeros enteros y luego nos indique cual de ellos es el central o el de en medio. [PROGRAMACION I – C++] IDSystems 2011 PRACTICAS DE VARIABLES.48 centimetros. pueden ser raices reales o imaginarias.54 centimetros CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 83 . ASIGNACIONES. conociendo su altura y su base. Los factores de conversion son los siguientes: 1 yarda = 3 pies 1 pie = 12 pulgadas 1 metro = 100 centimetros 1 pulgada = 2. X1 = (-B + SQR(B^2 – 4*A*C)) / (2*A) y X2 = (-B – SQR(B^2 – 4*A*C)) / (2*A). PRACTICA 13 – Pies Diseñe un programa para convertir una longitud dada en centimetros a pies. PRACTICA 17 – Prestamo Se solicita un prestamo por C pesos durante N meses a una tasa de interes mensual L. Considere las siguientes formulas: area = base * altura. Al final de los N meses la cantidad adeudada es C * (1 +I) ^N. pulgadas. Hacer un programa al cual se le dan los valores de C. Para este programa asuma que las raices son siempre reales. OPERADORES PRACTICA 12 – Rectangulo Haga un programa que halle el area y el perimetro de un rectangulo. y que calcule y muestre por pantalla las raices X1 y X2. Las raices de una ecuacion de segundo orden. Considere que: 1 pie = 30. PRACTICA 14 – Triangulo Calcular el area de un triangulo. N e L. pies y yardas. perimetro = 2 * (base + altura). y que imprima esa medida expresada en centimetros. PRACTICA 15 – Raices Realizar un programa para ingresarle los coeficientes A. PRACTICA 16 – Tiempos Diseñe un programa para sumar dos marcas de tiempo dadas en horas. PRACTICA 18 – Metros Hacer un programa para ingresarle una medida en metros. minutos y segundos. y calcule e imprima la suma adeudada. B y C de una ecuacion de segundo grado. TIPOS DE DATOS. PRACTICA 25 – Peso Dado el peso de una persona en libras. Utilizar la formula: Celsius = (5/9)*(Fahrenheit-32). PRACTICA 27 – Celsius Haga un programa para convertir una temperatura en grados Fahrenheit a grados Celsius. El uso del operador “*” y “\” esta prohibido. PRACTICA 21 – Circulo Escribe un programa en C++ que calcule el area y perimetro de un circulo PRACTICA 22 – Maquina reversadora de numeros Haz un programa que reciba un numero de 5 digitos (suponga que lo ingresan bien) y muestre el numero en forma inversa. A marta le dejo la mitad de lo que le dejo a Jose. Preparar un programa para darle la suma a repartir e imprima cuanto le toco a cada uno. PRACTICA 23 – Nibles Haga un programa que sume los nibles (4 bits) mas significativo y menos significativo de una variable de un byte llamada dato y escriba el resultado en una variable de un byte llamada resul. PRACTICA 20 – Promedio Haga un programa para calcular el promedio de cinco calificaciones.453592Kg. Jose y Marta. La formula para hacer la conversion es: Fahrenheit = (9 * Celsius) / 5 + 32.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 19 – Millonario Un millonario excentrico tenia tres hijos: Carlos. calcule su peso en kilogramos. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 84 . NOTA: 1 libra es aproximadamente igual a 0. A Carlos le dejo 1/3 de su fortuna. PRACTICA 26 – Fahrenheit Haga un programa para convertir una temperatura en grados Centigrados a Fahrenheit. Al morir dejo el siguiente legado: A jose le dejo 4/3 de lo que le dejo Carlos. PRACTICA 24 – Multiplicacion por 300 Haga un programa que lea un entero y lo multiplique por 300. [PROGRAMACION I – C++] IDSystems 2011 PRACTICA 28 – Determinante Dada una matriz de tres filas por tres columnas: | A1 A2 A3 | | A4 A5 A6 | | A7 A8 A9 | Puede obtenerse su determinante mediante la formula: D = A1*A5*A9 + A2*A6*A7 + A3*A4*A8 – A3*A5*A7 – A2*A4*A9 – A1*A6*A8 Preparar un programa que permita ingresar por teclado los elementos de la matriz. Escriba un programa que.) Tomando después la suma de las multiplicaciones y calculando el modulo 11 de esta suma. El número del artículo. El dígito de control. PRACTICA 30 . PRACTICA 29 – Don Manolo El almacen “Don Manolo”. o ISBN (pronunciado a veces como "is-bin"). necesita un programa que ayude a calcular la forma de dar el cambio a sus clientes con el minimo de billetes y monedas posible. con 10 representado por el carácter "X". CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 85 . El código del país o lengua de origen 2. y está dividido en cuatro partes: 1. y 4. y la secuencia completa es ISBN 0-306-40615-2. a partir de los dígitos de un ISBN. El número tiene siempre 10 dígitos de longitud. El editor 3. calcule el dígito de control. Estas partes tienen distintas longitudes y generalmente están separadas por guiones. y que calcule y muestre por pantalla el determinante. Por ejemplo. es un identificador único para libros.ISBN El International Standard Book Number (en español Número Internacional Estándar del Libro). etc. el siguiente por 2. El dígito de control de un ISBN se puede calcular multiplicando cada dígito del ISBN por el lugar que ocupa dicho dígito en la secuencia numérica (multiplicando el primero por la izquierda por 1. para calcular el dígito de control de un ISBN cuyos nueve primeros dígitos son 0-306-40615: 1x0 + 2x3 + 3x0 + 4x6 + 5x4 + 6x0 + 7x6 + 8x1 + 9x5 = 0 + 6 + 0 + 24 + 20 + 0 + 42 + 8 + 45 = 145 = 145%11 = 2 Por lo que el dígito de control es 2. Entonces el área de un triángulo se puede calcular utilizando la siguiente formula: área = SQR( s(s-a)(s-b)(s-c) ).00 Find how many miles could the saleperson drive (in average) with a galon. Los números en posiciones pares se acumulan. here some sample data: start: 68723 end: 71289 Mon: 15.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 31 – Odometer A sales person leaves his home every Monday and returns every Friday. Los check digits se calculan buscando el residuo de lo acumulado de números en posiciones pares entre el acumulado de números en posiciones impares. 2. PRACTICA 34 – Validacion de Tarjetas de credito Todas las tarjetas de crédito tienen un sistema de verificación de números. Cada número en posicion impares se multiplica por 2 y se acumula. Given the starting odometer reading(that is. PRACTICA 33 – Distancia Euclidiana Haga un programa que pregunte por las coordenadas de dos puntos en el plano y calcule la distancia (euclidiana) entre ellos. b y c son las longitudes de los lados de un triángulo. Cada número tiene un significado. La mayoría de las veces los primeros números agrupados (que suelen ser de cuatro) significan el tipo de tarjeta.95 Thru: 20. y1) y (x2. Each day on the road. Construya un programa que dada la siguiente fórmula valide los números de tarjeta de crédito. PRACTICA 32 – Triangulo II Suponga que a. La distancia entre dos puntos (x1. He travels by company car. Los demás números significan la oficina del representante de servicio y los números que identifican al cliente. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 86 . y2) esta dada por la formula d=SQR( (x2-x1)^2 + (y2-y1)^2 ).75 Tues: 16. 3. 1.65 Fri: 30. Donde s es el semi-perímetro (a+b+c)/2. A estos se le conocen como los check digits. Esto se hace para verificar la autenticidad del número de la tarjeta.30 Wed: 10. the odometer reading before he leaves on monday) and the ending odometer reading (the odometer reading after he returns home on friday). Los dos últimos números se utilizan para verificar si el número de tarjeta de crédito es correcto. the salesperson records the amount of gasoline put in the car. + . PRACTICAS DE ESTRUCTURAS DE CONTROL PRACTICA 36 – Max Calcular el máximo de dos números.= ------b d bd Haga un programa que calcule la suma entre dos fracciones.77 Pesos Colombianos [Nota] Haga uso del comando switch para desplegar el menú CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 87 . PRACTICA 37 – Positivo Negativo Escribir un programa que indique si un número introducido por teclado es positivo.23 Pesos Colombianos 1 Libra Esterlina = 3.50 Pesos Colombianos 1 Yen Japones = 19. igual a cero o negativo. PRACITCA 38 – Par Impar Escribir un programa que indique si un número introducido por teclado es par o impar.948.253. Las divisas que puede manejar su programa son: 1 Euro = 2.00 Pesos Colombianos 1 Dólar Australiano = 734.679.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 35 – Suma de fracciones Para sumar dos números racionales se utiliza la siguiente fórmula: a c ad + bc .88 Pesos Colombianos 1 Dólar Americano = 2.17 Pesos Colombianos 1 Peso Chileno = 4.921. PRACTICA 39 – Convertidor de divisas Hacer un programa que me permita convertir una cierta cantidad de Pesos Colombiano en otras divisas.18 Pesos Colombianos 1 Dólar Canadiense = 1. [Nota] Por simplicidad. d) si es par. de acuerdo con las siguientes reglas: 1. 3. PRACTICA 42 – Diferencia Ingresar tres números y hallar la diferencia del mayor menos el menor. Se considera que es de noche desde las 19:01 horas hasta las 5:59 horas PRACTICA 44 . f) si está comprendido entre 32 y 127 (ambos inclusive) imprimir el carácter cuyo código ASCII representa.Control Escriba un programa que lea un número x del teclado y lleve a cabo las siguientes operaciones: a) si es positivo. "Buenas tardes" o "Buenas noches". c) si es cuadrado perfecto (tiene raíz cuadrada exacta). Su programa debe mostrar que el promedio es A si PN es mayor a 3. imprimir el mensaje "Sólo tiene un dígito". y muestre su promedio.5 o F de lo contrario. Se considera que es de día desde las 6:00 horas hasta las 11:59 horas.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 40 – Grado Promedio Hacer un programa que lea tres grados en letras. asuma que el programa solo acepta letras mayúsculas. 1 para D y 0 para F. PRACTICA 43 – Saludo Escriba un programa que lea un instante de tiempo expresado en horas y minutos y escriba como respuesta uno de los mensajes "Buenos das". B si es mayor a 2. 2 para C. Se considera que es por la tarde desde las 12:00 horas hasta las 19:00 horas. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 88 . PRACTICA 41 – Bisiesto Haga un programa que determine si un año es bisiesto: si es divisible por 4. b) si es distinto de cero.5.5. calcular e imprimir su raíz cuadrada.5. imprimir el mensaje "Es un cuadrado perfecto". El programa deberá utilizar una escala de 4 puntos para calcular el promedio numérico (PN): 4 para A. calcular e imprimir su cociente entre 2 (x/2). 3 para B. pero no es divisible por 100 o si es divisible por 400. calcular e imprimir su inverso (1/x). e) si es positivo y menor que 10. 2. C si es mayor a 1. D si es mayor a 0. Considere que para formar un triángulo se requiere que: "el lado mayor sea menor que la suma de los otros dos lados". PRACTICA 49 – Super Triangulo Diseñe un programa que lea tres longitudes y determine si forman o no un triángulo. donde n es un número entero positivo. PRACTICA 47 – Super Raices Partiendo del enunciado del problema [Raíces] arriba mencionado. PRACTICA 51 – Factorial El factorial de un número es el producto de todos los números entre 1 y ese número. PRACTICAS DE ESTRUCTURAS REPETITIVAS PRACTICA 50 – Countdown Haga un programa que haga un conteo regresivo desde n hasta 1. Finalmente. introducido por teclado. el factorial de 4 es 4x3x2x1 = 24. Donde 1 es Domingo. 2 Lunes y así sucesivamente. Primero calcule el discriminate B^2 . si el discriminante es 0. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 89 . las dos raíces son reales y distintas y se caculan de la misma manera que en el programa [Raíces]. isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). X1_parte_imaginaria = SQR(-discriminante)/(2*A) y X2_parte_imaginaria = -SQR(-discriminante)/(2*A). PRACTICA 46 – ASCII Lea un carácter y deduzca si es vocal. las dos raíces son complejas conjugadas y valen X1_parte_real=X2_parte_real=-B / (2*A). Haga un programa para calcular el factorial de un número n.0. consonante. PRACTICA 48 – Dia semana Se desea escribir el nombre del día de la semana en función de un número de día.4*A*C. Si es un triángulo determine de que tipo de triángulo se trata entre: equilátero (si tiene tres lados iguales).0.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 45 – Multiplo Ingresar un número n y verificar si es múltiplo de 3 o 5. Por ejemplo. tener en cuenta la posiblidad de tener raíces negativas. dígito o caracter especial. si el discriminante es < 0. las dos raices son reales e iguales y valen X1 = X2 = -B / (2*A). si el discriminante es > 0. hay que comprobar que el número no sea divisible por ningún entero entre 2 y la raíz cuadrada del propio número. PRACTICA 60 – Binario The following program reads integers and prints them in binary by division. PRACTICA 56 – Mayor Menor Leer una serie de números hasta que el usuario ingrese el valor sentinela de -99 y escriba el número mayor y el número menor. Actualmente hay 40000 profesionales del área. Correct the errors. PRACTICA 54 – Ingenieros 2050 Estime la población de Ingenieros en sistemas en Mexico para el año 2050. La salida debe ser un rombo dibujado con el carácter dado y de anchura máxima dada por el entero leido. Find them.[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 52 – Serie 1 Elabore un programa que calcule e imprima la suma de 1 + 1/2 + 1/3+ 1/4 + 1/5 + 1/6 + . + 1/50. Hacer un programa que detecte si un número es primo o no. But there are two errors in the program. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 90 . Nota: Para saber si un número n es primo. using the shift and "and" operators. . los números primos son cantidades enteras positivas que únicamente pueden dividirse por uno o por sí mismos. PRACTICA 59 – Rombo Escribir un programa que lea un entero y un carácter. considerando un crecimiento anual de 11%. PRACTICA 58 – Decimal a Hexadecimal This program reads integers and prints them in hexadecimal. PRACTICA 57 – Cuadrado Has un programa en C++ que dibuje un cuadrado de n asteriscos. . PRACTICA 55 – Super Primos Haga un programa que imprima todos los números primos entre 1 y n. There are some errors. PRACTICA 53 – Primo Por si no lo recurda. se obtiene el primer cubo. Si elegimos un número entre el 1 y el 4 nos pedirá dos números. "Sumando el primer numero impar. Sumando los tres siguientes impares se obtiene el tercer cubo.Dividir 0.Restar 3. y finalice cuando el usuario indique que desea ver la tabla del cero.Terminar ============================== Ingrese su selección > __ El programa deberá verificar que introducimos un número válido (del 0 al 4).[PROGRAMACION I – C++] IDSystems 2011 PRACTICA 61 – Tablas de Multiplicar Implemente un programa que muestre por pantalla las tablas de multiplicar que el usuario quiera. El juego termina cuando el jugador adivina el número o decide terminar de jugar (por ejemplo.." Ejemplo: 1^3 = 1 = 1 2^3 = 3 + 5 = 8 3^3 = 7 + 9 + 11 = 27 4^3 = 13 + 15 + 17 + 19 = 64 5^3 = 21 + 23 + 25 + 27 + 29 = 125 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 91 . Nos mostrara el menú siguiente: ====== MENU CALCULADORA ====== 1.. Si introducimos un número erróneo nos avisará y volver a mostrar el menú.Sumar 2.Multiplicar 4.. etc. PRACTICA 63 – Calculadora Hacer un programa que simule una calculadora.. PRACTICA 62 – Divisores Implemente un programa que calcule los divisores de un número entero. PRACTICA 65 – Nicomaco Considere la siguiente propiedad descubierta por Nicómaco de Gerasa.. El programa irá dando pistas al jugador indicándole si el número introducido por el jugador es menor o mayor que el número que tiene que adivinar. mostrará el resultado dependiendo de nuestra elección y volverá a mostrar el menú. Si introducimos un 0 el programa terminar. PRACTICA 64 – Adivinar Diseñe un programa para jugar a adivinar un número entre 0 y 100. escribiendo un número negativo). Sumando los dos siguientes impares se obtiene el segundo cubo. la sumatoria de los números pares.[PROGRAMACION I – C++] IDSystems 2011 Desarrolle un programa que escriba los n primeros cubos utilizando esta propiedad. se debe calcular el total de número pares. PRACTICAS CON VECTORES PRACTICA 71 – Minimo Hacer un programa que: a) Lea una secuencia de 5 valores numéricos reales y los almacene en una vector. así como la posición que ocupa en el vector. la sumatoria de los cuadrados de los números pares y la sumatoria de los cuadrados de los números impares. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 92 . PRACTICA 67 – Sumatorias Se tiene una entrada de dígitos entre 0 y 9. PRACTICA 69 – Power Write a program to calculate the power of one number raised to another. PRACTICA 66 – Perfectos Los números perfectos son aquellos enteros que son iguales a la suma de sus divisores sin incluir a él mismo. Dada la entrada. precedida por el número total de dígitos a leer. b) Muestre por pantalla cuál es el valor mínimo. PRACTICA 68 – Guess my age Write a program to play "Guess my age:". Elabore un programa que calcule todos los números perfectos menores que un número n dado. PRACTICA 70 – Amigos Dos números son amigos si cada una de ellos es igual a la suma de los divisores del otro. el promedio de todos los números. por ejemplo 224 y 284 son amigos ya que: 284 : 1 + 2 + 4 + 71 + 142 = 220 220 : 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284 Elabore un programa que imprima todas las parejas de números amigos menores o iguales que un numero n ingresado por teclado. El valor de n debe ser un valor leido por teclado. el total de números impares. la sumatoria de los números impares. Ejemplo: 6 es un número perfecto porque 1 + 2 + 3 = 6. 4^4. . 5^5..2 ··--.. 3^3. Leyenda: — : raya (señal larga) · : punto (señal corta) Numeros 0 ----.----.----.----.. .--. Las frecuencias deben ser mostradas en forma de histograma...4 ····5 ····· 6 -···· 7 --··· 8 ---·· 9 ----· Cada número en morse se representará en C++ por una cadena de 5 caracteres compuesta de puntos y rayas. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 93 ..1 ·---. según la tabla anterior.--- PRACTICA 74 – Serie Escriba un programa en C++ que calcule e imprima el promedio y la varianza de los elementos un arreglo de 10 elementos. Su programa deberá colocar las 20 respuestas en un arreglo de tipo int y determinar la frecuencia de cada puntaje. #morse Entre n: 1992 . 2^2.---. Un puntaje de 1 significa que la calidad es "pésima" y un puntaje de 10 significa que la calidad es "excelente". Un ejemplo de lo que debe hacer el programa es: #morses Entre n: 2005 . ..[PROGRAMACION I – C++] IDSystems 2011 En el caso de aparecer repetido el valor mínimo se mostrara el menor índice de los valores mínimos PRACTICA 72 – Cafeteria Veinte estudiantes de Ingeniería de Sistemas se les pidió que valoraran de 1 a 10 la calidad de los almuerzos en la cafetería de la universidad... ----. donde cada uno de ellos se corresponde con los elementos de la serie 1.3 ···-. PRACTICA 73 – Traductor de Codigo Morse El objetivo de este programa consiste en realizar un traductor de número a morse.