P. 1
Cuadernos de Ejercicios C

Cuadernos de Ejercicios C

|Views: 7.836|Likes:
Publicado poridsystems

Cuaderno de Ejercicios y Practicas para C++ y que los estudiantes realicen

Cuaderno de Ejercicios y Practicas para C++ y que los estudiantes realicen

More info:

Published by: idsystems on Feb 08, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

09/17/2013

pdf

Sections

  • PARTE I
  • INSTRUCCIONES
  • Ejercicio 1 – Hola Mundo
  • Ejercicio 2 – Tipos de datos
  • Ejercicio 3 – Mezcla de tipos de datos
  • Ejercicio 4 – Simplificando comandos y datos
  • Ejercicio 5 – Variables de preprocesador
  • Ejercicio 6 – Salida por pantalla
  • Ejercicio 7 – Entrada y salida por pantalla
  • Ejercicio 8 – Operadores y tipos de datos
  • Ejercicio 9 – Operaciones simples
  • Ejercicio 10 - Concatenacion
  • Ejercicio 11 – If…Else
  • Ejercicio 12 – Operaciones condicionales
  • Ejercicio 13 – IF…ELSE anidados
  • Ejercicio 14 – Salida a un archivo externo
  • Ejercicio 15 - Switch
  • Ejercicio 16 – Area de poligonos con Switch
  • Ejercicio 17 – Ciclo For
  • Ejercicio 18 – Ciclo while
  • Ejercicio 19 – Ciclos anidados
  • Ejercicio 20 – Ciclo While
  • PRACTICA 1
  • Ejercicio 21 - Juego del Granjero
  • Ejercicio 22 - Juegos
  • Ejercicio 22a – Juego de Adivinanzas
  • Ejercicio 22b - Tragamonedas
  • Ejercicio 22c – Pseudovirus
  • Ejercicio 23 - Juego del Ahorcado
  • Ejercicio 24 - Juego Las Torres de Hanoi
  • Ejercicio 25 – Arreglos
  • Ejercicio 26
  • Ejercicio 27 – Cadenas
  • Ejercicio 28 - Arreglos y cadenas
  • Ejercicio 29 - Juego del Gato (Tic-Tac-Toe)
  • Ejercicio 30 – Estructuras
  • Practica/Ejercicio 1 – Zodiaco
  • Practica/Ejercicio 2 – Califaciones Estilo USA
  • Practica/Ejercicio 3 – Sueldos a trabajador
  • Practica/Ejercicio 4 – Promocion de Ventas
  • Practica/Ejercicio 5 – Retraso en renta peliculas
  • Practica/Ejercicio 6 – Dados
  • PRACTICA 7 – Contando dinero
  • PRACTICA 8 – Numeros
  • PRACTICA 9 – Numeros ordenados
  • PRACTICA 10 – Boletos
  • PRACTICA 11 – Conversiones metricas
  • PRACTICAS DE VARIABLES, TIPOS DE DATOS, ASIGNACIONES, OPERADORES
  • PRACTICA 12 – Rectangulo
  • PRACTICA 13 – Pies
  • PRACTICA 14 – Triangulo
  • PRACTICA 15 – Raices
  • PRACTICA 16 – Tiempos
  • PRACTICA 17 – Prestamo
  • PRACTICA 18 – Metros
  • PRACTICA 19 – Millonario
  • PRACTICA 20 – Promedio
  • PRACTICA 21 – Circulo
  • PRACTICA 22 – Maquina reversadora de numeros
  • PRACTICA 23 – Nibles
  • PRACTICA 24 – Multiplicacion por 300
  • PRACTICA 25 – Peso
  • PRACTICA 26 – Fahrenheit
  • PRACTICA 27 – Celsius
  • PRACTICA 28 – Determinante
  • PRACTICA 29 – Don Manolo
  • PRACTICA 30 - ISBN
  • PRACTICA 31 – Odometer
  • PRACTICA 32 – Triangulo II
  • PRACTICA 33 – Distancia Euclidiana
  • PRACTICA 34 – Validacion de Tarjetas de credito
  • PRACTICA 35 – Suma de fracciones
  • PRACTICAS DE ESTRUCTURAS DE CONTROL
  • PRACTICA 36 – Max
  • PRACTICA 37 – Positivo Negativo
  • PRACITCA 38 – Par Impar
  • PRACTICA 39 – Convertidor de divisas
  • PRACTICA 40 – Grado Promedio
  • PRACTICA 41 – Bisiesto
  • PRACTICA 42 – Diferencia
  • PRACTICA 43 – Saludo
  • PRACTICA 44 - Control
  • PRACTICA 45 – Multiplo
  • PRACTICA 46 – ASCII
  • PRACTICA 47 – Super Raices
  • PRACTICA 48 – Dia semana
  • PRACTICA 49 – Super Triangulo
  • PRACTICAS DE ESTRUCTURAS REPETITIVAS
  • PRACTICA 50 – Countdown
  • PRACTICA 51 – Factorial
  • PRACTICA 52 – Serie 1
  • PRACTICA 53 – Primo
  • PRACTICA 54 – Ingenieros 2050
  • PRACTICA 55 – Super Primos
  • PRACTICA 56 – Mayor Menor
  • PRACTICA 57 – Cuadrado
  • PRACTICA 59 – Rombo
  • PRACTICA 60 – Binario
  • PRACTICA 61 – Tablas de Multiplicar
  • PRACTICA 62 – Divisores
  • PRACTICA 63 – Calculadora
  • PRACTICA 64 – Adivinar
  • PRACTICA 65 – Nicomaco
  • PRACTICA 66 – Perfectos
  • PRACTICA 67 – Sumatorias
  • PRACTICA 68 – Guess my age
  • PRACTICA 69 – Power
  • PRACTICA 70 – Amigos
  • PRACTICAS CON VECTORES
  • PRACTICA 71 – Minimo
  • PRACTICA 72 – Cafeteria
  • PRACTICA 74 – Serie

[PROGRAMACION I – C++] IDSystems 2011 - 2013 tems

CUADERNO DE TRABAJO DE C++

Cuaderno de Trabajo Visual Basic se encuentra bajo una Licencia Creative Commons Atribución Atribución-No Comercial-Licenciamiento Recíproco 3.0 Unported. Diciembre – IDSystems Licenciamiento Unpo

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 1

[PROGRAMACION I – C++] IDSystems 2011 - 2013

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 ....................................................................................... 12 Ejercicio 8 – Operadores y tipos de datos ........................................................................................ 13 Ejercicio 9 – Operaciones simples ................................................................................................... 15 Ejercicio 10 - Concatenacion ........................................................................................................... 17 Ejercicio 11 – If…Else ....................................................................................................................... 18 Ejercicio 12 – Operaciones condicionales ........................................................................................ 19 Ejercicio 13 – IF…ELSE anidados ...................................................................................................... 21 Ejercicio 14 – Salida a un archivo externo ....................................................................................... 24 Ejercicio 15 - Switch ........................................................................................................................ 27 Ejercicio 16 – Area de poligonos con Switch .................................................................................... 28 Ejercicio 17 – Ciclo For .................................................................................................................... 31 Ejercicio 18 – Ciclo while ................................................................................................................. 33 Ejercicio 19 – Ciclos anidados .......................................................................................................... 34 Ejercicio 20 – Ciclo While ................................................................................................................ 35 PRACTICA 1 ..................................................................................................................................... 37 Ejercicio 21 - Juego del Granjero ..................................................................................................... 37 Ejercicio 22 - Juegos ........................................................................................................................ 48 Ejercicio 22a – Juego de Adivinanzas ........................................................................................... 49 Ejercicio 22b - Tragamonedas..................................................................................................... 51 Ejercicio 22c – Pseudovirus ......................................................................................................... 54 Ejercicio 23 - Juego del Ahorcado .................................................................................................... 58 Ejercicio 24 - Juego Las Torres de Hanoi .......................................................................................... 73 Ejercicio 25 – Arreglos ..................................................................................................................... 78 Ejercicio 26 ..................................................................................................................................... 80 Ejercicio 27 – Cadenas .................................................................................................................... 82 Ejercicio 28 - Arreglos y cadenas ..................................................................................................... 84 Ejercicio 29 - Juego del Gato (Tic-Tac-Toe) ...................................................................................... 86 Ejercicio 30 – Estructuras ................................................................................................................ 90 Practica/Ejercicio 1 – Zodiaco ......................................................................................................... 92 Practica/Ejercicio 2 – Califaciones Estilo USA .................................................................................. 96 Practica/Ejercicio 3 – Sueldos a trabajador...................................................................................... 98 Practica/Ejercicio 4 – Promocion de Ventas .................................................................................. 100 Practica/Ejercicio 5 – Retraso en renta peliculas ........................................................................... 103 Practica/Ejercicio 6 – Dados .......................................................................................................... 105 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 2

[PROGRAMACION I – C++] IDSystems 2011 - 2013 PRACTICA 7 – Contando dinero ..................................................................................................... 108 PRACTICA 8 – Numeros ................................................................................................................. 108 PRACTICA 9 – Numeros ordenados ............................................................................................... 108 PRACTICA 10 – Boletos.................................................................................................................. 108 PRACTICA 11 – Conversiones metricas .......................................................................................... 108 PRACTICAS DE VARIABLES, TIPOS DE DATOS, ASIGNACIONES, OPERADORES ................................ 109 PRACTICA 12 – Rectangulo ........................................................................................................ 109 PRACTICA 13 – Pies ................................................................................................................... 109 PRACTICA 14 – Triangulo ........................................................................................................... 109 PRACTICA 15 – Raices................................................................................................................ 109 PRACTICA 16 – Tiempos ............................................................................................................ 109 PRACTICA 17 – Prestamo .......................................................................................................... 109 PRACTICA 18 – Metros .............................................................................................................. 109 PRACTICA 19 – Millonario ......................................................................................................... 110 PRACTICA 20 – Promedio .......................................................................................................... 110 PRACTICA 21 – Circulo ............................................................................................................... 110 PRACTICA 22 – Maquina reversadora de numeros .................................................................... 110 PRACTICA 23 – Nibles ................................................................................................................ 110 PRACTICA 24 – Multiplicacion por 300 ...................................................................................... 110 PRACTICA 25 – Peso .................................................................................................................. 110 PRACTICA 26 – Fahrenheit ........................................................................................................ 110 PRACTICA 27 – Celsius ............................................................................................................... 110 PRACTICA 28 – Determinante .................................................................................................... 111 PRACTICA 29 – Don Manolo ...................................................................................................... 111 PRACTICA 30 - ISBN .................................................................................................................. 111 PRACTICA 31 – Odometer ......................................................................................................... 112 PRACTICA 32 – Triangulo II ........................................................................................................ 112 PRACTICA 33 – Distancia Euclidiana .......................................................................................... 112 PRACTICA 34 – Validacion de Tarjetas de credito ...................................................................... 112 PRACTICA 35 – Suma de fracciones ........................................................................................... 113 PRACTICAS DE ESTRUCTURAS DE CONTROL .................................................................................. 113 PRACTICA 36 – Max ................................................................................................................... 113 PRACTICA 37 – Positivo Negativo .............................................................................................. 113 PRACITCA 38 – Par Impar .......................................................................................................... 113 PRACTICA 39 – Convertidor de divisas ....................................................................................... 113 PRACTICA 40 – Grado Promedio................................................................................................ 114 PRACTICA 41 – Bisiesto ............................................................................................................. 114 PRACTICA 42 – Diferencia.......................................................................................................... 114 PRACTICA 43 – Saludo ............................................................................................................... 114 PRACTICA 44 - Control .............................................................................................................. 114 PRACTICA 45 – Multiplo ............................................................................................................ 115 PRACTICA 46 – ASCII ................................................................................................................. 115 PRACTICA 47 – Super Raices ...................................................................................................... 115 PRACTICA 48 – Dia semana ...................................................................................................... 115 PRACTICA 49 – Super Triangulo ................................................................................................. 115 PRACTICAS DE ESTRUCTURAS REPETITIVAS ................................................................................... 115 PRACTICA 50 – Countdown ....................................................................................................... 115 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 3

................................................................. 119 PRACTICA 73 – Traductor de Codigo Morse .............................................................................................[PROGRAMACION I – C++] IDSystems 2011 .. 118 PRACTICA 68 – Guess my age ..................................................................................................................................................................................................................................... 116 PRACTICA 60 – Binario .............................. 118 PRACTICA 70 – Amigos ............................. 117 PRACTICA 64 – Adivinar............................................................................................... 116 PRACTICA 59 – Rombo ..........................................................................................2013 PRACTICA 51 – Factorial ............................................ 117 PRACTICA 65 – Nicomaco .......................................... 116 PRACTICA 55 – Super Primos ................................................................................ 119 PRACTICA 74 – Serie ................................ 115 PRACTICA 52 – Serie 1 ................................ 116 PRACTICA 53 – Primo ............................................................................................................................................................................................... 118 PRACTICA 69 – Power .......................................................................................................................................................................................... 118 PRACTICA 67 – Sumatorias ......................... 119 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 4 ............................................................................................................................................ 116 PRACTICA 61 – Tablas de Multiplicar ................................................................. 118 PRACTICAS CON VECTORES ...................................................................................................................................................................................................................................................................................................... 116 PRACTICA 57 – Cuadrado ................................................................................................................................... 116 PRACTICA 56 – Mayor Menor ............................................................................................................................................................................................................................. 118 PRACTICA 72 – Cafeteria ....................... 117 PRACTICA 66 – Perfectos ..................................................................................................................................................... 117 PRACTICA 63 – Calculadora ......... 116 PRACTICA 58 – Decimal a Hexadecimal ..................................................................... 118 PRACTICA 71 – Minimo ....................................................................................................................... 116 PRACTICA 54 – Ingenieros 2050 ..................................................... 117 PRACTICA 62 – Divisores .................................................................

CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 5 .[PROGRAMACION I – C++] IDSystems 2011 .2013 PARTE I Los ejercicios y practicas de esta primera parte estan enfocados a entender los conceptos y el modo de sintaxis de C++. Se vera la estructura basica de un programa. las instrucciones estandar y al finalizar algunos ejemplos de comandos condicionales SI…ENTONCES.

. Las practicas. se utilizan 3 compiladores distintos para que el alumno aprenda las diferencias entre los IDE y no propiamente en el lenguaje de C++. de la suite Microsoft Visual Studio 6. Los ejercicios seran instrucciones paso a paso o programas ya resueltos para que los teclees.EXE) como el codigo fuente a tu profesor. Actualizacion 2013.[PROGRAMACION I – C++] IDSystems 2011 . no tendran aquí la respuesta. La primera parte corresponde al compilador ZINJAI. Para versiones Windows Vista y Windows 7. 7 y 8. Desde el curso 2012. este compilador no funcionara.0 no funciona de manera correcta en Windows Vista... Los compiladores de NetBeans y Eclipse no se ven sino hasta el siguiente curso. Hacer la compilacion y encadenamiento y ver los resultados. pseudocodigo o indicar su funcionamiento.0. se opto por utilizar la version Visual C++ 2008 Express o en su defecto DevC++. Se han seleccionado estos compiladores porque se prestan mejor para la manera didactica.zip Ademas. Los ejercicios por tanto. Recuerda que debes guardarlos y entregar tanto el compilado (. cada ejercicio debera ir acompañado de su diagrama de flujo y pseudocodigo. Ambos deben ir en un archivo ZIP como se describe a continuacion. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 6 . Los programas fueron creados en Visual C++ 6. Necesitaras descargar el Visual C++ 2008 Studio Express y posiblemente hacer algunas modificaciones en el codigo.. comados y realices alguna tarea sobre ellos como generar los diagramas de flujo. sino que deberas realizarla desde cero. te familiarices con la sintaxis. si se los envias por correo electronico: Alumno_Grado_NoEjercicio.0 que soporta hasta Windows XP.2013 INSTRUCCIONES En este cuaderno de trabajo tendras los EJERCICIOS y PRACTICAS que veras en el curso de Programacion I. Debes teclear cada uno de los programas en tu compilador de C++. mostraran codigo de ambas versiones. aunque en la parte cuarta se utiliza ZINJAI con librerias visuales y CODEBLOCKS. La segunda parte al compilador MS Visual C++ 6. En vista de que el compilador MS VISUAL C++ 6.. Ejemplo: ReynolHernandez_03_Prog01.0 y la tercera parte al compilador DevC++.

int y = 7. 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. y usa la salida a la pantalla o consola Segundo. Aqui lo hemos nombrado hola.cpp #include <iostream> int main() { int x = 5. return 0.cpp #include <iostream> int main() { std::cout<< "Hola Mundo".2013 Ejercicio 1 – Hola Mundo 1. } Responde que es lo que hace cada una de las instrucciones: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 7 .[PROGRAMACION I – C++] IDSystems 2011 . std::cout << std::endl. El primer programa es el clasico HOLA MUNDO. std::cout << std::endl.cpp Primero.

std::cout << x << "y " << y. } Cual es la diferencia entre este programa y el anterior? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 8 . std::cout << x + y <<" " << x * y.2013 SENTENCIA Que tipo de variables declaramos? Que operaciones estamos realizando? Cual es el comando para mostrar salida por pantalla? ACCION 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.[PROGRAMACION I – C++] IDSystems 2011 . int y = 7. std::cout << "Estos son los valores: ". std::cout << std::endl. std::cout << std::endl. std::cout << std::endl. return 0.

int main() { int x = 5. cout << x + y <<" " << x * y. using std::cin. cout << std::endl.[PROGRAMACION I – C++] IDSystems 2011 . } 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 . 2. Tercero. return 0.cpp /* Tercero. pero aqui pedira una entrada por el teclado. cout<<"Bienvenido "<<nombre<<". se almacena en una variable caracter y luego muestra todos los resultados. char nombre [200]. int y = 7. la declaramos aqui */ using std::cout. cout <<"Cual es tu nombre? ".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. cout << std::endl. cout<<"Estos son los valores: "<<x<<" y "<< y.2013 Ejercicio 4 – Simplificando comandos y datos El cuarto programa es otra variacion del no. cin>>nombre. cout<< std::endl. Gracias por usar C++\n\n".

std::cout << "Escribe tu nombre \n". std::cin >> name. #ifdef FRIEND std::cout << "Hola " << name << ".cpp /* Prog05_Case.2009 */ #include <iostream> #define FRIEND 1 int main (void) { char name [200]. } 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 .[PROGRAMACION I – C++] IDSystems 2011 .2013 Ejercicio 5 – Variables de preprocesador En este ejercicio veremos como usar variables para ejecutarse en el preprocesador Prog05. Pag.cpp Un programa que pregunta su nombre y le saluda De: El C++ por la practica. Para: Universidad Valle del Bravo 17. Sergio Hugo Sanchez O. #endif return 0 . que tal! \n". Mayo. FICHA 1. 15 Por: Lic.

} ZinJai /* Prog06_17. Para: Universidad Matamoros 17. Sergio Hugo Sanchez O. 2009 */ #include <iostream> using namespace std. } Cual es la diferencia entre este programa y los que se han escrito anteriormente? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 11 . 17 C++ por la practica.h> int main(void) { cout << "Esto del C++ parece muy facil" << endl. return 0. Por: Lic.cpp Programa del ejercicio propuesto pag.cpp Programa del ejercicio propuesto pag. 17 C++ por la practica. Para repasar la forma de mostrar mensajes en la pantalla. 2009 */ #include <iostream. Sergio Hugo Sanchez O. Para repasar la forma de mostrar mensajes en la pantalla.2013 Ejercicio 6 – Salida por pantalla Simple programa de salida por pantalla Prog06. Para: Universidad Matamoros 17.[PROGRAMACION I – C++] IDSystems 2011 .Mayo.Mayo. return 0. int main(void) { cout << "Esto del C++ parece muy facil" << endl.cpp /* Prog06_17. Por: Lic.

return 0. Mayo.h> int main(void) { char msg[200] . cin >> msg. Mayo. Para: Universidad Matamoros 17. Sergio Hugo Sanchez O. cout << "*********************"<<endl. 2 Por: Lic. cout << msg << endl. 17 Manual C++ por la practica 4.2013 Ejercicio 7 – Entrada y salida por pantalla Entrada y salida por pantalla: Prog07. Para: Universidad Matamoros 17.1 no. cout << msg << endl. } /*Prog07_17. 2009 */ #include <iostream. cin >> msg.[PROGRAMACION I – C++] IDSystems 2011 . cout << "*********************"<<endl. int main(void) { char msg[200] .cpp Programa para el ejercicio propuesto en pag.cpp /*Prog07_17. 17 Manual C++ por la practica 4. cout << "Escribe un mensaje con una sola palabra: "<<endl.cpp Programa para el ejercicio propuesto en pag. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 12 . Sergio Hugo Sanchez O. 2 Por: Lic.1 no. return 0. cout << "Escribe un mensaje con una sola palabra: "<<endl. 2009 */ #include <iostream> using namespace std.

2013 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. int main (void) { CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 13 .cpp /* Prog08_19. 2009 FICHA2 */ #include <iostream. Mayo.[PROGRAMACION I – C++] IDSystems 2011 .h> int global = 5. Sergio Hugo Sanchez O Para: Universidad Matamoros 17.cpp Programa de la pagina 19 Curso C++ a la practica Para conocer los tipos basicos de datos en C Por: Lic.

2 .cpp Programa de la pagina 19 Curso C++ a la practica Para conocer los tipos basicos de datos en C Por: Lic. Mayo. } /* Prog08_19.3 . return 0.[PROGRAMACION I – C++] IDSystems 2011 . cout << "x+y="<<x+y<<" "<<"a="<<a<<endl. int global = 5. double x = 1. cout << "x+y="<<x+y<<" "<<"a="<<a<<endl. double x = 1. return 0.3 . int main (void) { int a= 1. double y = 2. cout<<"a="<<a<<endl. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 14 . 2009 FICHA2 */ #include <iostream> using namespace std.2 . Sergio Hugo Sanchez O Para: Universidad Matamoros 17.2013 int a= 1. cout<<"a="<<a<<endl. a=global + (int) x. a=global + (int) x. double y = 2.

cout << x <<"+"<< y << "="<< z << endl.cpp /* Prog09_21. cout << "Introduzca el segundo numero" << endl. z = x+y. 2009 Ficha2 */ #include <iostream> using namespace std. Para: Universidad Valle del Bravo 17. cin >> x.2013 INSTRUCCION Que tipos de datos estamos declarando? ACCION Que tipos de operaciones estamos realiznado? Cual es el resultado del programa? Ejercicio 9 – Operaciones simples Otro ejemplo de operaciones simples con tipos de datos numericos Prog09. } /* Prog09_21.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. int main (void) { CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 15 .[PROGRAMACION I – C++] IDSystems 2011 . Mayo. Sergio Hugo Sanchez O. y. 2009 Ficha2 */ #include <iostream.cpp Programa pag 21 El C++ por la practica Tipos de datos numericos y operaciones simples Por: Lic. Mayo. return 0. cin >> y. cout << "Introduzca el primer numero" << endl. Sergio Hugo Sanchez O. z.

cin >> y. } Realiza el pseudocodigo de este programa CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 16 . z. cout << "Introduzca el primer numero" << endl. return 0.2013 double x. cout << "Introduzca el segundo numero" << endl.[PROGRAMACION I – C++] IDSystems 2011 . cin >> x. cout << x <<"+"<< y << "="<< z << endl. z = x+y. y.

Prog11.2013 Ejercicio 10 . cin >> a. int main (void) { char a. return 0. Para: Universidad Matamoros 17. Por: Lic. suma o concatenacion de caracteres cout << "El resultado " << a. 2009 Ficha 2 */ #include <iostream> using namespace std.h> int main (void) { char a. cout << "Introduzca el primer caracter: " << endl. Mayo. cout << "Introduzca el primer caracter: " << endl. a+=b. Sergio Hugo Sanchez O.[PROGRAMACION I – C++] IDSystems 2011 . Sergio Hugo Sanchez O. cout << "Introduzca el segundo caracter: " << endl.cpp Programa que permite la suma (concatenacion) de 2 caracteres. cin >> a. // a=a+b.cpp Programa que permite la suma (concatenacion) de 2 caracteres. return 0. Por: Lic. 2009 Ficha 2 */ #include <iostream. cout << "Introduzca el segundo caracter: " << endl. Mayo.} CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 17 . //declaracion de la variable tipo caracter char b. Para: Universidad Matamoros 17.} /*Prog11.cpp /*Prog11. // a=a+b. tambien llamada CONCATENACION. a+=b. //declaracion de la variable tipo caracter char b.Concatenacion Suma de caracteres. suma o concatenacion de caracteres cout << "El resultado " << a. cin >> b. cin >> b.

if (i>j) {cout << "i es mejor que j"<<endl.2013 Responde a lo siguiente: ¿Qué es la concatenación? ¿Cómo se realiza la concatenación? Ejercicio 11 – If…Else Ejercicio para usar la sentencia IF/ELSE Prog12. if (i>j) {cout << "i es mejor que j"<<endl.[PROGRAMACION I – C++] IDSystems 2011 . int main () { int i = 1.} return 0. int j = 2.cpp /* Sentencias tipo if/else.} else {cout << "i es mayor que j"<<endl.h> int main () { int i = 1. Anidamientos y operaciones logicas */ #include <iostream. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 18 .} else {cout << "i es mayor que j"<<endl. } /* Sentencias tipo if/else. int j = 2. Anidamientos y operaciones logicas */ #include <iostream> using namespace std.} return 0.

if (c==1) {cout << "El resultado es: " << a+b<<endl. cin >> c. cin >> a.} return 0. b. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 19 . cout << "Introduce el segundo numero " << endl.h> int main() { double a. entrada salida por consola y condicional Prog13.cpp /* Pregunta dos numoers.} else {cout <<"El resultado es: " <<a*b<<endl. 2(Multiplicacion)? " << endl. que operacion deseas hacer y muestra el resultado */ #include <iostream. cout << "Que operacion deseas hacer. cin >> b.2013 Explica el comando de IF Ejercicio 12 – Operaciones condicionales Ejercicio con operaciones. cout << "Introduce el primer numero " << endl.[PROGRAMACION I – C++] IDSystems 2011 . 1(suma). int c.

2(Multiplicacion)? " << endl. que operacion deseas hacer y muestra el resultado */ #include <iostream> using namespace std.} else {cout <<"El resultado es: " <<a*b<<endl. int c. cout << "Que operacion deseas hacer. cout << "Introduce el primer numero " << endl. b.2013 } /* Pregunta dos numeros. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 20 .} return 0. cin >> b. cin >> a. cin >> c.[PROGRAMACION I – C++] IDSystems 2011 . int main() { double a. if (c==1) {cout << "El resultado es: " << a+b<<endl. cout << "Introduce el segundo numero " << endl. 1(suma).

ELSE anidados Prog14. int figura. area=a*a.cpp /*Calcular el area de diferentes poligonos */ #include <iostream. if (figura==1) { cout << "valor del lado=". cin >>a. cout << "¿que area deseas calcular)" << endl. b.. cout << "Figura= cuadrado (1). cin >> figura.. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 21 . rectangulo (2).[PROGRAMACION I – C++] IDSystems 2011 . triangulo (3)" << endl.} else if (figura==2) { cout << "Valor del lado menor = ". cin >>a. double area.h> int main() { double a.2013 Realiza el pseudocódigo del programa anterior Ejercicio 13 – IF…ELSE anidados Ejercicio mas complejo de IF.

} else { cout << "figura equivocada" << endl.} cout <<"El area de la figura es= "<<area<<endl. cout << "Valor de la altura =".2013 cout << "Valor del lado mayor = " . cin >> b.} cout <<"El area de la figura es= "<<area<<endl. area=0. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 22 . area = a*b. cin >> a.} else { cout << "figura equivocada" << endl. int figura. cin >> b. } /*Calcular el area de diferentes poligonos */ #include <iostream> using namespace std. triangulo (3)" << endl. if (figura==1) { cout << "valor del lado=". cout << "Figura= cuadrado (1). return 0. cin >> figura. cin >>a. cin >> a. b.[PROGRAMACION I – C++] IDSystems 2011 . int main() { double a. cin >> b. cout << "¿que area deseas calcular)" << endl.} else if (figura==2) { cout << "Valor del lado menor = ". cout << "Valor de la altura =".0. cin >>a.} else if (figura==3) { cout <<"Valor de la base =". rectangulo (2). area = a*b.0. area=a*b/2. area=a*b/2. double area. area=0.} else if (figura==3) { cout <<"Valor de la base =". area=a*a. cin >> b. cout << "Valor del lado mayor = " .

2013 return 0.[PROGRAMACION I – C++] IDSystems 2011 . } ACCION ¿Qué son las condiciones anidadas? COMANDO ¿Cómo se escriben las condiciones anidadas? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 23 .

h> #include <fstream. if (size > MAX_SIZE) { cerr << "Error.. cin >> size. MyReport << " *********************************** fin"<<endl. matrices. se escribe un texto de salida mediante sentencia CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 24 . MyReport << " ERROR: dimesion del vector debe ser menor de " << MAX_SIZE <<endl. } /* Se define la dimesion de un vector mediante un entero.[PROGRAMACION I – C++] IDSystems 2011 .ELSE.. return 0.h> #define MAX_SIZE 25 int main () { int size. } cout << "Vamos a trabajar con un vector de " << size << " componentes"<< endl.cpp /* Se define la dimesion de un vector mediante un entero. como se crean los vectores y el uso de un archivo de texto */ #include <iostream.txt").2013 Ejercicio 14 – Salida a un archivo externo Programa mas complejo que involucra: IF. mas de 1 libreria. el concepto de matriz se restringe de momento a un vector. MyReport << " Vector de " << size << " componentes " <<endl. MyReport << " *********************************** fin"<<endl. creacion de archivo de texto. entrada y salida por pantalla. cout << "Introduzca la dimension del vector" <<endl. ofstream MyReport("resultado. MyReport << " *********************************** inicio" << endl.close(). el concepto de matriz se restringe de momento a un vector. se escribe un texto de salida mediante sentencia logica Aqui veremos otras librerias de C.close(). tamaño demasiado grande" << endl. return 1. MyReport << " *********************************** inicio" << endl. MyReport. MyReport. Nuevos comandos Prog15.

#define MAX_SIZE 25 int main () { int size. como se crean los vectores y el uso de un archivo de texto */ #include <iostream> #include <fstream> using namespace std. MyReport << " *********************************** fin"<<endl. MyReport << " *********************************** inicio" << endl. cout << "Introduzca la dimension del vector" <<endl. MyReport. ofstream MyReport("resultado.2013 logica Aqui veremos otras librerias de C.close(). cin >> size. MyReport << " *********************************** fin"<<endl. MyReport << " Vector de " << size << " componentes " <<endl. if (size > MAX_SIZE) { cerr << "Error.close(). MyReport << " *********************************** inicio" << endl. return 1. } Indica lo siguiente: ¿Qué librerías estamos incorporando al programa? ¿Qué es lo que hace el programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 25 . MyReport << " ERROR: dimesion del vector debe ser menor de " << MAX_SIZE <<endl. } cout << "Vamos a trabajar con un vector de " << size << " componentes"<< endl.[PROGRAMACION I – C++] IDSystems 2011 .txt"). return 0. MyReport. tamaño demasiado grande" << endl.

[PROGRAMACION I – C++] IDSystems 2011 .2013 ¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 26 .

b. int main () { double a. break. cout << "Que operacion deseas hacer: 1(suma) 2(Multiplicacion)"<<endl. cout << "Que operacion deseas hacer: 1(suma) 2(Multiplicacion)"<<endl.h> int main () { double a. default: cout << "el resultado es:"<<a*b<<endl. } /* Uso de switch en lugar de IF Igual al prog13 */ #include <iostream> using namespace std. cin >> a. switch (c) { case 1: cout << "el resultado es:"<<a+b<<endl. cout << "Introduzca el primer numero"<<endl.[PROGRAMACION I – C++] IDSystems 2011 . break.cpp /* Uso de switch en lugar de IF Igual al prog13 */ #include <iostream. cin>>c. break. cout << "Introduzca el segundo numero"<<endl. variacion del primer programa IF.Switch Programa de ejemplo para el Switch.ELSE Prog16. } return 0. cin >> b. cin >> b. cout << "Introduzca el primer numero"<<endl. int c.. break. switch (c) { case 1: cout << "el resultado es:"<<a+b<<endl.2013 Ejercicio 15 . int c. default: cout << "el resultado es:"<<a*b<<endl.. } return 0. b. cout << "Introduzca el segundo numero"<<endl. cin >> a. cin>>c. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 27 .

int main() { double a. cin >> figura.0. default: cout << "figura equivocada" << endl. area=a*b/2. cin >>a. cout << "Figura= rectangulo (1). else cerr <<"error. area = a*b.. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 28 .2013 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.[PROGRAMACION I – C++] IDSystems 2011 . case 2: cout <<"Valor de la base =". la figura no tiene area"<<endl. cin >> a. int figura. b. cin >> b. break. int figura.cpp /*Calcular el area de diferentes poligonos usando Switch*/ #include <iostream. } if (area) cout <<"El area de la figura es= "<<area<<endl.. cin >> figura. switch (figura) { case 1: cout << "Valor del lado menor = ".h> int main() { double a. area. cin >> b. cout << "Valor del lado mayor = " . else Prog17. cin >>a. triangulo (2)" << endl. cout << "¿que area deseas calcular)" << endl. return 0. cout << "Valor de la altura =". } /*Calcular el area de diferentes poligonos usando Switch*/ #include <iostream> using namespace std. triangulo (2)" << endl. b. break . area=0. switch (figura) { case 1: cout << "Valor del lado menor = ". break. cout << "Figura= rectangulo (1). area. cout << "¿que area deseas calcular)" << endl.

[PROGRAMACION I – C++] IDSystems 2011 . } Prueba a hacer este programa sin ver el código aquí presentado. break. break . ya que es una variación del ejercicio de polígonos usando el IF…else CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 29 .0. break. area=a*b/2. return 0. case 2: cout <<"Valor de la base =". cout << "Valor de la altura =".2013 cout << "Valor del lado mayor = " . la figura no tiene area"<<endl. } if (area) cout <<"El area de la figura es= "<<area<<endl. cin >> b. cin >> a. cin >> b. area = a*b. area=0. default: cout << "figura equivocada" << endl. else cerr <<"error.

Ademas de incorporar funciones. y ejemplos de algunos juegos los cuales preparan al estudiante en la logica de la programacion.[PROGRAMACION I – C++] IDSystems 2011 . CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 30 .2013 PARTE II En esta segunda parte se incluyen ejemplos para realizar ciclos. matrices.

} // Este programa muestra una lista de números. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 31 . // 11/09/2000 Salvador Pozo #include <iostream> // librería para uso de cout using namespace std. indicando para cada uno // si es o no múltipo de 3. Prog19. Escribir un programa que muestre una lista de números del 1 al 20. // o no lo es cout << endl. int main() // función principal { int i. // cambio de línea DevC++ return 0. i <= 20. // muestra el número if(i % 3 == 0) cout << " es múltiplo de 3".h> // librería para uso de cout int main() // función principal { int i.[PROGRAMACION I – C++] IDSystems 2011 . indicando a la derecha de cada uno si es divisible por 3 o no. // variable para bucle for(i = 1. // 11/09/2000 Salvador Pozo #include <iostream. i++) // bucle for de 1 a 20 << i. // el resto de dividir por 3 es 0 else cout << " no es múltiplo de 3". // el resto de 0 cout << " no es múltiplo de 3". // variable para bucle for(i = 1. // o no lo es << endl. // cambio de línea } system("pause"). i++) // bucle for de 1 a 20 { cout << i. indicando para cada uno // si es o no múltipo de 3.cpp // Este programa muestra una lista de números.2013 Ejercicio 17 – Ciclo For Primero haremos uno fácil. return 0. // muestra el número % 3 == 0) cout << " es múltiplo de 3". { cout if(i dividir por 3 es else cout } i <= 20.

Además.[PROGRAMACION I – C++] IDSystems 2011 . cuando hagas revisiones. Si lo dejas para cuando has terminado el código.-) También es una buena costumbre incluir al principio del programa un comentario extenso que incluya el enunciado del problema. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 32 . . actualizaciones o correcciones deberías incluir una explicación de cada una de ellas y la fecha en que se hicieron. y la mayoría de las veces no lo harás. probablemente sea demasiado tarde.2013 El enunciado es el típico de un problema que puede ser solucionado con un bucle "for". Acostúmbrate también a escribir el código al mismo tiempo que los comentarios. Observa el uso de los comentarios. añadiendo también el nombre del autor y la fecha en que se escribió. y acostúmbrate a incluirlos en todos tus programas. Una buena documentación te ahorrará mucho tiempo y te evitará muchos dolores de cabeza.

#include <iostream> // librería para uso de cout using namespace std. indicando para cada uno // si es o no múltipo de 3. // muestra el número if(MultiploDeTres(i)) cout << " es múltiplo de 3". pero usando una función para verificar si el número es divisible por tres. // variable para bucle while(i <= 20) // bucle hasta i igual a 20 { cout << i. } } // 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. indicando para cada uno // si es o no múltipo de 3. // cambio de línea i++. // el numero es múltiplo de 3 else cout << " no es múltiplo de 3". int main() // función principal { int i = 1. // el numero es múltiplo de 3 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 33 . Prog20. // variable para bucle while(i <= 20) // bucle hasta i igual a 20 { cout << i. } // Este programa muestra una lista de números. else return true. #include <iostream.[PROGRAMACION I – C++] IDSystems 2011 .2013 Ejercicio 18 – Ciclo while Escribir el programa anterior.h> // librería para uso de cout // Prototipos: bool MultiploDeTres(int n). // Prototipos: bool MultiploDeTres(int n). y un bucle de tipo "while". // muestra el número if(MultiploDeTres(i)) cout << " es múltiplo de 3". int main() // función principal { int i = 1. // o no lo es cout << endl.cpp // Este programa muestra una lista de números.

h> // librería para uso de cout int main() // función principal { int i. i++) // bucle hasta i igual a 20 { for(j = 1. else return true. Observa que al incluir la función. con el nombre adecuado. al declarar la variable i le hemos dado un valor inicial 1. // o no lo es cout << endl.[PROGRAMACION I – C++] IDSystems 2011 . j. j++) // bucle desde 1 a i cout << i << " ". el código queda mucho más legible. // cambio de línea CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 34 .cpp // Este programa muestra una lista de números // de este tipo: // 1 // 1 2 // 1 2 3 // .. } Comprueba cómo hemos declarado el prototipo de la función "MultiploDeTres".. Prog21. Además. // cambio de línea i++. // muestra el número cout << endl. de hecho prácticamente sobra el comentario. #include <iostream. Esto también es muy recomendable. i <= 20. Ejercicio 19 – Ciclos anidados Escribir un programa que muestre una salida de 20 líneas de este tipo: 1 12 123 1234 . Por último.. } // 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. fíjate en que la definición de la función va precedida de un comentario que explica lo que hace.2013 else cout << " no es múltiplo de 3". // variables para bucles for(i = 1.. j <= i. } system("pause").

El bucle exterior incluye. de no ser así. 9. Además. El bucle interior. return 0. la orden de cambio de línea. pero ilustra el uso de los bucles "do. alternativamente.. Ejercicio 20 – Ciclo While Escribir un programa que muestre una salida con la siguiente secuencia numérica: 1. El enunciado es rebuscado. 7. la salida no tendría la forma deseada. // cambio de línea } system("pause").. . 7. // variables para bucles for(i = 1. int main() // función principal { int i. que usa "j" como variable toma valores entre 1 e "i". #include <iostream> // librería para uso de cout using namespace std.. después de cada número se imprime un espacio en blanco. } // // // // // // Este programa muestra una lista de números de este tipo: 1 1 2 1 2 3 .[PROGRAMACION I – C++] IDSystems 2011 . i <= 20. j <= i. } Este ejemplo ilustra el uso de bucles anidados. 23 La secuencia debe detenerse al llegar al 23.2013 } return 0. j++) // bucle desde 1 a i cout << i << " ". La secuencia se obtiene partiendo de 1 y sumando y restando 4 y 2. 3.. j. 5. además del bucle interior. i++) // bucle hasta i igual a 20 { for(j = 1. de otro modo los números aparecerían amontonados.while".. 5.. Veamos cómo resolverlo: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 35 . // muestra el número cout << endl..

else cout << ".. // función principal separadores if(sumar) i += 4. else i -= 2. separadores if(sumar) i += 4. // Siguiente operación es sumar o restar bool terminado = false.. // Cambio de línea // // // Puntuación.2013 Prog21.. // Actualiza condición de fin if(terminado) cout << ". // Cambia la siguiente operación } while(!terminado).. // Siguiente operación es sumar o restar bool terminado = false. // . mientras no se termine cout << endl. // variable para bucles bool sumar = true.// Calcula siguiente elemento sumar = !sumar. // Cambia la siguiente operación } while(!terminado).".h> int main() { int i = 1. Calcula siguiente elemento sumar = !sumar. } /* Prog22 */ #include <iostream> using namespace std. ". // muestra el valor en pantalla terminado = (i == 23). ". . Actualiza condición de fin if(terminado) cout << ". int main() // función principal { int i = 1. // muestra el valor en pantalla terminado = (i == 23). Se ha alcanzado la condición de fin do { // Hacer cout << i. // Puntuación. // Se ha alcanzado la condición de fin do { // Hacer cout << i. // // CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 36 . // variable para bucles bool sumar = true.". else i -= 2. else cout << ".cpp /* Prog22 */ #include <iostream. mientras no se termine cout << endl. return 0.[PROGRAMACION I – C++] IDSystems 2011 .

1. Si tienes una duda sobre alguna instruccion.. Como estructuras. No olvides guardarlo o invitar al profesor con tu registro para que lo evalue. Deberas realizar el algoritmo. Nada mejor que checar la logica de un programa.com/ He aqui el codigo: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 37 . nuevas librerias y comandos (sentencias). NOTA: Puedes usar el siguiente programa ONLINE y gratuito para hacer tu diagrama de flujo.gliffy.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.Juego del Granjero Aqui vamos a hacer un alto o un parentesis en los temas que llevamos visto.. Este programa incluye algunas cosas que no se han visto hasta este momento en el curso. Ejercicio 21 . Deberas ejecutarlo. funciones. 5. Pero que por lo demas no son dificiles de entender.2013 // Cambio de línea system("pause"). Opcial (para obtener mas puntos) realizar el diagrama de flujo del juego. } PRACTICA 1 1. Deberas teclear todo el codigo en C++ 2. Y JUGARLO. http://www. 4. 3. LINEA X LINEA del codigo del juego indicando que es lo que crees que hace.. asi como ver nuevas instrucciones que con un juego. consulta la ayuda del editor o en la wikipedia.[PROGRAMACION I – C++] IDSystems 2011 .. return 0. para mostrar un ejemplo mas practico y divertido sobre la programacion y sobre C++.

[PROGRAMACION I – C++] IDSystems 2011 - 2013

granjero.cpp /* * G R A N J E R O * * El problema del granjero cruzando el rio * */ #include <stdio.h> #include <stdlib.h> #include <conio.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; unsigned gallina : 1; unsigned maiz : 1; }; struct player_st Player; /* * Prototipos de funcion */ void Instruct(void); int GetMove(int); void DoMove(int); int CheckMap(int); int MadeIt(void); void YouLose(void); void PrintMap(void); int main() { int bank; el banco izquierdo int move; movimiento requerido int trips; char reply[NBYTES]; // variable generica bitfield

//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. Todos los elementos estan en el * banco oeste y no se han hecho ningun viaje */ Player.granjero = Player.gallina = Player.zorra = Player.maiz = 0; bank = Player.granjero; trips = 0; printf("\n============= GRANJERO =================\n"); printf("Presione ESC en cualquier tiempo para salir.\n\n"); printf("Necesita instrucciones? (Pulse S o N): "); gets(reply);

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 38

[PROGRAMACION I – C++] IDSystems 2011 - 2013
if (reply[0] == 'S' || reply[0] == 's' ) Instruct(); PrintMap(); while (1) { move = GetMove(bank); DoMove(move); ++trips; bank = Player.granjero; PrintMap(); if (CheckMap(bank)) YouLose(); if (MadeIt()) break; } printf("Felicidades! Has llegado a salvo!\n"); printf("El numero de viajes fueron %d\n", trips); return (0); }

/* * Instruct() * * Despliega las reglas del juego * */ void Instruct() { printf("**************************** INSTRUCCIONES ********************************** \n"); printf("Un granjero debe cruzar un rio en un bote.\n"); printf("El tiene una zorra, una gallina y un balde de maiz.\n"); printf("El granjero solo puede tomar una cosa a la vez en el bote.\n"); printf("La zorra no se puede quedar sola con la gallina porque se la come.\n"); printf("Tampoco puede dejar a la gallina con el maiz.\n"); printf("Cuando el granjero esta presente, los animales se portan bien.\n"); printf("Usted es el granjero. Intente llegar desde el lado oeste del rio \n"); printf("al lado este con su equipaje a cuestas mientras hace el \n"); printf("posible numero de viajes.\n");

}

/* * * GetMove() * Hacer los movimientos */ int GetMove(int bank) { int key;

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 39

[PROGRAMACION I – C++] IDSystems 2011 - 2013

/* * Pregunte al usuario solo con los comandos disponibles. */ printf("\nComandos: S(olo) "); if (Player.zorra == bank) printf("Z(orra) "); if (Player.gallina == bank) printf("G(allina) "); if (Player.maiz == bank) printf("M(aiz) "); printf(":"); while (1) { key = toupper(getch()); if (key == 'S') break; else if (key == 'Z' && Player.zorra == bank) break; else if (key == 'G' && Player.gallina == bank) break; else if (key == 'M' && Player.maiz == bank ) break; else if (key == K_ESC) { putchar('\n'); exit (0); } else putchar(BELL); // mal comando } putchar('\n'); return (key); } void DoMove(int move) { switch (move) { case 'S': break; case 'Z': Player.zorra = !Player.zorra; break; case 'G': Player.gallina = !Player.gallina; break; case 'M': Player.maiz = !Player.maiz; break; } Player.granjero = !Player.granjero; } /* * CheckMap() * * Verificar que ningun elemento hostil se quedo solo * Regresar 1 si lo estan o 0 si no */ int CheckMap(int bank) {

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 40

if (Player.zorra) ec = 'z'. /* La gallina */ wc = ec = ' '. /* La zorra */ wc = ec = ' '.gallina !=bank && Player. } /* * MadeIt() * * Determinar si todos los elementos fueron satisfactoriamente * transportados al lado este del rio */ int CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 41 . if (Player.wc. if (Player. else wc = 'G'.gallina != bank) status = 1. ec. ec).maiz != bank) status = 1. printf("\n%c ^^^^^^ %c\n". printf("\n%c ^^^^^^ %c\n". ec). else wc = 'z'.maiz) ec = 'm'. return (status). ec). /* El maiz */ wc = ec = ' '.2013 int status = 0.gallina) ec = 'g'. if (Player.zorra != bank && Player. if (Player.wc. } /* * PrintMap() * * Desplegar el mapa actual mostrando las posiciones * del granjero y los demas elementos */ void PrintMap() { char wc.[PROGRAMACION I – C++] IDSystems 2011 .wc. else wc = 'g'. if (Player.granjero) ec = 'G'. else wc = 'm'. printf("\n%c ^^^^^^ %c\n".wc. printf("\n%c ^^^^^^ %c\n". /* El granjero */ wc = ec = ' '. ec).

h> <stdlib. unsigned gallina : 1. // variable generica bitfield CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 42 .\n").gallina == Player. else if (Player.zorra == Player.h> <ctype. status =0.2013 MadeIt() { int status.gallina && Player. } /* * Cuando pierdes */ void YouLose() { printf("Lo sentimos. /* * Prototipos de funcion */ void Instruct(void). return (status). unsigned zorra : 1. ").maiz) status = 1.gallina) printf("La zorra se comio a la gallina.granjero && Player.[PROGRAMACION I – C++] IDSystems 2011 . int GetMove(int). has perdido.zorra && Player. }.maiz) printf("La gallina se comio el maiz.h> #define BELL 7 #define K_ESC 27 #define NBYTES 80 /* * Estructura de datos de los jugadores (bitfield) */ struct player_st { unsigned granjero : 1. } /* * G R A N J E R O * * El problema del granjero cruzando el rio * */ #include #include #include #include <stdio. exit(1). unsigned maiz : 1.h> <conio. struct player_st Player. if (Player.\n"). if (Player.

CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 43 . gets(reply).granjero. el banco izquierdo int move.\n\n"). if (MadeIt()) break. void YouLose(void).[PROGRAMACION I – C++] IDSystems 2011 . una gallina y un balde de maiz. PrintMap(). char reply[NBYTES].gallina = Player. trips). } /* * Instruct() * * Despliega las reglas del juego * */ void Instruct() { printf("**************************** INSTRUCCIONES ********************************** \n"). int MadeIt(void).zorra = Player. if (reply[0] == 'S' || reply[0] == 's' ) Instruct().\n"). printf("Presione ESC en cualquier tiempo para salir. bank = Player. printf("Necesita instrucciones? (Pulse S o N): ").granjero = Player. printf("\n============= GRANJERO =================\n"). printf("El numero de viajes fueron %d\n". if (CheckMap(bank)) YouLose(). Todos los elementos estan en el * banco oeste y no se han hecho ningun viaje */ Player. movimiento requerido int trips. void PrintMap(void). DoMove(move). trips = 0. int main() { int bank. return (0). printf("Un granjero debe cruzar un rio en un bote. ++trips.maiz = 0. printf("El tiene una zorra. system("pause").\n"). int CheckMap(int). while (1) { move = GetMove(bank). bank = Player. } printf("Felicidades! Has llegado a salvo!\n").granjero. PrintMap().2013 void DoMove(int). //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.

maiz == bank ) break. /* * Pregunte al usuario solo con los comandos disponibles. system("pause"). if (Player. else if (key == K_ESC) { putchar('\n').gallina == bank) printf("G(allina) "). return (key).\n"). printf("Cuando el granjero esta presente. los animales se portan bien. printf("La zorra no se puede quedar sola con la gallina porque se la come. printf("posible numero de viajes. exit (0). // mal comando } putchar('\n'). else if (key == 'M' && Player. if (Player. printf(":"). else if (key == 'Z' && Player.\n"). else if (key == 'G' && Player. while (1) { key = toupper(getch()).zorra == bank) printf("Z(orra) "). */ printf("\nComandos: S(olo) "). printf("Tampoco puede dejar a la gallina con el maiz.[PROGRAMACION I – C++] IDSystems 2011 .zorra == bank) break. } else putchar(BELL). if (key == 'S') break. if (Player.\n"). } /* * * GetMove() * Hacer los movimientos */ int GetMove(int bank) { int key.2013 printf("El granjero solo puede tomar una cosa a la vez en el bote.maiz == bank) printf("M(aiz) "). } void CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 44 .\n"). printf("Usted es el granjero.gallina == bank) break.\n"). Intente llegar desde el lado oeste del rio \n"). printf("al lado este con su equipaje a cuestas mientras hace el \n").

} Player.2013 DoMove(int move) { switch (move) { case 'S': break.granjero.maiz != bank) status = 1. if (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. break.maiz = !Player. if (Player.gallina. else wc = 'G'. /* La zorra */ wc = ec = ' '. case 'M': Player.zorra) ec = 'z'.zorra = !Player. return (status). break.zorra != bank && Player.gallina = !Player.[PROGRAMACION I – C++] IDSystems 2011 .gallina !=bank && Player. ec). if (Player.zorra. printf("\n%c ^^^^^^ %c\n". /* El granjero */ wc = ec = ' '.granjero) ec = 'G'.gallina != bank) status = 1. case 'Z': Player. case 'G': Player. } /* * PrintMap() * * Desplegar el mapa actual mostrando las posiciones * del granjero y los demas elementos */ void PrintMap() { char wc. else CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 45 .granjero = !Player.wc. ec. break.maiz. if (Player.

granjero && Player. has perdido. "). exit(1).\n"). else if (Player. status =0. return (status). ec). } /* * MadeIt() * * Determinar si todos los elementos fueron satisfactoriamente * transportados al lado este del rio */ int MadeIt() { int status. if (Player.[PROGRAMACION I – C++] IDSystems 2011 .gallina == Player.gallina) printf("La zorra se comio a la gallina. system("pause"). ec). } /* * Cuando pierdes */ void YouLose() { printf("Lo sentimos. /* La gallina */ wc = ec = ' '. ec). else wc = 'g'.wc.zorra && Player. if (Player.wc. if (Player.maiz) printf("La gallina se comio el maiz.\n").2013 wc = 'z'.maiz) ec = 'm'.maiz) status = 1.wc. printf("\n%c ^^^^^^ %c\n". /* El maiz */ wc = ec = ' '.zorra == Player. printf("\n%c ^^^^^^ %c\n".gallina && Player. } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 46 . else wc = 'm'. printf("\n%c ^^^^^^ %c\n". if (Player.gallina) ec = 'g'.

2013 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 47 .[PROGRAMACION I – C++] IDSystems 2011 .

y ademas del Microsot Visual C++.[PROGRAMACION I – C++] IDSystems 2011 . que permiten extender un poco el lenguaje y facilitar algunas tareas en modo DOS para accesar algunas funciones graficas. Cualquier duda. algunas setenciones no se recomiendan en su uso porque precisamente no son librerias estandar que puedan ser emuladas facilmente. 4. no contiene las mismas instrucciones.2013 Ejercicio 22 . otro muy usado es el Turbo C++ o Borland C++. 1. 3. Estos dos archivos deberas incluirlos donde este tu proyecto de programa.H y CONSOLA. INSTRUCCIONES ANTES DE EJECUTAR LOS PROGRAMAS. Estos compiladores traen unas librerias no estandar de C. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 48 . 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). Por lo tanto. hay una libreria llamada CONIO. lo haras con " ". Sin embargo. Asi que habra que seguir un par de instrucciones para que estos programas funcionen de manera correcta.Juegos Para terminar de ver los ejemplos acerca de las condicionales y los ciclos. ya que. preguntale a tu profesor. estaras indicando que sera de manera local.H y STDLIB. Ademas.LIB 2. vamos a ver 3 juegos mas. De entre ellas. Ve a la seccion de Manuales y Video y deberas bajar CONSOLA.H al inicio de tu programa pero veras que en lugar de <>. 5.H. hay que seguir algunas reglas para que estos juegos funcionen y apliques estas nuevas instrucciones que generalmente son utiles en los juegos. Como habiamos visto en la primer leccion. es importante hacer la siguiente aclaracion: Estos juegos fueron adaptados de otras versiones de compilador C++. deberas incluir el archivo CONSOLA. Sera muy importante que primero crees un proyecto de programa. Uno bajo HEADER y el otro bajo RESOURCES. que si bien existen en la version del compilador de Microsoft que estamos usando. porque deberas anexar estos dos archivos. Sin embargo.

La computadora "pensara" un numero entre 1 y 100 y tu deberas adivinarlo en maximo 9 oportunidades. el numero es: "<<a <<endl. } } #include <iostream> #include <conio.h> #include <time.h> #include <stdlib. i++){ cin>>b. break. srand(time(0)). a.cpp #include <iostream. cout<<"Adivina el numero que estoy pensando\n". b. has acertado en "<<i<<" oportunidades \n". } else if (b>a) cout<<"Es alto\n". for (i = 1.h> using namespace std. srand(time(0)). b. } if (b != a) { cout<<"Lo siento. prog22a_adivinanzas. //clrscr(). i++){ cin>>b. cout<<"A D I V I N A N Z A S\n". int main(){ int i. if (b == a) { cout<<"Muy bien. //clrscr(). } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 49 . if (b == a) { cout<<"Muy bien. for (i = 1. has acertado en "<<i<<" oportunidades \n". //randomize(). a = 1 + rand() % 100. a = 1 + rand() % 100. else cout<<"Es bajo\n".h> #include <time. i < 9. cout<<"Adivina el numero que estoy pensando\n". //randomize().h> void main(){ int i.h> #include <conio. system("cls"). break.h> #include <stdlib. a. cout<<"A D I V I N A N Z A S\n". system("cls").[PROGRAMACION I – C++] IDSystems 2011 .2013 Ejercicio 22a – Juego de Adivinanzas El siguiente es un pequeño juego de adivinanzas. i < 9. //a=rand()%100. //a=rand()%100.

} system("pause"). Te servira para repasar las instrucciones de condicion. REALIZA: El pseudocódigo El diagrama de flujo CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 50 . Deberas descubrirlas y ver que es lo que hacen. el numero es: "<<a <<endl. Ademas de nuevas instrucciones que no habiamos visto hasta el momento. else cout<<"Es bajo\n".2013 else if (b>a) cout<<"Es alto\n". contadores y generacion de numeros aleatorios. return 0.[PROGRAMACION I – C++] IDSystems 2011 . } Aqui veras que se incluyen nuevas librerias. } if (b != a) { cout<<"Lo siento.

strcpy(fruta[7]. strcpy(fruta[2].h> <string.F e l i c i d a d e s h a s !!!".h> <conio. b = 1 + rand() % 5. Frutas(columna). el cual cada vez que lo ejecutes generara aleatoriamente las columnas con los elementos. un pequeño juego muy popular en las vegas. // b = random(5). int cuenta. a. "Melocoton"). "Mango"). for (cuenta =1. YA GANASTE!..20). columna = 0. cuenta<=3. strcpy(fruta[5]. void main() { //randomize(). //clrscr(). // for seed based on current time strcpy(fruta[0]. strcpy(fruta[3]. strcpy(fruta[9]. srand(time(0)). b. frutas[cuenta] = a. } g a n a d o CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 51 . } if (frutas[1]==frutas[2] && frutas[1]==frutas[3]) { gotoxy(24. c = 1 + rand() % 5. */ #include #include #include #include #include #include #include <iostream.cpp /* progb22b_tragamonedas. c. "Naranja"). "Durazno"). Si le "atinas" a que las 3 columnas contengan lo mismo.h> <dos.cpp JUEGO: El clasico de las Vegas. strcpy(fruta[8]. prog22b_tragamonedas.. El clasico tragamonedas. int frutas[4]. "Piña").[PROGRAMACION I – C++] IDSystems 2011 . "Pera"). cout<<"--.h> <time.h> "consola. int i. "Sandia"). strcpy(fruta[6]. system("cls"). m.Tragamonedas Ahora. "Melon"). cuenta++) { columna += 20. strcpy(fruta[1]. "Frambuesa").2013 Ejercicio 22b . char fruta[10][10]. // c = random(5).h" void Frutas(int col). strcpy(fruta[4]. "Fresa").h> <stdlib.

char fruta[10][10]. a. cout<<" . CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 52 . SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE). y}.cpp JUEGO: El clasico de las Vegas. } } //for seed based on current time 9. strcpy(fruta[8]. columna = 0. MOD: 18-Feb-2013 para adecuarlo a DevC++*/ #include #include #include #include #include #include #include <iostream> <conio. "Fresa"). int main() { //randomize(). "Mango"). //Defines gotoxy() for ANSI C compilers. void gotoxy(short x. } void Frutas(int col){ for (i=0. "Frambuesa"). //clrscr(). strcpy(fruta[0]. "Piña"). cout<<" "<<endl. strcpy(fruta[5]. /* progb22b_tragamonedas. "Sandia").h> <time. gotoxy(col. strcpy(fruta[6].2013 if (frutas[1]==frutas[2] || frutas[1]==frutas[3] || frutas[2]==frutas[3]) { gotoxy(24. i++){ //a=random(10).h> <windows. te falto uno !!!".[PROGRAMACION I – C++] IDSystems 2011 .h> <stdlib. b. "Pera"). gotoxy(col. int cuenta. a = 1 + rand() % gotoxy(col. int frutas[4]. strcpy(fruta[7]. delay(100). strcpy(fruta[1]. i<10. } getch(). c.h> <dos. strcpy(fruta[2]. short y) { COORD pos = {x. strcpy(fruta[4]. int i. } void Frutas(int col). system("cls"). i ). i ). cout<<"=== Ya casi ganas. //srand(time(0). i ). strcpy(fruta[3].h> <string. // for seed based on current time "Melocoton").". pos). cout<<fruta[a]. srand(time(0)). srand(time(0)).20).h> using namespace std. "Melon"). "Naranja"). m.

"Durazno"). Frutas(columna).20). frutas[cuenta] = a. system("pause"). b = 1 + rand() % 5.". } void Frutas(int col){ for (i=0. } //getch(). } if (frutas[1]==frutas[2] && frutas[1]==frutas[3]) { gotoxy(24. i ). i++){ //a=random(10). a = 1 + rand() % gotoxy(col. } if (frutas[1]==frutas[2] || frutas[1]==frutas[3] || frutas[2]==frutas[3]) { gotoxy(24. 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? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 53 . i<10. cout<<""<<endl. } } g a n a d o //for seed based on current time 9. te falto uno !!!". c = 1 + rand() % 5. i ). cuenta<=3.[PROGRAMACION I – C++] IDSystems 2011 . cout<<fruta[a]. Asi con una pequeña funcion. Sleep(100). cout<<"--.2013 strcpy(fruta[9]. cout<<" .F e l i c i d a d e s h a s !!!". // b = random(5). i ).10). gotoxy(col. //srand(time(0). Aqui repasaras sobre los ciclos y las condicionales. cout<<"=== Ya casi ganas. return 0. gotoxy(col. // c = random(5). for (cuenta =1. cuenta++) { columna += 20. srand(time(0)).

H y CONSOLA.LIB en el mismo directorio del programa para compilar */ #include <iostream.cpp /* Pseudovirus.h> #include "consola.cpp Programa que muestra un supuesto virus en la pantalla Por: LSC Sergio Hugo Sanchez.2013 ¿Qué tipos de datos estamos declarando y como? ¿Qué funciones de C++ nuevas has descubierto en el programa? Ejercicio 22c – Pseudovirus Quieres hacer una pequeña demostracion de un virus? Aqui tienes la oportunidad mientras practicas los ciclos. prog22c_pseudovirus. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 54 . NOTA: Recordar que necesitamos el archivo CONSOLA.[PROGRAMACION I – C++] IDSystems 2011 .h> #include <math.h" void derecha(int fila).h> #include <dos.h> #include <conio.

cout<<" ********** * * * *". cout<<" * * * * *". * * * *". cout<<" * * * * *". cout<<"||||||".15). cout<<"¦". gotoxy(col. i<=25. cout<<" ********** * * *". for (j=1. gotoxy(20. void main(){ clrscr(). gotoxy(20.12). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 55 . Normal @ void derecha(int fila) { for (col=1. cout<<" * * * * *". col++) { delay(r). cout<<" * * * * *". gotoxy(col.2013 void izquierda(int fila). } } //cambiar Ü por el codigo ASCII 220 (Si usas NOTEPAD++).fila). cout<<" * * * **".17). col<=74. col>=74. gotoxy(20. } } void izquierda(int fila) { for (col=80. col>=1. for (i=1. gotoxy(col. cout<<"¦¦¦¦¦¦". gotoxy(20. gotoxy(20. 9). r. cout<<" * * * *". 7). } for (col=9.16). } final(). gotoxy(20. j++) cout<<"---Auxilio!!! un virus al ataque al sistema ". Normal * void final() { clrscr(). gotoxy(20. gotoxy(20. int col.fila). 8).11).fila). col>=1.13).14). cout<<" * * * * *". cout<<" * gotoxy(20. j. gotoxy(20. cout<<" * * * * *". i++) { if (i % 2 !=0 ) derecha(i). 5). } for (col=75. cout<<"|". void final(). col++) { delay(r). cout<<" * * ** *".i. gotoxy(col. col<=6. col<=80. gotoxy(20. } for (col=74. cout<<" * * * * *". cout<<" ". 6). gotoxy(col.fila). col--) { delay(r). gotoxy(20. j<=50. gotoxy(20.[PROGRAMACION I – C++] IDSystems 2011 . col--) { delay(r). } for (col=1. } // cambiar * por el codigo ASCII 176 (Si usas NOTEPAD++). col--) { delay(r). cout<<" ".fila).10). r=50. col++) { delay(r). gotoxy(col.fila). else izquierda(i).

system("cls"). } /* Pseudovirus.i. j<=50. system("pause"). for (j=1.h> using namespace std.[PROGRAMACION I – C++] IDSystems 2011 . } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 56 . r.1. pos). basta usar la libreria windows. //SetConsoleDisplayMode(hConsoleOutput. Ademas. //hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE). clrscr().h */ #include <iostream> #include <conio. short y) { COORD pos = {x. void final().NULL). void izquierda(int fila). } final(). En la version DevC++ no necesitamos el header CONSOLA.2013 delay(3000). return 0. r=50. } void derecha(int fila).LIB en el mismo directorio del programa para compilar MOD: 18-Feb-2013.H y la libreria asociada..h> #include <math.h y la pequena funcion al inicio. delay(1000). int col. int main(){ //HANDLE hConsoleOutput.cpp Programa que muestra un supuesto virus en la pantalla Por: LSC Sergio Hugo Sanchez. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE). se sustituye la funcion delay() por la funcion Sleep de la misma libreria windows. y}. j.h> #include <windows. else izquierda(i). NOTA: Recordar que necesitamos el archivo CONSOLA. for (i=1. i<=25. i++) { if (i % 2 !=0 ) derecha(i). j++) cout<<"---Auxilio!!! un virus al ataque al sistema ".H y CONSOLA.h> #include <dos. //Defines gotoxy() for ANSI C compilers. void gotoxy(short x.

gotoxy(20. Ademas indica lo siguiente: ¿Qué librerías incluye este programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 57 . gotoxy(20. } for (col=75. cout<<"||||||". } } //cambiar Ü por el codigo ASCII 220 (Si usas NOTEPAD++). col++) { Sleep(r). } } void izquierda(int fila) { for (col=80. col>=1. col<=6. gotoxy(col. gotoxy(20. cout<<" * * * * *". gotoxy(col. Sleep(3000). col++) { Sleep(r). cout<<" * * * * *". gotoxy(col. col>=74. col<=80. cout<<" ********** * * * *". 6). cout<<"|".12).fila). cout<<" * * * **". 9). } for (col=1. col--) { Sleep(r). gotoxy(20. col++) { Sleep(r). col--) { Sleep(r). cout<<" ". Realiza: 1) El codigo 2) El diagrama de flujo.15). gotoxy(20. col<=74. col--) { Sleep(r). Sleep(1000).fila). } Aqui veras bastantes ciclos for. cout<<"¦". gotoxy(20. gotoxy(20. Algunas instrucciones de pantalla y retardo. cout<<" ".16). gotoxy(20. cout<<" * * * *".13). Normal @ void derecha(int fila) { for (col=1.10). cout<<" * * * * *". gotoxy(20. gotoxy(col.[PROGRAMACION I – C++] IDSystems 2011 . cout<<" * * * * *". Normal * void final() { system("cls").fila). gotoxy(20. cout<<" * * ** *".14). } for (col=74. cout<<" ********** * * *". cout<<" * * * * *". cout<<" * * * * *".fila). cout<<"¦¦¦¦¦¦". 8). gotoxy(col. 5). 7). system("cls").17). gotoxy(20. cout<<" * * * * *".fila).fila). cout<<" * * * * *". gotoxy(col.2013 // cambiar * por el codigo ASCII 176 (Si usas NOTEPAD++). } for (col=9. col>=1. gotoxy(20. gotoxy(20.11).

El programa esta un poco largo. Si bien. contiene un menu inicial y la forma basica para jugarlo. En la seccion de practicas de este curso apareceran otros modelos de juego del ahorcado (incluso con graficas. 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. divirtete y si quieres modifica el programa para que acepte mas palabras una vez que te funcione. pero te gustara: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 58 .2013 ¿Qué tipos de datos estamos declarando? ¿Qué funciones propias estamos usando? Ejercicio 23 .[PROGRAMACION I – C++] IDSystems 2011 . Mientras. ahora veamos este juego un poco mas largo: el Ahorcado. es un juego sencillo ya que solo acepta 3 palabras.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. Aqui aplicaremos los temas anteriores.

CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 59 .2). int opcion_elegida. exhibe_el_menu(). int logitud_palabra_actual=0. construye_hora(). CONSOLA. } //*********************************************************** void exhibe_el_menu(void) { //clrscr(). construye_brazo_derecho().2013 prog23_ahorcado. exhibe_el_menu().cpp /*Pro23_ahorcado. getche(). construye_pie_izquierdo(). construye_brazo_izquierdo(). gotoxy(25. int longitud_de_las_palabras[num_palabras].h" #define num_palabras 3 void void void void void void void void void void void void construye_todo(). Solamente contiene 3 palabras iniciales pero puede ser agrandado hasta donde quieras. do { gotoxy(25. char palabra_actual[20].[PROGRAMACION I – C++] IDSystems 2011 . Por: LSC Sergio Hugo Sanchez NOTA: No oldivar poner el header y libreria CONSOLA. construye_cabeza().cpp Este es el juego del Ahorcado. return 0. char todas_las_palabras[20] [num_palabras].LIB en la misma carpeta */ #include #include #include #include #include <iostream. main() { opcion_elegida = 0.h> <string. printf("-----------------------------------------"). muestra_las_palabras().3).h> <stdio.h> <conio. clrscr(). int cant_de_palabras = num_palabras. captura_las_palabras(). printf("PRESIONA EL NUMERO DE LA OPCION QUE DESEE").H.h> "consola. int posicion_de_palabra_a_adivinar. construye_tronco(). construye_pie_derecho(). elegir_palabra().

printf("ELIJA LA OPCION QUE DESEE Y PULSE ACEPTAR:"). ia++) { gotoxy(5.8). printf("-"). gotoxy(25.INGRESAR LAS PALABRAS !"). clrscr(). case 2: elegir_palabra(). for (ia=0.ja. printf("!"). gotoxy(25.j.5). gotoxy(25. clrscr(). longitud_palabra_actual = strlen(palabra_actual). gotoxy(25.15). case 3: muestra_las_palabras().[PROGRAMACION I – C++] IDSystems 2011 . i+1).5). longitud_de_las_palabras[ìa] = longitud_palabra_actual.7). gotoxy(35.9).ia+10). printf("3 . ja++) todas_las_palabras[ja][ia]=palabra_actual[ja].6). cin>>palabra_actual.i+10). printf("ESCRIBA LA PALABRA NUMERO %d: ".3. ia<cant_de_palabras. i<cant_de_palabras. gotoxy(25. ja<longitud_palabra_actual. longitud_palabra_actual = longitud_de_las_palabras[i]. gotoxy(59. gotoxy(25.3.5. for (ja=0.15).4).ia+10). case 4: break. } while (opcion_elegida < 1 || opcion_elegida > 4 ).ABANDONAR EL PROGRAMA !"). gotoxy(67. j<longitud_palabra_actual.5). gotoxy(25. printf("----------------------------------------"). ia+1).2013 gotoxy(25. printf("1 . i++) { gotoxy(5. } exhibe_el_menu().JUGAR EL AHORCADO !"). printf("4 .MOSTRAS LAS PALABRAS !"). scanf("%d". printf("MENU DEL JUEGO EL AHORCADO !"). switch (opcion_elegida) { case 1: captura_las_palabras(). } } //***************************************************************** void captura_las_palabras(void) { int ia. printf("2 . j++) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 60 .&opcion_elegida). printf("PALABRA No %d: ". for (i=0. } //**************************************************************** void muestra_las_palabras(void) { int i. for (j=0.

sw=0.. for (j=0. printf("Escriba un numero entre 1 y %d y pulse enter:".3). todas_las_palabras[j][i]). gotoxy(55. cin>>letra.").4).. printf("-"). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 61 ..sw=0. l. j++) { if (todas_las_palabras[j][posicion_de_palabra_a_adivinar-1]==letra[0]) { gotoxy(j+20. } } printf("\n Pulse una tecla para continuar. gotoxy(10. getche(). } while (posicion_de_palabra_a_adivinar < 1 || posicion_de_palabra_a_adivinar > cant_de_palabras). letra[0]). } do { i++. for (l=0. j<longitud_de_palabra_a_adivinar. completa[j]= letra[0]. printf("%c". for (i=0: i<longitud_de_palabra_a_adivinar. char letra[l].4). i+10). sw=1. printf("\n Escriba una Letra y Presione <Enter>.[PROGRAMACION I – C++] IDSystems 2011 .".2013 { gotoxy(19+j. completa[20]. &posicion_de_palabra_a_adivinar). errores=0. do { gotoxy(10.j. i++) { gotoxy(i+20. cant_de_palabras). l<longitud_de_palabra_a_adivinar. clrscr().contaP=0..4). printf("%c".3). } //*************************************************************** void elegir_palabra(void) { int longitud_de_palabra_a_adivinar. int i. clrscr(). longitud_de_palabra_a_adivinar = longitud_de_las_palabras[posicion_de_palabra_a_adivinar-1]. } } contaP=0. exhibe_el_menu(). l++) { if(completa[l]==todas_las_palabras[l][posicion_de_palabra_a_adiv inar-1]) contaP++. scanf("%d".

else if (errores==6) construye_pie_izquierdo()..[PROGRAMACION I – C++] IDSystems 2011 .6). printf("|||||"). else if (errores==7) { clrscr(). errores=7. getche(). exhibe_el_menu()."). else if (errores==3) construye_brazo_derecho(). else if (errores==2) construye_tronco()."). exhibe_el_menu().10). gotoxy(38. else if (errores==5) construye_pie_derecho(). .... getch(). construye_todo(). i=longitud_de_palabra_a_adivinar.2013 } if (contaP=longitud_de_palabra_a_adivinar) { gotoxy(37. printf("\nGANASTES EL JUEGO. } else { if (sw==0) errores++. printf( "\n\n Pulse una tecla para continuar. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 62 . printf("| . } //******************************************************************** ***** void construye_cabeza(void) { gotoxy(39.7). else if (errores==4) construye_brazo_izquierdo(). |"). if (errores==1) construye_cabeza(). } } } while (i<longitud_de_palabra_a_adivinar || errores <=6). errores=4..

14). printf("|_-_|"). printf(""). } //****************************************************************** void construye_horca(void) { int i.10). printf("|"). } //******************************************************************* void construye_pie_derecho(void) { gotoxy(40. gotoxy(41.13).10). printf("|").9).4).8).12). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 63 . printf("/"). printf("|"). } //******************************************************************** void construye_brazo_derecho(void) { gotoxy(40.11). printf(":"). } //******************************************************************** *** void construye_tronco(void) { gotoxy(41. gotoxy(41. gotoxy(38.9). printf("/"). printf("/"). } //******************************************************************** void construye_brazo_izquierdo(void) { gotoxy(42. } //******************************************************************* void construye_pie_izquierdo(void) { gotoxy(42. printf("/").[PROGRAMACION I – C++] IDSystems 2011 . gotoxy(41. gotoxy(44. printf("\").9). printf("|"). gotoxy(41. printf("\").14). gotoxy(44. gotoxy(38. gotoxy(41. printf("").10).5).2013 gotoxy(38.13).

Solamente contiene 3 palabras iniciales pero puede ser agrandado hasta donde quieras. for (i=3...4). } gotoxy(50. construye_brazo_derecho(). construye_pie_izquierdo(). } void void void void void void exhibe_el_menu().cpp Este es el juego del Ahorcado. captura_las_palabras(). construye_tronco()."). i<18. printf("\nPERDISTE EL JUEGO..h> <string. Por: LSC Sergio Hugo Sanchez MOD: 18-Feb-2013 Actualizado para DevC++ */ #include #include #include #include #include <iostream> <conio. printf(":").3). gotoxy(41. construye_cabeza(). construye_cabeza(). short y) { COORD pos = {x. printf(":").h> <windows.2013 printf(":").. void gotoxy(short x.i).3).h> #define num_palabras 3 using namespace std. construye_pie_derecho().[PROGRAMACION I – C++] IDSystems 2011 . i++) { gotoxy(57. construye_todo(). construye_horca(). elegir_palabra().h> <stdio. y}. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 64 . printf(":::::::::::::::"). //Defines gotoxy() for ANSI C compilers.. pos). SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE). gotoxy(42. } /*Pro23_ahorcado.i). printf("==============="). } //******************************************************************** void construye_todo(void) { gotoxy(37. construye_brazo_izquierdo(). muestra_las_palabras().

gotoxy(25. int main() { opcion_elegida = 0. printf("1 . construye_brazo_derecho(). int posicion_de_palabra_a_adivinar=0. } //*********************************************************** void exhibe_el_menu(void) { system("cls"). printf("MENU DEL JUEGO EL AHORCADO !"). int longitud_de_las_palabras[num_palabras]. printf("----------------------------------------"). gotoxy(25.ABANDONAR EL PROGRAMA !").3.5). construye_pie_derecho(). char palabra_actual[20].7). gotoxy(25. construye_brazo_izquierdo(). int opcion_elegida=0. } while (opcion_elegida < 1 || opcion_elegida > 4 ). int cant_de_palabras = num_palabras. printf("PRESIONA EL NUMERO DE LA OPCION QUE DESEE"). case 2: elegir_palabra(). gotoxy(25. construye_pie_izquierdo(). system("cls"). char todas_las_palabras[20] [num_palabras].9). printf("3 .[PROGRAMACION I – C++] IDSystems 2011 . gotoxy(25. printf("!"). printf("ELIJA LA OPCION QUE DESEE Y PULSE ACEPTAR:"). return 0. exhibe_el_menu().INGRESAR LAS PALABRAS !"). system("pause").3.MOSTRAS LAS PALABRAS !").&opcion_elegida). switch (opcion_elegida) { case 1: captura_las_palabras().15). printf("2 .4).5). printf("-----------------------------------------").3). gotoxy(25. printf("-"). scanf("%d".JUGAR EL AHORCADO !"). construye_horca(). gotoxy(25.2013 void void void void void void construye_tronco().5). int longitud_palabra_actual=0. do { gotoxy(25.6).15). gotoxy(25. gotoxy(25.8). // // CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 65 .2). printf("4 . gotoxy(67. gotoxy(59.

ia+1). } //*************************************************************** void elegir_palabra(void) { int longitud_de_palabra_a_adivinar. gotoxy(35. } } //printf("\n Pulse una tecla para continuar. for (i=0.2013 case 3: muestra_las_palabras(). scanf("%d". l. int i. longitud_palabra_actual = longitud_de_las_palabras[i]. j<longitud_palabra_actual. for (ja=0. todas_las_palabras[j][i]). printf("ESCRIBA LA PALABRA NUMERO %d: ". i+10). cant_de_palabras). j++) { gotoxy(19+j. ia++) { gotoxy(5. for (j=0. system("cls").4). char completa[20]."). gotoxy(55. i++) { gotoxy(5. i+1). //getche().contaP=0.4). cin>>palabra_actual.j. system("cls"). char letra[1]. printf("%c".[PROGRAMACION I – C++] IDSystems 2011 . ia<cant_de_palabras. errores=0. &posicion_de_palabra_a_adivinar). } } //***************************************************************** void captura_las_palabras(void) { int ia.i+10). system("pause"). exhibe_el_menu(). ja++) todas_las_palabras[ja][ia]=palabra_actual[ja].ia+10).ia+10). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 66 . for (ia=0. printf("Escriba un numero entre 1 y %d y pulse enter:". system("cls").. } //**************************************************************** void muestra_las_palabras(void) { int i.sw=0. do { gotoxy(10.j. i<cant_de_palabras. } exhibe_el_menu(). longitud_palabra_actual = strlen(palabra_actual). printf("PALABRA No %d: ".ja. case 4: break.. longitud_de_las_palabras[ia] = longitud_palabra_actual. ja<longitud_palabra_actual.

for (l=0. } } contaP=0.. gotoxy(10. exhibe_el_menu(). printf("%c"."). } if (contaP=longitud_de_palabra_a_adivinar) { gotoxy(37. system("pause"). i=longitud_de_palabra_a_adivinar.. letra[0]). sw=1.4). printf("\n Escriba una Letra y Presione <Enter>. printf("-")..[PROGRAMACION I – C++] IDSystems 2011 ..3). l++) { if(completa[l]==todas_las_palabras[l][posicion_de_palabra_a_adiv inar-1]) contaP++. } else { if (sw==0) errores++. else if (errores==2) construye_tronco(). j++) { if (todas_las_palabras[j][posicion_de_palabra_a_adivinar-1]==letra[0]) { gotoxy(j+20. if (errores==1) construye_cabeza(). } while (posicion_de_palabra_a_adivinar < 1 || posicion_de_palabra_a_adivinar > cant_de_palabras). j<longitud_de_palabra_a_adivinar. errores=4. for (j=0. cin>>letra.2013 system("cls").. for (i=0. completa[j]= letra[0]. else if (errores==3) construye_brazo_derecho(). i++) { gotoxy(i+20. i<longitud_de_palabra_a_adivinar. else if (errores==4) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 67 . l<longitud_de_palabra_a_adivinar. printf("\nGANASTES EL JUEGO.3). longitud_de_palabra_a_adivinar = longitud_de_las_palabras[posicion_de_palabra_a_adivinar-1]. sw=0.10)."). } do { i++.

10).. gotoxy(41. } } } while (i<longitud_de_palabra_a_adivinar || errores <=6). else if (errores==7) { system("cls"). printf("/").9).2013 construye_brazo_izquierdo(). gotoxy(41. else if (errores==5) construye_pie_derecho(). } //******************************************************************** void construye_brazo_derecho(void) { gotoxy(40. exhibe_el_menu(). gotoxy(38. printf("|"). printf("|"). errores=7. printf("|"). printf("|||||"). //getche(). gotoxy(38. .8).11).. gotoxy(38. printf("|_-_|"). //printf( "\n\n Pulse una tecla para continuar.12).6).10). construye_todo().[PROGRAMACION I – C++] IDSystems 2011 . printf("|"). } //******************************************************************** ***** void construye_cabeza() { gotoxy(39. system("pause"). } //******************************************************************** *** void construye_tronco(void) { gotoxy(41.7)."). else if (errores==6) construye_pie_izquierdo(). |"). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 68 .9). printf("| . gotoxy(41.

i). i++) { gotoxy(57. printf("/"). } gotoxy(50. } //******************************************************************* void construye_pie_derecho(void) { gotoxy(40. printf(":").13). gotoxy(44. printf("*"). construye_brazo_derecho(). gotoxy(41. for (i=3. gotoxy(42.i).14).3). } //****************************************************************** void construye_horca(void) { int i.13). construye_pie_izquierdo(). printf("/")."). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 69 . printf("==============="). construye_horca().10).[PROGRAMACION I – C++] IDSystems 2011 . } //******************************************************************** void construye_todo(void) { gotoxy(37.. printf("*").5). printf("*").4).3)..2013 printf("/").. } //******************************************************************** void construye_brazo_izquierdo(void) { gotoxy(42. i<18. printf("*"). gotoxy(38. gotoxy(41. construye_brazo_izquierdo().9)... construye_pie_derecho(). printf(":::::::::::::::"). printf("\nPERDISTE EL JUEGO. gotoxy(44.14). printf(":"). printf(":"). gotoxy(41. } //******************************************************************* void construye_pie_izquierdo(void) { gotoxy(42. printf(":").4).

[PROGRAMACION I – C++] IDSystems 2011 - 2013
construye_tronco(); construye_cabeza(); }

DevC++ con WimbGi m

/* Dev_prog23bG Juego del Ahorcado de manera grafica

Gracias a: TRABAJO FINAL DE COMPUTACION PAZ CARDENAS ISRAEL EDSON ESCOBAR CHAINA PABLO WILSON MEDRANO AROSQUETA FREDDY (creadores originales) */ #include #include #include #include #include <iostream> <stdlib.h> <stdio.h> <String.h> <winbgim.h>

using namespace std; int main() { int x=20; system("color e1"); char texto[20]; cout<< "\n"; cout<< "\n"; cout<< " ===== JUEGO DEL AHORCADO ===== \n"; cout<< "\n"; cout<< "\n"; cout<< " ===== Escriba la palabra que desea adivinar ? ===== \n"; cout<< "\n"; cout<< "\n"; cin>> texto; cout<< "\n"; int n=strlen(texto); char otro[n]; for (int i=0;i < n;i++) { otro[i]='-'; } char letra[2]; int ce=0, completa=0, encontrado; initwindow(300,300); setcolor(4); settextstyle(0,0,2); outtextxy(20,250,"= EL AHORCADO ="); outtextxy(50,30,otro); while (ce < 5 && completa==0) { cout<< " Escriba la letra para completar la palabra ? \n"; cout<< "\n"; cin>> letra; encontrado=0;

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 70

[PROGRAMACION I – C++] IDSystems 2011 - 2013
for (int i=0;i < n;i++) { if(texto[i]==letra[0]) { encontrado=1; otro[i]=letra[0]; cout<< "\n"; cout<< " Letra acertada "; cout<< "\n"; } } if(encontrado==0) { ce++; switch(ce) { case 1: circle(100,90,20); break; case 2:line(100,110,100,180); break; case 3: line(100,125,65,170); line(100,125,135,170); break; case 4: line(100,180,60,220); line(100,180,140,220); break; case 5: line(100,120,140,120); line(140,120,140,50); line(140,50,45,50); line(45,50,45,240); line(45,240,160,240); setcolor(2); line(90,80,110,100); line(90,100,110,80); outtextxy(10,250," PERDEDOR !!!! "); break; } } completa=1; for (int i=0;i < n;i++) { if(otro[i]=='-') { completa=0;} } cout<< otro <<endl; outtextxy(50,30,otro); } system("pause"); closegraph(); return 0; }

NOTA: Recuerda que algunas funciones de este programa son una emulacion de la biblioteca original conio.h de Borland C++, por lo que deberas incluir el archivo header CONSOLA.H y la libreria CONSOLA.LIB, si es que trabajas en MS Visual C++ 6.0 o MS Visual C++ 2008 Express.

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 71

[PROGRAMACION I – C++] IDSystems 2011 - 2013 Ademas, compara que el codigo para DevC++ no utiliza la librería consola.h y en su defecto utiliza la librería windows.h. Este programa tiene errores de manera intencional para las versiones de Visual C++ y DevC++. Descubrelos y da una solucion, ademas: Se ha incorporado otro codigo del ahorcado de manera grafica utilizando la librería wimbgim.h. Para lo cual buscala en internet o pidela a tu profesor. Deberas instalar esta librería para tu compilador DevC++, y crear un proyecto nuevo bajo Console Graphics Application, en lugar de Console Application tradicional. Una vez hecho esto, teclea el codigo correspondiente y compila. 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?

¿Cuáles son los nuevos comandos de C, que se incluyen en este programa?

¿Qué tipos de datos se declaran en este

CUADERNO DE EJERCICIOS Y PRACTICAS C++

Página 72

2013 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? Ejercicio 24 . Mosqueda */ #include <stdio. Prueba hacer el codigo siguiente en MS Visual C++ prog24_hanoi. En este juego.Juego Las Torres de Hanoi Generalmente para probar el tema de la recursividad se aplica el ejercicio del juego de las torres de Hanoi.h> #include <conio.h> #define BG_BLACK (0) #define FG_RED (12) #define FG_BLUE (9) #define FG_WHITE (15) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 73 . de tal forma que queden acomodados de menor a mayor hacia abajo como estaban en el poste 1.h> /* include <windows. el usuario tiene que mover unos aros que estan desde el poste 1 hasta el poste 3.h> #include <math.cpp Programa de la Torre de Hanoi Por: Enrique R. pasando a veces por el poste 2.cpp /*prog24_hanoi.[PROGRAMACION I – C++] IDSystems 2011 .

C\n").a. printf("\n\n Con %d DISCOS %d". FillConsoleOutputCharacter(hStdOut. frompeg. a=0. GetConsoleScreenBufferInfo(hStdOut. printf("\n\tEl resultado es el mismo => %d". DWORD count. hStdOutPut = INVALID_HANDLE_VALUE. BG_BLACK | FG_RED). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 74 . a). &count). c=pow(2. SetConsoleTextAttribute(hStdOutput.Y. return. a). frompeg. " HACIA ". topeg. printf("\n\ty usando la funcion POW(2. char. void main() { //clsscr(). printf("\n\tpara jugar con los colores solo activen las funciones").'B'. topeg). printf("Digite el 0 para salir del sistema. n. }*/ void Towers( int. b=0. getch(). printf("\n\n\n\tnota: estas variables solo alcanzan para 30 discos"). int n=0. c). n. c=0. CONSOLE_SCREEN_BUFFER_INFO csbi. } a=a+1.[PROGRAMACION I – C++] IDSystems 2011 . printf("\n%s%d%s%c%s%c". printf("\n\n\t\tTORRE DE HANOI\n"). scanf("%d". coord. n. char topeg.'A'.2013 #define FG_GREEN (2) */ //void clrscr() /* { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). Towers( n. //SetConsoleTextAttribute(hStdOutput.dvSize. printf("las torres estan representadas como A. printf("CREADO POR ENRIQUE RADHAMES MOSQUEA MARTINEZ\n"). hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE). char).c). auxpeg. printf("\n\tEl numero de Dias es => %d". Towers( n-1.n)-1.0}.X * csbi.&n). auxpeg. "\t\t\t DISCO ".'C').\n"). frompeg. Towers( n-1.a. } /* juego del sistema */ void Towers( int n. printf("Digite la cantidad de Discos ===> ". printf("\n\tque estan como comentarios. c=((a+b)-1). char auxpeg ) { /* HANDLE hStdInput = INVALID_HANDLE_VALUE. */ if (n==1) { b=b+2. topeg. BG_BLACK | FG_BLUE ). printf( "\n%s%d%s%c%s%c". hStdInput = GetStdHandle(STD_INPUT_HANDLE). topeg). ' '. c*=a+b.a. char."). c). " DESDE ". frompeg.n)-1"). csbi. &csbi). "\t\t\t DISCO ". " HACIA ". char frompeg. coord). printf("\nEspero que les guste "). COORD cor = {0. SetConsoleCursorPosition(hStdOut.n). int.dvSize. " DESDE ". int a.B.

ve a la seccion de BIBLIOTECA\DESCARGAS y baja el archivo de HANOIG (BORLAND). Y despues. NOTA: En ambos es posible que solo veas a la computadora jugar. BG_BLACK | FG_BLUE ). solo hay que cambiar unas lineas que esperamos ya hayas identificado.2013 //SetConsoleTextAttribute(hStdOutput. ¿Podrias modificar el programa para que tu seas el que haga los movimientos? Es un buen reto.[PROGRAMACION I – C++] IDSystems 2011 . =) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 75 . } Para la version DevC++. Este ultimo programa esta escrito en Borland C++ y utiliza bibliotecas graficas de MSDOS. para que ejecutes el ejecutable.

2013 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 76 .[PROGRAMACION I – C++] IDSystems 2011 .

[PROGRAMACION I – C++] IDSystems 2011 . usamos solamente el compilador DevC++. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 77 .2013 PARTE III ARREGLOS Y ESTRUCTURAS A partir de aquí.

c3 ). c0=0. %d. c2. } printf( "Resultado Contadores:%d. usando arrays: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 78 . c1=0. %d \n\n".2013 Ejercicio 25 – Arreglos Realiza la siguiente practica.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. if (num == 3) c3++. %d. if (num == 1) c1++. &num). printf("El siguiente programa cuenta en numero de apariciones de los numeros 0 al 3\n"). tecleando los siguientes programas para que veas el funcionamiento de los arreglos. 1. printf("Para finalizar el ciclo.cpp /* prog24 . scanf("%d". c3=0. } Y ahora basado en el mismo concepto de contar numeros. c1. printf("Por lo que se te preguntara por un numero. if (num == 2) c2++.[PROGRAMACION I – C++] IDSystems 2011 . c2=0. 2 y 3 en una secuencia de enteros acabada en -1. while (num != -1) { if (num == 0) c0++.Ejemplo de vectores */ #include <stdio. teclea -1 y te apaceran los resuñtados \n\n"). */ int main() { int num. teclealo y pulsa ENTER \n"). return 0. &num ). Primero un programa que cuenta los numeros sin usar arrelgos: prog24_vectores. scanf( "%d". c0.

cont[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. } for (i= 0. cont[MAX]. for (i= 0. i. i++) printf( "Contador [%d] = %d \n\n". i< MAX. printf("Por lo que se te preguntara por un numero. scanf( "%d". &num2). teclea -1 y te apaceran los resuñtados \n\n").h> #define MAX 100 int main() { int i. scanf("Numero %d". como era de esperar. num2. } 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 79 . while (num2 != -1) { if ((num2 >= 0) && (num2 <= MAX)) cont[num2]++. return 0. teclealo y pulsa ENTER \n"). &num2 ).2013 prog30_vectores.cpp /* Pro30 . i++) cont[i] = 0. se halla en el uso de vectores.[PROGRAMACION I – C++] IDSystems 2011 . printf("Para finalizar el ciclo. printf("El siguiente programa cuenta en numero de apariciones de los numeros 0 al 3\n"). i< MAX. Veamoslo en el siguiente codigo que llama a la funcion: */ #include <stdio.

a++) for (b= 0. que interrumpe el programa y espera a que el usuario presione una tecla. tabla_random[a][b][c] ). } } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 80 . b< DIM.cpp /* Prog31 . Tambien se ha usado la funcion getchar (stdio. */ for (a= 0.h). c++) tabla_random[a][b][c] = rand(). printf( "%d". c < DIM. a. Para generar numeros aleatorios se usa la funcion rand de la libreria estandar stdlib. b. a< DIM. */ #include <stdio.h. c ). c< DIM.h> #define DIM 10 void main() { int tabla_random [DIM][DIM][DIM]. c.h> #include <stdlib. b < DIM. c++) { printf( "\n\n tabla[%d][%d][%d] = ". b++) { for (c= 0.[PROGRAMACION I – C++] IDSystems 2011 . a. for (a= 0. el programa utiliza una tabla de 3 dimensiones para almacenar 1000 numeros aleatorios. a< DIM.2013 ¿Por qué cambiaron las instrucciones para los ciclos? Ejercicio 26 Ahora un ejercicio para aprender sobre arrays multidimensionales: prog31. /* Muestra series de DIM en DIM elementos. } printf( "\n\nPulse ENTER para seguir" ). a++) for (b= 0. b++) for (c= 0. b.Arrays multidimensionales El siguiente ejemplo muestra el empleo de una tabla multidimensional. getchar(). Concretamente.

2013 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 81 .[PROGRAMACION I – C++] IDSystems 2011 .

c=' '. pal.cpp /* Prog32 . cad2[80].". if (strcmp(pal. scanf( "%s". palfrase.cpp /* Prog33 . &c ). convierte las letras minusculas en mayusculas y viceversa. } Y tambien este otro: prog33.2013 Ejercicio 27 – Cadenas Para repasar los temas.h> #include <string. Dicha funcion devuelve 0 en caso de que las cadenas comparadas sean iguales */ #include <stdio. palfrase) == 0) total++. las concatena. while (c != '\n') { scanf( "%s%c". pal ). /* Una palabra de la frase.Ejemplo de cadenas El siguiente programa cuenta el numero de veces que se repite una palabra en una frase. */ char c.Otro ejemplo de cadenas A continuacion se muestra otro ejemplo que hace uso de las cadenas de caracteres.[PROGRAMACION I – C++] IDSystems 2011 . */ #include <stdio. printf( "\nPALABRA:" ). El programa emplea la funcion de comparacion de cadenas strcmp. printf( "\nFRASE:" ). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 82 .h> #define MAXLIN 100 void main() { char pal[MAXLIN]. } printf( "\nLa palabra %s aparece %d veces.h> void main() { char cad1[80]. cad3[160]. int total = 0. El programa lee dos cadenas de caracteres. /* La que buscamos. y finalmente escribe la cadena resultante. total ). */ char palfrase[MAXLIN].h> #include <string. realiza estos dos programas: prog32.

while (cad3[i] != '\0') { if ((cad3[i] >= 'a') && (cad3[i] <= 'z')) cad3[i] -= delta. } 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 83 .2013 int i. gets(cad1). delta = 'a' . minuscula */ i++. strcat( cad3.[PROGRAMACION I – C++] IDSystems 2011 . delta.'A'. i = 0. } printf( "La cadena resultante es: %s \n". /* Convierte a mayuscula */ else if ((cad3[i] >= 'A') && (cad3[i] <= 'Z')) /* Convierte a cad3[i] += delta. cad2 ). cad1 ). /* cad3 = cad1 + cad2 */ strcpy( cad3. cad3 ). printf( "Introduzca la segunda cadena:\n" ). gets( cad2 ). printf( "Introduzca la primera cadena:\n" ).

4e2 }.'n'. { 'b'. 55555 }. static struct { char c. = { 'c'. = "cadena". 22. { 'c'. 2.2.'e'.h> void main() { int i.4. 3. static struct { int i.cpp /* ej4.22. int i.Arreglos y cadenas Para repasar la leccion anterior sobre los arrays.'a'.[PROGRAMACION I – C++] IDSystems 2011 . //Ahora inicializamos las estructuras de datos static int a[2][5] = { { 1.55555. 2 }.c Inicializacion y manejo de "arrays". // Comenzamos con las cadenas CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 84 .4444. { { 'd'. inicializamos los int enteros [5] = char cadena1 [16] char cadena2 [16] arrays. tanto de numeros como de cadenas { 3. float s.'d'.'\0' }.1415e4}. 5e3 }}. { 5. 1. 2. */ # include <stdio.'a'.5. 3. 333. 4. static char *c = "cadena". static int b[2][5] = { 1. 3. 3e3 }. cadenas y estructuras. 1. 4.5e4 }. stb = { 2. 7. //Aqui pondremos los resultados de dichos arrays y estructuras.3. //Aqui static static static j. } sta = { 1.333.1 }. realiza el siguiente ejercicio para que veas como se determinan y que resultados muestran: prog23_arrays. 1 } }. 4444. float x. 6e2 }. 1. 5.2013 ¿Cómo se declaran las variables en ambos programas y por que de esa manera? Ejercicio 28 .} }. } st [2][3] = { {{ 'a'.

st[i][j]. i<2.2013 printf ("enteros:\n"). } Responde a lo siguiente: Que variables declaramos en este programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 85 . ++i) for (j=0. st[i][j]. ++j) printf ("%c %d %f\n". printf ("c:\n"). printf ("%s\n\n".[PROGRAMACION I – C++] IDSystems 2011 . printf ("b:\n"). a[i][j]). st[i][j]. i<5. cadena1). printf ("%s\n\n". cadena2). //Ahora mostremos las estructuras de datos de numeros for (i=0. ++j) printf ("%d ". for (i=0. printf ("\n\n").i. printf ("cadena1:\n"). enteros[i]). printf ("\n\n"). printf ("cadena2:\n").c. ++i) for (j=0.i.x). ++i) for (j=0. j<5. printf ("st:\n"). ++j) printf ("%d ". //Que nos muestra las variables enteros en este ciclo? for (i=0. j<3. printf ("a:\n"). printf ("%d %f \n\n". i<2. printf ("%s\n\n". j<5. for ( i=0. i<2. sta. sta. b[i][j]). ++i ) printf ("%d ".s). printf("\n\n"). printf ("sta:\n"). c).

2013 Que funcion tienen la instruccion static? Cual es la descripcion del formato que usa la funcion printf? Ejercicio 29 . while (ch=='Y' || ch =='y') { for (m=0. //={0} void playbox(void). int main() { int m. char ch='y'.j. Teclea el codigo siguiente y ejecutalo. n++) matrix[m][n]='\0'.h> char matrix[3][3]. ademas tendras que traducirlo porque los mensajes estan en ingles. m++) for (n=0. while (sum<10) CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 86 . sum=0.cpp #include <iostream. para aprender un poco mas sobre las matrices y ver su aplicacion.h> #include <conio. Que te diviertas!!! prog35_juegogato.h> #include <stdlib.[PROGRAMACION I – C++] IDSystems 2011 . n<3.Juego del Gato (Tic-Tac-Toe) A continuacion se presenta el juego del gato o Tres en raya (Tic-Tac-Toe en ingles). int i. n. m<3.

but you gotta choose another place. cin>>j.[PROGRAMACION I – C++] IDSystems 2011 . cout<<"Coumn : ". playbox(). sum++. for (.i>3 || i<1 || j>3 || j<1 || ('X'==matrix[i-1][j-1] ||'O'==matrix[i-1][j-1]).) { cout<<"Sorry boy. cin>>i.\n".i>3 || i<1 || j>3 || j<1 || ('X'==matrix[i-1][j-1] ||'O'==matrix[i-1][j-1]). } // player 2's turn cout<<"Player 2 is 'O': choose the row and column "<<endl.2013 { if (sum==0) playbox(). cout<<"Row : ". you both stink!!!"<<endl. cout<<"Coumn : ".\n". but you gotta choose another place. cin>>j. cin>>i. cout<<"Row : ". cin>>j.) { cout<<"Sorry boy. cin>>i. cout<<"Row : ". } matrix[i-1][j-1]='X'. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 87 . cout<<"Column : ". cout<<"Player 1 is 'X': choose the row and column"<<endl. break. for (. //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. hahaha.

return 0. } } /****************************/ void playbox(void) { //the play box cout<<"\n\t\t 1 cout<<"\t\t 1 "<<matrix[0][1]<<" | "<<matrix[0][2]. sum++. cin>>j. "<<matrix[1][0]<<" | ---|---|---\n".2013 cout<<"Row : ". cout<<"\t\t cout<<"\t\t 2 "<<matrix[1][1]<<" | "<<matrix[1][2].[PROGRAMACION I – C++] IDSystems 2011 . //the play box playbox(). "<<matrix[0][0]<<" | ---|---|---\n". } matrix[i-1][j-1]='O'. } 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] . 2 3\n"<<endl. } system("PAUSE"). cin>>i. "<<matrix[2][0]<<" | CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 88 . cout<<"Column : ". //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. cout<<"\t\t cout<<"\t\t 3 "<<matrix[2][1]<<" | "<<matrix[2][2].N)\n".

¿Cuáles son? ¿Cuál es la solucion a los errores presentados? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 89 .[PROGRAMACION I – C++] IDSystems 2011 .2013 Responde a lo siguiente: ¿Por que este juego implementa arreglos? ¿Que tipo de arreglos usa este programa? Este programa contiene errores de manera intencional.

for (i= 0. &tabla. gets( tabla. creando el codigo necesario para que imprima los resultados capturados que se almacenaron en la estructura de la tabla. }. i< tabla.2013 Ejercicio 30 – Estructuras Realiza el siguiente ejemplo de manejo de estructuras: prog34_estruc.Ejemplo de estrucutras */ #include <stdio.h> struct datos { char nombre[20]. struct datos persona[100].persona[i]. i++) { printf( "\nNombre: " ).nombre ). gets( tabla.persona[i].apellido ). 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 90 . void main() { int i. printf( "\nApellido: " ). struct tablapersonas tabla. completalo. &tabla. long int dni.cpp /* Prog34 . struct tablapersonas { int numpersonas. scanf( "%d". //scanf( "%ld". }. } // Ahora hay que realizar el codigo para imprimir los resultados de la tabla } Y una vez terminado.dni ).[PROGRAMACION I – C++] IDSystems 2011 . printf( "Numero de personas: " ).numpersonas ).numpersonas. char apellido[20].persona[i]. //printf( "\nRFC: " ).

2013 ¿Qué es una estructura? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 91 .[PROGRAMACION I – C++] IDSystems 2011 .

&csbi). El programa ademas.&m. 0}. scanf("%d". } (d<=20) ? printf("\nSu signo es CAPRICORNIO. printf("Introduzca su mes de nacimiento: "). prog36_zodiaco.dwSize. while ( (d>31) || (d != (d)) ){//!= esta sentencia es diferente de{ printf("Introduzca dia(ENTRE 1 Y 31): "). coord.&d. ' '. } void main() { int salir. 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.&d. esta basado en instrucciones condicionales IF…ELSE. coord).h> void clrscr()/*Creando funcion para limpiar pantalla. GetConsoleScreenBufferInfo(hStdOut.&m."\n")./*Llamando la funcion para limpiar pantalla. SetConsoleCursorPosition(hStdOut."\n").\n\n"):printf("\nSu signo es ACUARIO.d = 0. while(salir==0){ clrscr(). DWORD count.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). while ((m > 12) || (m < 1)){ printf("Introduzca su mes de nacimiento(DE 1 A 12): "). csbi.cpp /*Este programa muestra el signo zodiacal de una persona.h> #include <math. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 92 .X * csbi. CONSOLE_SCREEN_BUFFER_INFO csbi.dwSize.\n\n"). COORD coord = {0.*/ short unsigned int m.Y.[PROGRAMACION I – C++] IDSystems 2011 .h> #include <windows.*/ //muestra el signo zodiacal #include <STdio. scanf("%d". } if (m==1){ printf("Introduzca su dia de nacimiento: "). scanf("%d". Este ya es un ejercicio resuelto en donde veras algunas instrucciones nuevas para construir una funcion que borre la pantalla."\n"). FillConsoleOutputCharacter(hStdOut. salir=0.2013 Practica/Ejercicio 1 – Zodiaco Ahora teclea el siguiente programa que te dice el signo zodiacal de una persona. &count)."\n").saliryesno. scanf("%d".

} CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 93 ."\n").\n\n"):printf("\nSu signo es ARIES.&d.\n\n").&d. scanf("%d"."\n"). scanf("%d". } else{ if(m==6){ printf("Introduzca su dia de nacimiento: "). scanf("%d".&d. while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). scanf("%d". while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). scanf("%d". while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").&d.[PROGRAMACION I – C++] IDSystems 2011 . } (d<=20) ? printf("\nSu signo es ARIES."\n"). scanf("%d". } else{ if(m==4){ printf("Introduzca su dia de nacimiento: "). while ( (d>29) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 29): "). } (d<=20) ? printf("\nSu signo es PISCIS.\n\n"). } (d<=21) ? printf("\nSu signo es TAURO."\n").\n\n").&d. scanf("%d". scanf("%d".\n\n"). while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").&d."\n").\n\n"):printf("\nSu signo es TAURO. } else{ if(m==3){ printf("Introduzca su dia de nacimiento: ").&d."\n"). scanf("%d"."\n")."\n")."\n"). } (d<=19) ? printf("\nSu signo es ACUARIO.&d. scanf("%d".&d."\n").\n\n"):printf("\nSu signo es GEMINIS.&d.2013 } else{ if(m==2){ printf("Introduzca su dia de nacimiento: ").\n\n"):printf("\nSu signo es PISCIS. } else{ if(m==5){ printf("Introduzca su dia de nacimiento: ").

"\n"). scanf("%d".&d."\n"). while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").&d.[PROGRAMACION I – C++] IDSystems 2011 . } else{ if(m==9){ printf("Introduzca su dia de nacimiento: "). } else{ if(m==8){ printf("Introduzca su dia de nacimiento: ").&d. while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ")."\n").&d. scanf("%d"."\n").\n\n"):printf("\nSu signo es LIBRA.&d.&d."\n")."\n").\n\n"). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 94 . scanf("%d". scanf("%d". while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").&d."\n").\n\n").\n\n"):printf("\nSu signo es CANCER. } (d<=23) ? printf("\nSu signo es CANCER.\n\n"):printf("\nSu signo es VIRGO. scanf("%d".\n\n"):printf("\nSu signo es LEO.\n\n").\n\n"). } else{ if(m==10){ printf("Introduzca su dia de nacimiento: "). } (d<=23) ? printf("\nSu signo es LEO. } else{ if(m==7){ printf("Introduzca su dia de nacimiento: "). scanf("%d".2013 (d<=21) ? printf("\nSu signo es GEMINIS. } (d<=23) ? printf("\nSu signo es LEO. scanf("%d". while ( (d>31) || (d != (d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").

} (d<=22) ? printf("\nSu signo es ESCORPION.&d.&d. } else{ if(m==12){ printf("Introduzca su dia de nacimiento: "). scanf("%d".2013 scanf("%d"."\n").\n\n"). scanf("%d".&d. scanf("%d".\n\n"):printf("\nSu signo es SAGITARIO."\n"). while ( (d>30) || (d!=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): ").\n\n") : printf("\nSu signo es ESCORPION. while ( (d>31) || (d !=(d)) ){ printf("Introduzca dia(ENTRE 1 Y 31): "). } (d<=21) ? printf("\nSu signo es SAGITARIO.\n\n"):printf("\nSu signo es CAPRICORNIO.\n\n"). scanf("%d". } } } } } } } } } } } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ")."\n"). CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 95 .&d.\n\n"). scanf("%d".[PROGRAMACION I – C++] IDSystems 2011 ."\n").&d. } (d<=23) ? printf("\nSu signo es LIBRA. } else{ if(m==11){ printf("Introduzca su dia de nacimiento: ").&saliryesno)."\n").

Generalmente.h> void clrscr()/*Creando funcion para limpiar pantalla. csbi. prog37_califeu.*/ int a. while(salir==0){ clrscr()./*Llamando la funcion para limpiar pantalla.X * csbi.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE).2013 if(saliryesno==1){ salir=1.dwSize. DWORD count. para este tipo de programas se utilizan muchas condicionales. SetConsoleCursorPosition(hStdOut. Primero se debe mostrar una tabla de equivalencias y luego preguntara la calificacion. Este tipo de programas se utilizan en el ambito escolar para saber las calificaciones de los alumnos. GetConsoleScreenBufferInfo(hStdOut. 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. &csbi). El programa preguntará al usuario su nota y transformará ese resultado al equivalente en el Standard Grading System.dwSize. float nota. } } } ACTIVIDAD Realiza el mismo programa pero usando sentencias SWITCH y una modificacion para hacer el algoritmo mas simple.*/ #include "stdio.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.[PROGRAMACION I – C++] IDSystems 2011 . printf("\n\t\t\tNOTAS\t\tEQUIVALENTE\n"). También el programa dará una pequeña pero valiosa recomendación al usuario respecto a su nivel de estudio y calidad como estudiante. 0}. coord). CONSOLE_SCREEN_BUFFER_INFO csbi. } void main() { int salir. coord. ' '.saliryesno.h" #include <windows. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 96 . COORD coord = {0. FillConsoleOutputCharacter(hStdOut. &count). salir=0.Y. El resultado sera el equivalente a la notacion americana.

printf("\t\t 7.0 .5 .2013 printf("\t\t 9.9\t\t C+\n").9\t\t B+\n"). } else{ if(nota>=6){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: D\n").5){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: C+\n"). printf("RECOMENDACIONES: Usted esta dentro del promedio. } } if(nota>=9){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: A\n"). a=0. printf("RECOMENDACIONES: Muy bien. un pequeno descuido \nlo pone en problemas. su nivel es impresionante.\n\n"). pero trate elevar su promedio. printf("RECOMENDACIONES: Bien.4\t\t B\n").0 . si continua asi usted es un genio.8.7.0\t\t A\n").5){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: B+\n"). printf("\t\t 0.6.6.[PROGRAMACION I – C++] IDSystems 2011 . trate de no bajar. printf("\t\t 6.\n\n"). while(a==0){ printf("\nIntroduzca su nota en Programacion II: ").8.4\t\t C\n"). } else{ if(nota>=8. scanf("%f". if(nota<0 || nota>10){ /*a sigue valiendo cero y no se sale del ciclo*/ } else{ a=1. } else{ if(nota>=8){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: B\n"). } else{ if(nota>=7.&nota).7. printf("RECOMENDACIONES: Usted la va pasando. } else{/*nota mayor que cero pero CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 97 .\n\n"). printf("\t\t 7.5 . printf("RECOMENDACIONES: Excelente.0 .0 .\n\n").\n\n"). su nivel es muy bueno. printf("\t\t 8.\n\n"). } else{ if(nota>=7){ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: C\n"). printf("RECOMENDACIONES: Usted esta en la cuerda floja.0\t\t F\n"). printf("\t\t 8.10.9\t\t D\n").0 .

h> void clrscr()/*Creando funcion para limpiar pantalla.&saliryesno). asi como la logica de construccion. cambiando las sentencias condicionales IF. Tambien podrias usar un archivo externo para leer la informacion de equivalencias o la informacion de calificaciones de un alumno.\n\n"). } } } ACTIVIDAD Realiza el mismo programa.h" #include <windows. 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. El ejercicio ya esta escrito por lo que deberas leer y entender los comentarios al principio.2013 menor que 6.*/ #include "STdio. COORD coord = {0. GetConsoleScreenBufferInfo(hStdOut.*/ printf("\nNOTA EQUIVALENTE EN STANDARD GRADING SYSTEM: F\n"). Este tipo de programas se usa mucho en sistemas administrativos de nominas o recursos humanos prog38_sueldos. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 98 . 0}. 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. &csbi).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. o si el trabajador ganó exáctamente lo mismo por horas extras que por horas de oficina. } } } } } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). if(saliryesno==1){ salir=1.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). CONSOLE_SCREEN_BUFFER_INFO csbi.. printf("RECOMENDACIONES: Su nota sinceramente es mala. DWORD count.ELSE por SWITCH para hacer el programa mas corto. scanf("%d". busque nuevas \ntecnicas de estudio.[PROGRAMACION I – C++] IDSystems 2011 .

&horas_trab). pago_extra50=(horas_trab50*(1. scanf("%d".2013 FillConsoleOutputCharacter(hStdOut. float pago_base.suma_base). if(saliryesno==1){ CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 99 .2f\n". ' '.X * csbi.suma_extra. } else{ if(suma_extra==suma_base){ printf("EL TRABAJADOR GANO EL MISMO SALARIO POR HORAS EXTRAS QUE POR HORAS DE OFICINA\n\n"). coord.horas_trab50. printf("EL SALARIO DEL TRABAJADOR POR HORAS DE OFICINA ES: $%.pago_extra.pago. pago_doble=(horas_doble*(2. &count).&horas_trab25). printf("\t 4:00 PM .25)*pago).50)*pago). printf("\t 12:00 AM . suma_extra=(pago_extra25+pago_extra50+pago_doble). coord). if (suma_extra>suma_base){ printf("\nEL TRABAJADOR GANO MAS DINERO POR HORAS EXTRAS QUE POR HORAS DE OFICINA\n\n").sueldo _total.12:00 AM\t 50 POR CIENTO EXTRA\n"). scanf("%d".8:00 PM\t 25 POR CIENTO EXTRA\n"). printf("\nEL PAGO TOTAL QUE RECIBIRA EL TRABAJADOR ES: $%.&pago). printf("SUELDO BASE POR HORA TRABAJADA: "). SetConsoleCursorPosition(hStdOut. printf("Numero de horas trabajadas de 4:00 pm a 8:00 pm: "). printf("\t 8:00 AM .dwSize.pago_extra25.[PROGRAMACION I – C++] IDSystems 2011 .*/ printf("\n\t\tHORARIO\t\t\t PAGO \n\n").dwSize.horas_doble. pago_base=(horas_trab*pago).2f\n".horas_trab25. suma_base=pago*horas_trab. int horas_trab. printf("Numero de horas trabajadas de 8:00 pm a 12:00 am: "). while(salir==0){ clrscr(). scanf("%f". printf("\t 8:00 PM . scanf("%d".pago_doble. pago_extra25=(horas_trab25*(1. printf("\nNumero de horas trabajadas de 8:00 am a 4:00 pm: ").sueldo_total).8:00 AM\t\tPAGO DOBLE\n\n")./*Llamando la funcion para limpiar pantalla. printf("Numero de horas trabajadas de 12:00 am a 8:00am: ").0)*pago).suma_extra). } } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). } else{/*pago_base es mayor que suma_extra*/ printf("EL TRABAJADOR GANO MAS DINERO POR HORAS DE OFICINA QUE POR HORAS EXTRA\n\n").4:00 PM\t\tPAGO BASE\n").2f\n\n". csbi.&horas_trab50).pago_extra50. printf("EL SALARIO DEL TRABAJADOR POR HORAS EXTRAS ES: $%.&horas_doble). scanf("%d".suma_base. sueldo_total= suma_extra+pago_base.&saliryesno). salir=0.saliryesno. scanf("%d". } void main() { int salir.Y.

00.dwSize. 0}.[PROGRAMACION I – C++] IDSystems 2011 . ' '. manejo de tablas. } void main() { CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 100 . De tal forma. Es un interesante ejemplo para ver nuevamente la funcion aleatoria. el programa genera de forma aleatoria un número entero del cero al cinco.dwSize.h> void clrscr()/*Creando funcion para limpiar pantalla.Y. coord). sí se aplicará un descuento determinado según la tabla que aparecerá. } } } 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. 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. condicionales. FillConsoleOutputCharacter(hStdOut.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE). &count). CONSOLE_SCREEN_BUFFER_INFO csbi.2013 salir=1. que de manera aleatoria le tocara una bola de un color y dicho color tendra asociado un descuento para los productos que compre. no hay descuento.h> #include <stdlib. csbi. Si la cantidad es inferior a $100. GetConsoleScreenBufferInfo(hStdOut. DWORD count. pero si es uno de los otros cuatro colores.h> #include <windows. Este tipo de programa es util en el area de ventas de un negocio. &csbi).X * csbi. el programa dirá que el cliente no aplica a la promoción.*/ #include <stdio. COORD coord = {0. prog39_promocion. Si la bola aleatoria es color blanco. de manera que el programa mostrará un nuevo valor a pagar luego de haber aplicado el descuento. coord. y ese descuento se aplicará sobre el total de la compra que introdujo inicialmente el usuario.h> #include <time.00.cpp /*Este programa pide primeramente la cantidad total de compras de una persona. SetConsoleCursorPosition(hStdOut. Pero si la persona ingresa una cantidad en compras igual o superior a $100.

/*Llamando la funcion para limpiar pantalla. } else{ if(random==2){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AZUL\n\n").&gasto. scanf("%f".2f\n\n".2f\n\n". printf("\n\t\t COLOR\t\t DESCUENTO\n\n")."). ncargo=gasto-(gasto*0. printf("LO SENTIMOS. ncargo. while(salir==0){ clrscr().2013 int salir. printf("\t\tBOLA ROJA\t\t10 POR CIENTO\n").&gasto. printf("SU NUEVO TOTAL A PAGAR ES: $%. float gasto./*Genera los números random*/ if(random==0){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA BLANCA\n\n").\n").2f\n\n". printf("\t\tBOLA VERDE\t\t25 POR CIENTO\n")."\n").saliryesno. printf("FELIDADES. printf("\nINTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA: "). ncargo. printf("\t\tBOLA AZUL\t\t20 POR CIENTO\n"). } else{ if(random==1){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA ROJA\n\n").[PROGRAMACION I – C++] IDSystems 2011 . ncargo=gasto-(gasto*0."\n\n"). NO HA GANADO NINGUN DESCUENTO.*/ int random.00 Y POR TANTO PARTICIPA EN LA PROMOCION. printf(" $%. } if (gasto >= 100) { printf("\nSU GASTO IGUALA O SUPERA LOS $100. 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 101 . printf("FELIDADES./*Inicializa el generador random*/ random=rand()%5. HA GANADO UN 10 POR CIENTO DE DESCUENTO \n\n"). scanf("%f"."\n\n"). salir=0.1). while (gasto < 0) { printf("NO EXISTEN CARGOS NEGATIVOS INTRODUZCA NUEVO GASTO: "). printf("\t\tBOLA BLANCA\t\t NO TIENE\n"). ncargo. HA GANADO UN 20 POR CIENTO DE DESCUENTO \n\n")."\n").gasto). printf("SU NUEVO TOTAL A PAGAR ES: $%.2). srand(time(NULL)).

5). printf("SU NUEVO TOTAL A PAGAR ES: $%."\n\n"). } } } ACTIVIDAD Realiza el mismo programa pero usando las sentencias SWITCH donde se requiera CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 102 .25). scanf("%d". printf("FELIDADES.\n\n"). } } } } } } else{/*El gasto es menor a $100.&saliryesno). HA GANADO UN 25 POR CIENTO DE DESCUENTO \n\n"). printf("SU NUEVO TOTAL A PAGAR ES: $%. HA GANADO UN 50 POR CIENTO DE DESCUENTO \n\n").00*/ printf("\n\nLO SENTIMOS. ncargo.2f\n\n". ncargo=gasto-(gasto*0.[PROGRAMACION I – C++] IDSystems 2011 . } else{ if(random==4){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AMARILLA\n\n"). } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). ncargo=gasto-(gasto*0. ncargo. SU GASTO ES MENOR A CIEN DOLARES Y NO APLICA A LA PROMOCION.2013 if(random==3){ printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA VERDE\n\n"). printf("FELIDADES."\n\n").2f\n\n". if(saliryesno==1){ salir=1.

fav. y así se muestra al final el total a pagar. } void main() { int salir. printf("\tESTRENOS\t$3. CONSOLE_SCREEN_BUFFER_INFO csbi.00\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.50\t\t3\t\t$1.*/ { HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE).[PROGRAMACION I – C++] IDSystems 2011 . 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. coord). printf("\tFAVORITOS\t$2.2013 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.h> void clrscr()/*Creando funcion para limpiar pantalla.00\t\t4\t\t$1./*Llamando la funcion para limpiar pantalla. 0}. El programa calculara el monto a pagar.sest. csbi.saliryesno. GetConsoleScreenBufferInfo(hStdOut. &csbi). while(a==0){ if(cod_pel<1 || cod_pel>4){ printf("INTRODUZCA EL CODIGO DE LA CATEGORIA DE LA PELICULA (ENTRE 1 Y 4): ").50\n").&cod_pel).a. printf("\n").dwSize.75\n"). SetConsoleCursorPosition(hStdOut. FillConsoleOutputCharacter(hStdOut. a=0. while(salir==0){ clrscr(). coord. &count). printf("\tNUEVOS\t\t$3. salir=0. printf("\tSUPER ESTRENOS\t$4. prog40_peliculas. printf("\t CATEGORIA\tPRECIO\t CODIGO\tRECARGO/DIA DE ATRASO\n\n").*/ #include "STdio. COORD coord = {0.*/ int cod_pel.00\t\t2\t\t$0.h" #include <windows.X * csbi.Y.50\n\n"). float dias.dwSize. según el precio de la pelicula y la tabla de recargos.nue. scanf("%d". Este mostrara un listado de peliculas y luego se pedira el numero de dias de atraso de una pelicula.est. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 103 . ' '. printf("INTRODUZCA EL CODIGO DE LA CATEGORIA DE LA PELICULA: "). DWORD count.

5)+4.2013 scanf("%d".5). scanf("%f".&saliryesno). a=0.[PROGRAMACION I – C++] IDSystems 2011 . } else{ a=1.75)+3).5)+2.&dias).5). case 3: est= ((dias*1.nue). switch(saliryesno){ case 1: salir=1.&dias).est).sest). printf("\nEL TOTAL A PAGAR ES: $%. scanf("%f". while(a==0){ if(dias<0){ printf("INTRODUZCA EL NUMERO DE DIAS DE ATRASO EN LA DEVOLUCION: ").2f dolares\n\n". printf("\nEL TOTAL A PAGAR ES: $%. case 2: nue=((dias*0.&cod_pel). break. } else{ a=1.2f\n\n". } } } 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 104 . case 4: sest=((dias*1.2f\n\n".0). break. scanf("%d". } } switch(cod_pel) { case 1: fav=((dias*0. printf("\nEL TOTAL A PAGAR ES: $%. break. break. printf("\nEL TOTAL A PAGAR ES: $%.00)+3. } printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ").2f\n\n". } } printf("INTRODUZCA EL NUMERO DE DIAS DE ATRASO EN LA DEVOLUCION: ").fav).

i=0. Tambien repasamos las sentencias IF…ELSE prog41_dados. //Generar numeros aleatorios CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 105 . while(salir==0) { system("cls"). EL PROGRAMA DEBE INDICAR EN QUE TIRADA\n"). 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. hStdOutput=INVALID_HANDLE_VALUE.2013 Practica/Ejercicio 6 – Dados Otra practica de programa para ver la funcion aleatoria.h> #include <time. hStdOutput=GetStdHandle(STD_OUTPUT_HANDLE). Si esto es asi. printf("\nPROBLEMA: DISEÑE UN PROGRAMA QUE SIMULE UN LANZAMIENTO DE DOS DADOS HASTA QUE\n"). SetConsoleTextAttribute(hStdOutput.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.FONDO|AMARILLO). hStdInput=GetStdHandle(STD_INPUT_HANDLE).[PROGRAMACION I – C++] IDSystems 2011 . //Inicializar generador aleatorio while(i==0){ lanzamiento=1+rand()%12. printf("SALGA UN SIETE DOS VECES CONSECUTIVAS.h> #define FONDO (0) #define VERDE (10) #define AMARILLO (14) void main() { HANDLE hStdInput=INVALID_HANDLE_VALUE. salir=0. contador=0. printf("\t\t\t =====================\n"). printf("\n\t\t\t EJERCICIO 41 (DADOS)\n"). int saliryesno. el programa se sale del ciclo o de lo contrario continua. printf("OCURRIO ESE RESULTADO. FONDO|VERDE).\n\n"). lanzamiento. int a. float salir. srand(time(NULL)). SetConsoleTextAttribute(hStdOutput.h> #include <windows. 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.

} printf("EL SIETE SALIO DOS VECES CONSECUTIVAS EN LA TIRADA NUMERO %d. sea una moneda (recuerda que tiene 2 lados).contador).2013 if (lanzamiento==7){ lanzamiento=1+rand()%12.\n\n". printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: "). contador=contador+1. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 106 . } } //Fin del while } ACTIVIDAD Trata de modificar el programa para que en lugar de un dado. scanf("%d". FONDO|AMARILLO). &saliryesno). } } contador=contador+1. salir=1. if (lanzamiento==7){ contador=contador+1. SetConsoleTextAttribute(hStdOutput.[PROGRAMACION I – C++] IDSystems 2011 . if (saliryesno==1){ printf("\n\a"). i=1.

2013 PARTE IV PRACTICAS PARA DESARROLLAR CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 107 .[PROGRAMACION I – C++] IDSystems 2011 .

y la distancia mayor o igual a 100 kilometros. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 108 . La transformacion a equivalencia se hace entre estas cuatro unidades: metros. 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.[PROGRAMACION I – C++] IDSystems 2011 . 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.2013 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. PRACTICA 10 – Boletos Desarrolla un programa que nos diga el precio de un boleto de ida y vuelta en autobus. 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. 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. 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. conociendo la distancia a recorrer y sabiendo que si el numero de dias de estancia es mayor o igual a 7. pies y yardas. pulgadas. El programa dira la suma total de dinero que tiene. Despues.

conociendo su altura y su base.2013 PRACTICAS DE VARIABLES. ASIGNACIONES.54 centimetros CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 109 . Para este programa asuma que las raices son siempre reales. Considere las siguientes formulas: area = base * altura. B y C de una ecuacion de segundo grado. y calcule e imprima la suma adeudada. N e L. PRACTICA 13 – Pies Diseñe un programa para convertir una longitud dada en centimetros a pies. y que calcule y muestre por pantalla las raices X1 y X2.48 centimetros. y que imprima esa medida expresada en centimetros. X1 = (-B + SQR(B^2 – 4*A*C)) / (2*A) y X2 = (-B – SQR(B^2 – 4*A*C)) / (2*A). PRACTICA 18 – Metros Hacer un programa para ingresarle una medida en metros. pueden ser raices reales o imaginarias. OPERADORES PRACTICA 12 – Rectangulo Haga un programa que halle el area y el perimetro de un rectangulo. perimetro = 2 * (base + altura). Al final de los N meses la cantidad adeudada es C * (1 +I) ^N. TIPOS DE DATOS. PRACTICA 14 – Triangulo Calcular el area de un triangulo. pulgadas. minutos y segundos. pies y yardas.[PROGRAMACION I – C++] IDSystems 2011 . PRACTICA 16 – Tiempos Diseñe un programa para sumar dos marcas de tiempo dadas en horas. Las raices de una ecuacion de segundo orden. Considere que: 1 pie = 30. PRACTICA 17 – Prestamo Se solicita un prestamo por C pesos durante N meses a una tasa de interes mensual L. Los factores de conversion son los siguientes: 1 yarda = 3 pies 1 pie = 12 pulgadas 1 metro = 100 centimetros 1 pulgada = 2. PRACTICA 15 – Raices Realizar un programa para ingresarle los coeficientes A. Hacer un programa al cual se le dan los valores de C.

A marta le dejo la mitad de lo que le dejo a Jose. calcule su peso en kilogramos. La formula para hacer la conversion es: Fahrenheit = (9 * Celsius) / 5 + 32. PRACTICA 27 – Celsius Haga un programa para convertir una temperatura en grados Fahrenheit a grados Celsius.2013 PRACTICA 19 – Millonario Un millonario excentrico tenia tres hijos: Carlos. Al morir dejo el siguiente legado: A jose le dejo 4/3 de lo que le dejo Carlos. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 110 . 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. Utilizar la formula: Celsius = (5/9)*(Fahrenheit-32). PRACTICA 20 – Promedio Haga un programa para calcular el promedio de cinco calificaciones.453592Kg. A Carlos le dejo 1/3 de su fortuna. 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. Preparar un programa para darle la suma a repartir e imprima cuanto le toco a cada uno.[PROGRAMACION I – C++] IDSystems 2011 . Jose y Marta. PRACTICA 26 – Fahrenheit Haga un programa para convertir una temperatura en grados Centigrados a Fahrenheit. NOTA: 1 libra es aproximadamente igual a 0. PRACTICA 25 – Peso Dado el peso de una persona en libras. PRACTICA 24 – Multiplicacion por 300 Haga un programa que lea un entero y lo multiplique por 300.

o ISBN (pronunciado a veces como "is-bin"). El número del artículo. 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.[PROGRAMACION I – C++] IDSystems 2011 . y 4. 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. Por ejemplo. Escriba un programa que. El código del país o lengua de origen 2. PRACTICA 29 – Don Manolo El almacen “Don Manolo”. el siguiente por 2. El número tiene siempre 10 dígitos de longitud.ISBN El International Standard Book Number (en español Número Internacional Estándar del Libro). El editor 3.) Tomando después la suma de las multiplicaciones y calculando el modulo 11 de esta suma. El dígito de control. es un identificador único para libros. Estas partes tienen distintas longitudes y generalmente están separadas por guiones. PRACTICA 30 . etc. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 111 . con 10 representado por el carácter "X". y está dividido en cuatro partes: 1. necesita un programa que ayude a calcular la forma de dar el cambio a sus clientes con el minimo de billetes y monedas posible.2013 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. a partir de los dígitos de un ISBN. y que calcule y muestre por pantalla el determinante. y la secuencia completa es ISBN 0-306-40615-2. calcule el dígito de control.

00 Find how many miles could the saleperson drive (in average) with a galon. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 112 . b y c son las longitudes de los lados de un triángulo.95 Thru: 20. PRACTICA 32 – Triangulo II Suponga que a.30 Wed: 10. Cada número en posicion impares se multiplica por 2 y se acumula. La mayoría de las veces los primeros números agrupados (que suelen ser de cuatro) significan el tipo de tarjeta. Los números en posiciones pares se acumulan.65 Fri: 30. here some sample data: start: 68723 end: 71289 Mon: 15. Los dos últimos números se utilizan para verificar si el número de tarjeta de crédito es correcto. 2. La distancia entre dos puntos (x1. y1) y (x2. y2) esta dada por la formula d=SQR( (x2-x1)^2 + (y2-y1)^2 ). 1.75 Tues: 16. Each day on the road. PRACTICA 34 – Validacion de Tarjetas de credito Todas las tarjetas de crédito tienen un sistema de verificación de números. 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. Construya un programa que dada la siguiente fórmula valide los números de tarjeta de crédito.2013 PRACTICA 31 – Odometer A sales person leaves his home every Monday and returns every Friday. A estos se le conocen como los check digits.[PROGRAMACION I – C++] IDSystems 2011 . Esto se hace para verificar la autenticidad del número de la tarjeta. Given the starting odometer reading(that is. Los demás números significan la oficina del representante de servicio y los números que identifican al cliente. He travels by company car. the salesperson records the amount of gasoline put in the car. Entonces el área de un triángulo se puede calcular utilizando la siguiente formula: área = SQR( s(s-a)(s-b)(s-c) ). Donde s es el semi-perímetro (a+b+c)/2. the odometer reading before he leaves on monday) and the ending odometer reading (the odometer reading after he returns home on friday). Cada número tiene un significado. 3. 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.

17 Pesos Colombianos 1 Peso Chileno = 4.948.88 Pesos Colombianos 1 Dólar Americano = 2.18 Pesos Colombianos 1 Dólar Canadiense = 1.921.253. PRACTICAS DE ESTRUCTURAS DE CONTROL PRACTICA 36 – Max Calcular el máximo de dos números.50 Pesos Colombianos 1 Yen Japones = 19.2013 PRACTICA 35 – Suma de fracciones Para sumar dos números racionales se utiliza la siguiente fórmula: a c ad + bc .= ------b d bd Haga un programa que calcule la suma entre dos fracciones.+ . PRACITCA 38 – Par Impar Escribir un programa que indique si un número introducido por teclado es par o impar.00 Pesos Colombianos 1 Dólar Australiano = 734.23 Pesos Colombianos 1 Libra Esterlina = 3.679. igual a cero o negativo.[PROGRAMACION I – C++] IDSystems 2011 . PRACTICA 37 – Positivo Negativo Escribir un programa que indique si un número introducido por teclado es positivo. PRACTICA 39 – Convertidor de divisas Hacer un programa que me permita convertir una cierta cantidad de Pesos Colombiano en otras divisas.77 Pesos Colombianos [Nota] Haga uso del comando switch para desplegar el menú CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 113 . Las divisas que puede manejar su programa son: 1 Euro = 2.

CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 114 .5 o F de lo contrario. c) si es cuadrado perfecto (tiene raíz cuadrada exacta).5. imprimir el mensaje "Es un cuadrado perfecto". de acuerdo con las siguientes reglas: 1. calcular e imprimir su cociente entre 2 (x/2). [Nota] Por simplicidad. f) si está comprendido entre 32 y 127 (ambos inclusive) imprimir el carácter cuyo código ASCII representa. 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".[PROGRAMACION I – C++] IDSystems 2011 .Control Escriba un programa que lea un número x del teclado y lleve a cabo las siguientes operaciones: a) si es positivo. Su programa debe mostrar que el promedio es A si PN es mayor a 3. d) si es par.2013 PRACTICA 40 – Grado Promedio Hacer un programa que lea tres grados en letras. y muestre su promedio. D si es mayor a 0. El programa deberá utilizar una escala de 4 puntos para calcular el promedio numérico (PN): 4 para A. C si es mayor a 1. "Buenas tardes" o "Buenas noches". pero no es divisible por 100 o si es divisible por 400. 3. b) si es distinto de cero. 2. Se considera que es de noche desde las 19:01 horas hasta las 5:59 horas PRACTICA 44 . imprimir el mensaje "Sólo tiene un dígito".5. PRACTICA 42 – Diferencia Ingresar tres números y hallar la diferencia del mayor menos el menor. B si es mayor a 2. calcular e imprimir su raíz cuadrada. Se considera que es por la tarde desde las 12:00 horas hasta las 19:00 horas. 2 para C. PRACTICA 41 – Bisiesto Haga un programa que determine si un año es bisiesto: si es divisible por 4. e) si es positivo y menor que 10. 3 para B.5. Se considera que es de día desde las 6:00 horas hasta las 11:59 horas. asuma que el programa solo acepta letras mayúsculas. calcular e imprimir su inverso (1/x). 1 para D y 0 para F.

si el discriminante es < 0. PRACTICA 46 – ASCII Lea un carácter y deduzca si es vocal.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). si el discriminante es > 0. las dos raices son reales e iguales y valen X1 = X2 = -B / (2*A). PRACTICA 49 – Super Triangulo Diseñe un programa que lea tres longitudes y determine si forman o no un triángulo. PRACTICA 47 – Super Raices Partiendo del enunciado del problema [Raíces] arriba mencionado. isósceles (si tiene dos lados iguales) o escaleno (si tiene tres lados desiguales). Considere que para formar un triángulo se requiere que: "el lado mayor sea menor que la suma de los otros dos lados". Por ejemplo. las dos raíces son complejas conjugadas y valen X1_parte_real=X2_parte_real=-B / (2*A). si el discriminante es 0. 2 Lunes y así sucesivamente. Finalmente. PRACTICAS DE ESTRUCTURAS REPETITIVAS PRACTICA 50 – Countdown Haga un programa que haga un conteo regresivo desde n hasta 1. PRACTICA 51 – Factorial El factorial de un número es el producto de todos los números entre 1 y ese número. Donde 1 es Domingo.0. tener en cuenta la posiblidad de tener raíces negativas. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 115 .2013 PRACTICA 45 – Multiplo Ingresar un número n y verificar si es múltiplo de 3 o 5.[PROGRAMACION I – C++] IDSystems 2011 . donde n es un número entero positivo. Haga un programa para calcular el factorial de un número n. consonante. dígito o caracter especial. Primero calcule el discriminate B^2 . las dos raíces son reales y distintas y se caculan de la misma manera que en el programa [Raíces]. 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. X1_parte_imaginaria = SQR(-discriminante)/(2*A) y X2_parte_imaginaria = -SQR(-discriminante)/(2*A).0. el factorial de 4 es 4x3x2x1 = 24. introducido por teclado.

PRACTICA 53 – Primo Por si no lo recurda. PRACTICA 59 – Rombo Escribir un programa que lea un entero y un carácter. . Actualmente hay 40000 profesionales del área. Hacer un programa que detecte si un número es primo o no.[PROGRAMACION I – C++] IDSystems 2011 . using the shift and "and" operators. + 1/50. Find them. 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. There are some errors. La salida debe ser un rombo dibujado con el carácter dado y de anchura máxima dada por el entero leido. Correct the errors. los números primos son cantidades enteras positivas que únicamente pueden dividirse por uno o por sí mismos. . CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 116 . PRACTICA 58 – Decimal a Hexadecimal This program reads integers and prints them in hexadecimal.2013 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 + . PRACTICA 60 – Binario The following program reads integers and prints them in binary by division. But there are two errors in the program. PRACTICA 57 – Cuadrado Has un programa en C++ que dibuje un cuadrado de n asteriscos. 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. Nota: Para saber si un número n es primo. PRACTICA 54 – Ingenieros 2050 Estime la población de Ingenieros en sistemas en Mexico para el año 2050. considerando un crecimiento anual de 11%. PRACTICA 55 – Super Primos Haga un programa que imprima todos los números primos entre 1 y n.

PRACTICA 62 – Divisores Implemente un programa que calcule los divisores de un número entero. Si introducimos un 0 el programa terminar. y finalice cuando el usuario indique que desea ver la tabla del cero.Restar 3. PRACTICA 63 – Calculadora Hacer un programa que simule una calculadora.. El juego termina cuando el jugador adivina el número o decide terminar de jugar (por ejemplo. Nos mostrara el menú siguiente: ====== MENU CALCULADORA ====== 1. mostrará el resultado dependiendo de nuestra elección y volverá a mostrar el menú. Si introducimos un número erróneo nos avisará y volver a mostrar el menú.. 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.Multiplicar 4. se obtiene el primer cubo.[PROGRAMACION I – C++] IDSystems 2011 .Dividir 0...Terminar ============================== Ingrese su selección > __ El programa deberá verificar que introducimos un número válido (del 0 al 4). Si elegimos un número entre el 1 y el 4 nos pedirá dos números. etc. escribiendo un número negativo). PRACTICA 65 – Nicomaco Considere la siguiente propiedad descubierta por Nicómaco de Gerasa. Sumando los dos siguientes impares se obtiene el segundo cubo. Sumando los tres siguientes impares se obtiene el tercer cubo.. "Sumando el primer numero impar." 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 117 .2013 PRACTICA 61 – Tablas de Multiplicar Implemente un programa que muestre por pantalla las tablas de multiplicar que el usuario quiera. PRACTICA 64 – Adivinar Diseñe un programa para jugar a adivinar un número entre 0 y 100.Sumar 2.

el promedio de todos los números. la sumatoria de los cuadrados de los números pares y la sumatoria de los cuadrados de los números impares. la sumatoria de los números impares. PRACTICA 67 – Sumatorias Se tiene una entrada de dígitos entre 0 y 9. así como la posición que ocupa en el vector. 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. 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. Dada la entrada. PRACTICA 70 – Amigos Dos números son amigos si cada una de ellos es igual a la suma de los divisores del otro. PRACTICA 68 – Guess my age Write a program to play "Guess my age:". PRACTICA 66 – Perfectos Los números perfectos son aquellos enteros que son iguales a la suma de sus divisores sin incluir a él mismo. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 118 .2013 Desarrolle un programa que escriba los n primeros cubos utilizando esta propiedad. se debe calcular el total de número pares. la sumatoria de los números pares.[PROGRAMACION I – C++] IDSystems 2011 . b) Muestre por pantalla cuál es el valor mínimo. Elabore un programa que calcule todos los números perfectos menores que un número n dado. Ejemplo: 6 es un número perfecto porque 1 + 2 + 3 = 6. precedida por el número total de dígitos a leer. el total de números impares. El valor de n debe ser un valor leido por teclado. PRACTICA 69 – Power Write a program to calculate the power of one number raised to another.

2 ··--. Un ejemplo de lo que debe hacer el programa es: #morses Entre n: 2005 .---. PRACTICA 73 – Traductor de Codigo Morse El objetivo de este programa consiste en realizar un traductor de número a morse. 2^2. .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.. #morse Entre n: 1992 .----.. donde cada uno de ellos se corresponde con los elementos de la serie 1. Leyenda: — : raya (señal larga) · : punto (señal corta) Numeros 0 ----..[PROGRAMACION I – C++] IDSystems 2011 ..1 ·---. ----.2013 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.. 3^3.--- 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.--. según la tabla anterior. . 4^4. Su programa deberá colocar las 20 respuestas en un arreglo de tipo int y determinar la frecuencia de cada puntaje.. Un puntaje de 1 significa que la calidad es "pésima" y un puntaje de 10 significa que la calidad es "excelente".. Las frecuencias deben ser mostradas en forma de histograma. .----.3 ···-... CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 119 .----. 5^5.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->