Vous êtes sur la page 1sur 119

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

CUADERN O DE TRABAJO DE C ++

C++ ] IDSystems 2011 - 2013 CUADERN O DE TRABAJO DE C ++ Cuaderno de Trabajo
C++ ] IDSystems 2011 - 2013 CUADERN O DE TRABAJO DE C ++ Cuaderno de Trabajo

Cuaderno de Trabajo Visual Basic s e encuentra bajo una Licencia Creative Commo ns Atribución-No Comercial-Licenciamie nto Recíproco 3.0 Unported. Diciembre – IDSyst ems

nto Recíproco 3.0 Unported . Diciembre – IDSyst ems CUADERNO DE EJERCICIOS Y PRA CTICAS C++
nto Recíproco 3.0 Unported . Diciembre – IDSyst ems CUADERNO DE EJERCICIOS Y PRA CTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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

en renta peliculas 103 Practica/Ejercicio 6 – Dados 105 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
en renta peliculas 103 Practica/Ejercicio 6 – Dados 105 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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

DE ESTRUCTURAS REPETITIVAS 115 PRACTICA 50 – Countdown 115 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
DE ESTRUCTURAS REPETITIVAS 115 PRACTICA 50 – Countdown 115 CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

PRACTICA 51 – Factorial

115

PRACTICA 52 – Serie 1

116

PRACTICA 53 – Primo

116

PRACTICA 54 – Ingenieros 2050

116

PRACTICA 55 – Super Primos

116

PRACTICA 56 – Mayor Menor

116

PRACTICA 57 – Cuadrado

116

PRACTICA 58 – Decimal a Hexadecimal

116

PRACTICA 59 – Rombo

116

PRACTICA 60 – Binario

116

PRACTICA 61 – Tablas de Multiplicar

117

PRACTICA 62 – Divisores

117

PRACTICA 63 – Calculadora

117

PRACTICA 64 – Adivinar

117

PRACTICA 65 – Nicomaco

117

PRACTICA 66 – Perfectos

118

PRACTICA 67 – Sumatorias

118

PRACTICA 68 – Guess my age

118

PRACTICA 69 – Power

118

PRACTICA 70 – Amigos

118

PRACTICAS CON VECTORES

118

PRACTICA 71 – Minimo

118

PRACTICA 72 – Cafeteria

119

PRACTICA 73 – Traductor de Codigo Morse

119

PRACTICA 74 – Serie

119

– Traductor de Codigo Morse 119 PRACTICA 74 – Serie 119 CUADERNO DE EJERCICIOS Y PRACTICAS
– Traductor de Codigo Morse 119 PRACTICA 74 – Serie 119 CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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.

al finalizar algunos ejemplos de comandos condicionales SI…ENTONCES. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 5
al finalizar algunos ejemplos de comandos condicionales SI…ENTONCES. CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 5

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

INSTRUCCIONES

En este cuaderno de trabajo tendras los EJERCICIOS y PRACTICAS que veras en el curso de Programacion I. Los ejercicios seran instrucciones paso a paso o programas ya resueltos para que los teclees, te familiarices con la sintaxis, comados y realices alguna tarea sobre ellos como generar los diagramas de flujo, pseudocodigo o indicar su funcionamiento. Las practicas, no tendran aquí la respuesta, sino que deberas realizarla desde cero. Debes teclear cada uno de los programas en tu compilador de C++. Hacer la compilacion y encadenamiento y ver los resultados.

Recuerda que debes guardarlos y entregar tanto el compilado (.EXE) como el codigo fuente a tu profesor. Ambos deben ir en un archivo ZIP como se describe a continuacion, si se los envias por correo electronico:

Alumno_Grado_NoEjercicio

Ejemplo: ReynolHernandez_03_Prog01.zip

Ademas, cada ejercicio debera ir acompañado de su diagrama de flujo y pseudocodigo.

Los programas fueron creados en Visual C++ 6.0, de la suite Microsoft Visual Studio 6.0 que soporta hasta Windows XP. Para versiones Windows Vista y Windows 7, este compilador no funcionara. Necesitaras descargar el Visual C++ 2008 Studio Express y posiblemente hacer algunas modificaciones en el codigo.

Actualizacion 2013.

Desde el curso 2012, se utilizan 3 compiladores distintos para que el alumno aprenda las diferencias entre los IDE y no propiamente en el lenguaje de C++. La primera parte corresponde al compilador ZINJAI. La segunda parte al compilador MS Visual C++ 6.0 y la tercera parte al compilador DevC++. Se han seleccionado estos compiladores porque se prestan mejor para la manera didactica, aunque en la parte cuarta se utiliza ZINJAI con librerias visuales y CODEBLOCKS. Los compiladores de NetBeans y Eclipse no se ven sino hasta el siguiente curso.

En vista de que el compilador MS VISUAL C++ 6.0 no funciona de manera correcta en Windows Vista, 7 y 8, se opto por utilizar la version Visual C++ 2008 Express o en su defecto DevC++. Los ejercicios por tanto, mostraran codigo de ambas versiones.

DevC++. Los ejercicios por tanto, mostraran codigo de ambas versiones. CUADERNO DE EJERCICIOS Y PRACTICAS C++
DevC++. Los ejercicios por tanto, mostraran codigo de ambas versiones. CUADERNO DE EJERCICIOS Y PRACTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 1 – Hola Mundo

1. El primer programa es el clasico HOLA MUNDO. Aqui lo hemos nombrado hola.cpp

Primero.cpp

#include <iostream> int main()

{

std::cout<< "Hola Mundo"; return 0;

}

Indica que es lo que hace cada linea:

Indica que es lo que hace cada linea:

Ejercicio 2 – Tipos de datos

El segundo programa trabaja con variables de tipo de dato entero, y usa la salida a la pantalla o consola

Segundo.cpp

#include <iostream> int main()

{

int x = 5; int y = 7; std::cout << std::endl; std::cout << x + y <<" " << x * y; std::cout << std::endl; return 0;

}

Responde que es lo que hace cada una de las instrucciones:

return 0; } Responde que es lo que hace cada una de las instrucciones: CUADERNO DE
return 0; } Responde que es lo que hace cada una de las instrucciones: CUADERNO DE

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

SENTENCIA

ACCION

Que tipo de variables declaramos?

 

Que operaciones estamos realizando?

 

Cual es el comando para mostrar salida por pantalla?

 

Ejercicio 3 – Mezcla de tipos de datos

El tercer programa es una variacion del segundo que incorpora un tipo de dato caracter para mezclar los dos

Segundob.cpp

#include <iostream> int main()

{

int x = 5; int y = 7; std::cout << std::endl; std::cout << "Estos son los valores: "; std::cout << x << "y " << y; std::cout << std::endl; std::cout << x + y <<" " << x * y; std::cout << std::endl; return 0;

}

Cual es la diferencia entre este programa y el anterior?

Cual es la diferencia entre este programa y el anterior?
return 0; } Cual es la diferencia entre este programa y el anterior? CUADERNO DE EJERCICIOS
return 0; } Cual es la diferencia entre este programa y el anterior? CUADERNO DE EJERCICIOS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 4 – Simplificando comandos y datos

El cuarto programa es otra variacion del no. 2, pero aqui pedira una entrada por el teclado, se almacena en una variable caracter y luego muestra todos los resultados.

Tercero.cpp

/* Tercero.cpp Este es el tercer programa y vamos a ver la entrada del teclado y salida por pantalla en la consola */

/* Esta es la libreria basica */ #include <iostream>

/* Para no repetir la libreria std, la declaramos aqui */ using std::cout; using std::cin;

int main()

{

int x = 5; int y = 7; char nombre [200]; cout << std::endl; cout<<"Estos son los valores: "<<x<<" y "<< y; cout<< std::endl; cout << x + y <<" " << x * y; cout << std::endl; cout <<"Cual es tu nombre? "; cin>>nombre; cout<<"Bienvenido "<<nombre<<". Gracias por usar C++\n\n"; return 0;

}

Responde a lo que se indica:

SENTENCIA

ACCION

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?

 
Cual es la instruccion para ENTER o indicar una linea nueva?   CUADERNO DE EJERCICIOS Y
Cual es la instruccion para ENTER o indicar una linea nueva?   CUADERNO DE EJERCICIOS Y

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 5 – Variables de preprocesador

En este ejercicio veremos como usar variables para ejecutarse en el preprocesador

Prog05.cpp

 

/* Prog05_Case.cpp Un programa que pregunta su nombre y le saluda De: El C++ por la practica. FICHA 1. Pag. 15 Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Valle del Bravo

17, Mayo,2009 */

#include <iostream> #define FRIEND 1

int main (void)

{

char name [200]; std::cout << "Escribe tu nombre \n"; std::cin >> name; #ifdef FRIEND std::cout << "Hola " << name << ", que tal! \n";

#endif

return 0 ;

}

Responde a lo que se indica:

Cual es la diferencia entre una variable normal y las variables de preprocesador?

Como declaramos las variables de preprocesador?

de preprocesador? Como declaramos las variables de preprocesador? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 10
de preprocesador? Como declaramos las variables de preprocesador? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 10

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 6 – Salida por pantalla

Simple programa de salida por pantalla

Prog06.cpp

 

/* Prog06_17.cpp Programa del ejercicio propuesto pag. 17 C++ por la practica. Para repasar la forma de mostrar mensajes en la pantalla. Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17,Mayo, 2009 */ #include <iostream.h> int main(void)

{

cout << "Esto del C++ parece muy facil" << endl; return 0;

}

ZinJai

/* Prog06_17.cpp Programa del ejercicio propuesto pag. 17 C++ por la practica. Para repasar la forma de mostrar mensajes en la pantalla. Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17,Mayo, 2009 */ #include <iostream> using namespace std;

int main(void)

{

cout << "Esto del C++ parece muy facil" << endl; return 0;

}

 
 

Cual es la diferencia entre este programa y los que se han escrito anteriormente?

Cual es la diferencia entre este programa y los que se han escrito anteriormente?
diferencia entre este programa y los que se han escrito anteriormente? CUADERNO DE EJERCICIOS Y PRACTICAS
diferencia entre este programa y los que se han escrito anteriormente? CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 7 – Entrada y salida por pantalla

Entrada y salida por pantalla:

Prog07.cpp

 

/*Prog07_17.cpp

Programa para el ejercicio propuesto en pag. 17 Manual C++ por la practica 4.1 no. 2 Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17, Mayo, 2009 */ #include <iostream.h> int main(void)

{

char msg[200] ; cout << "Escribe un mensaje con una sola palabra: "<<endl; cin >> msg; cout << "*********************"<<endl; cout << msg << endl; return 0;

}

 

/*Prog07_17.cpp

Programa para el ejercicio propuesto en pag. 17 Manual C++ por la practica 4.1 no. 2 Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17, Mayo, 2009 */ #include <iostream> using namespace std; int main(void)

{

char msg[200] ; cout << "Escribe un mensaje con una sola palabra: "<<endl; cin >> msg; cout << "*********************"<<endl; cout << msg << endl; return 0;

}

cout << msg << endl; return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 12
cout << msg << endl; return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 12

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013 Que tipo de dato estamos declarando?

Que tipo de dato estamos declarando? Y como?

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.cpp

/* Prog08_19.cpp Programa de la pagina 19 Curso C++ a la practica Para conocer los tipos basicos de datos en C Por: Lic. Sergio Hugo Sanchez O Para: Universidad Matamoros 17, Mayo, 2009

FICHA2

*/ #include <iostream.h>

int global = 5;

int main (void)

{

#include <iostream.h> int global = 5; int main ( void ) { CUADERNO DE EJERCICIOS Y
#include <iostream.h> int global = 5; int main ( void ) { CUADERNO DE EJERCICIOS Y

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

int a= 1; double x = 1.2 ; double y = 2.3 ;

cout << "x+y="<<x+y<<" "<<"a="<<a<<endl; a=global + (int) x; cout<<"a="<<a<<endl; return 0;

}

/* Prog08_19.cpp Programa de la pagina 19 Curso C++ a la practica Para conocer los tipos basicos de datos en C Por: Lic. Sergio Hugo Sanchez O Para: Universidad Matamoros 17, Mayo, 2009

FICHA2

*/ #include <iostream> using namespace std; int global = 5;

int main (void)

{

int a= 1; double x = 1.2 ; double y = 2.3 ;

cout << "x+y="<<x+y<<" "<<"a="<<a<<endl; a=global + (int) x; cout<<"a="<<a<<endl; return 0;

}

a=global + (int) x; cout<<"a="<<a<<endl; return 0; }
cout<<"a="<<a<<endl; return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 14
cout<<"a="<<a<<endl; return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 14

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

INSTRUCCION

ACCION

Que tipos de datos estamos declarando?

 

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.cpp

/* Prog09_21.cpp Programa pag 21 El C++ por la practica Tipos de datos numericos y operaciones simples Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Valle del Bravo 17, Mayo, 2009

Ficha2

*/

#include <iostream.h> int main (void)

{

double x, y, z; cout << "Introduzca el primer numero" << endl; cin >> x; cout << "Introduzca el segundo numero" << endl; cin >> y; z = x+y; cout << x <<"+"<< y << "="<< z << endl; return 0; }

/* Prog09_21.cpp Programa pag 21 El C++ por la practica Tipos de datos numericos y operaciones simples Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Valle del Bravo 17, Mayo, 2009

Ficha2

*/ #include <iostream> using namespace std;

int main (void)

{

*/ #include <iostream> using namespace std; int main (void) { CUADERNO DE EJERCICIOS Y PRACTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
double x, y, z; cout << "Introduzca el primer numero" << endl; cin >> x;
double x, y, z;
cout << "Introduzca el primer numero" << endl;
cin >> x;
cout << "Introduzca el segundo numero" << endl;
cin >> y;
z = x+y;
cout << x <<"+"<< y << "="<< z << endl;
return 0; }

Realiza el pseudocodigo de este programa

Realiza el pseudocodigo de este programa
<< endl; return 0; } Realiza el pseudocodigo de este programa CUADERNO DE EJERCICIOS Y PRACTICAS
<< endl; return 0; } Realiza el pseudocodigo de este programa CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 10 - Concatenacion

Suma de caracteres, tambien llamada CONCATENACION.

Prog11.cpp

 

/*Prog11.cpp

Programa que permite la suma (concatenacion) de 2 caracteres. Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17, Mayo, 2009

Ficha 2

*/ #include <iostream.h> int main (void)

{

char a; //declaracion de la variable tipo caracter char b;

cout << "Introduzca el primer caracter: " << endl; cin >> a;

cout << "Introduzca el segundo caracter: " << endl; cin >> b;

a+=b; // a=a+b, suma o concatenacion de caracteres cout << "El resultado " << a; return 0;}

 

/*Prog11.cpp

Programa que permite la suma (concatenacion) de 2 caracteres. Por: Lic. Sergio Hugo Sanchez O. Para: Universidad Matamoros 17, Mayo, 2009

Ficha 2

*/ #include <iostream> using namespace std;

int main (void)

{

char a; //declaracion de la variable tipo caracter char b;

cout << "Introduzca el primer caracter: " << endl; cin >> a;

cout << "Introduzca el segundo caracter: " << endl; cin >> b;

a+=b; // a=a+b, suma o concatenacion de caracteres cout << "El resultado " << a; return 0;}

cout << "El resultado " << a; return 0;} CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
cout << "El resultado " << a; return 0;} CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

 

/* Sentencias tipo if/else. Anidamientos y operaciones logicas */ #include <iostream.h> int main ()

{

int i = 1; int j = 2; if (i>j) {cout << "i es mejor que j"<<endl;} else {cout << "i es mayor que j"<<endl;} return 0;

}

 

/* Sentencias tipo if/else. Anidamientos y operaciones logicas */ #include <iostream> using namespace std;

int main ()

{

int i = 1; int j = 2; if (i>j) {cout << "i es mejor que j"<<endl;} else {cout << "i es mayor que j"<<endl;} return 0;

}

<< "i es mayor que j"<<endl;} return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
<< "i es mayor que j"<<endl;} return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013 Explica el comando de IF Ejercicio

Explica el comando de IF

Explica el comando de IF

Ejercicio 12 – Operaciones condicionales

Ejercicio con operaciones, entrada salida por consola y condicional

Prog13.cpp

/* Pregunta dos numoers, que operacion deseas hacer y muestra el resultado */

#include <iostream.h> int main()

{

double a, b; int c; cout << "Introduce el primer numero " << endl; cin >> a; cout << "Introduce el segundo numero " << endl; cin >> b; cout << "Que operacion deseas hacer, 1(suma), 2(Multiplicacion)? " <<

endl;

cin >> c;

if (c==1) {cout << "El resultado es: " << a+b<<endl;} else {cout <<"El resultado es: " <<a*b<<endl;} return 0;

"El resultado es: " <<a*b<<endl;} return 0; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 19

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

}

/* Pregunta dos numeros, que operacion deseas hacer y muestra el resultado */ #include <iostream> using namespace std;

int main()

{

double a, b; int c; cout << "Introduce el primer numero " << endl; cin >> a; cout << "Introduce el segundo numero " << endl; cin >> b; cout << "Que operacion deseas hacer, 1(suma), 2(Multiplicacion)? " <<

endl;

cin >> c;

if (c==1) {cout << "El resultado es: " << a+b<<endl;} else {cout <<"El resultado es: " <<a*b<<endl;} return 0;

}

resultado es: " <<a*b<<endl;} return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 20
resultado es: " <<a*b<<endl;} return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 20
resultado es: " <<a*b<<endl;} return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 20

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Realiza el pseudocódigo del programa anterior

Realiza el pseudocódigo del programa anterior

Ejercicio 13 – IF…ELSE anidados

Ejercicio mas complejo de IF

ELSE anidados

Prog14.cpp

/*Calcular el area de diferentes poligonos */

#include <iostream.h> int main()

{

double a, b; double area; int figura; cout << "Figura= cuadrado (1), rectangulo (2), triangulo (3)" << endl; cout << "¿que area deseas calcular)" << endl; cin >> figura;

if (figura==1)

{ cout << "valor del lado="; cin >>a; area=a*a;}

else if (figura==2)

{ cout << "Valor del lado menor = "; cin >>a;

cout << "Valor del lado menor = " ; cin >>a; CUADERNO DE EJERCICIOS Y PRACTICAS
cout << "Valor del lado menor = " ; cin >>a; CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

cout << "Valor del lado mayor = " ; cin >> b; area = a*b;}

else if (figura==3)

{

cout <<"Valor de la base =";

cin >> a; cout << "Valor de la altura ="; cin >> b;

area=a*b/2.0;}

else

{

cout << "figura equivocada" << endl;

 

area=0;}

 

cout <<"El area de la figura es= "<<area<<endl;

 

return 0;

}

/*Calcular el area de diferentes poligonos */

#include <iostream> using namespace std;

int main()

 

{

 

double a, b; double area; int figura; cout << "Figura= cuadrado (1), rectangulo (2), triangulo (3)" << endl; cout << "¿que area deseas calcular)" << endl; cin >> figura;

if (figura==1)

{

cout << "valor del lado="; cin >>a; area=a*a;}

else if (figura==2)

{

cout << "Valor del lado menor = ";

cin >>a; cout << "Valor del lado mayor = " ; cin >> b; area = a*b;}

else if (figura==3)

{

cout <<"Valor de la base =";

cin >> a; cout << "Valor de la altura ="; cin >> b;

area=a*b/2.0;}

else

{

cout << "figura equivocada" << endl;

 

area=0;}

 

cout <<"El area de la figura es= "<<area<<endl;

area de la figura es= "<<area<<endl; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 22
area de la figura es= "<<area<<endl; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 22

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
return 0; }
return 0;
}

ACCION

COMANDO

¿Qué son las condiciones anidadas?

 

¿Cómo se escriben las condiciones anidadas?

 
  ¿Cómo se escriben las condiciones anidadas?   CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 23
  ¿Cómo se escriben las condiciones anidadas?   CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 23

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 14 – Salida a un archivo externo

Programa mas complejo que involucra: IF

texto, entrada y salida por pantalla. Nuevos comandos

ELSE,

matrices, mas de 1 libreria, creacion de archivo de

Prog15.cpp

 

/* Se define la dimesion de un vector mediante un entero, 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, como se crean los vectores y el uso de un archivo de texto

*/ #include <iostream.h> #include <fstream.h>

#define MAX_SIZE 25

int main ()

{

int size; ofstream MyReport("resultado.txt");

cout << "Introduzca la dimension del vector" <<endl; cin >> size;

if (size > MAX_SIZE)

{

cerr << "Error, tamaño demasiado grande" << endl; MyReport << " *********************************** inicio" <<

endl;

MyReport << " ERROR: dimesion del vector debe ser menor de " << MAX_SIZE <<endl; MyReport << " *********************************** fin"<<endl; MyReport.close(); return 1;

}

cout << "Vamos a trabajar con un vector de " << size << " componentes"<< endl;

MyReport << " *********************************** inicio" << endl; MyReport << " Vector de " << size << " componentes " <<endl; MyReport << " *********************************** fin"<<endl; MyReport.close(); return 0;

}

 

/* Se define la dimesion de un vector mediante un entero, el concepto de matriz se restringe de momento a un vector, se escribe un texto de salida mediante sentencia

momento a un vector, se escribe un texto de salida mediante sentencia CUADERNO DE EJERCICIOS Y
momento a un vector, se escribe un texto de salida mediante sentencia CUADERNO DE EJERCICIOS Y

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

logica

Aqui veremos otras librerias de C, como se crean los vectores y el uso de un archivo de texto

*/ #include <iostream> #include <fstream>

using namespace std; #define MAX_SIZE 25

int main ()

{

int size; ofstream MyReport("resultado.txt");

cout << "Introduzca la dimension del vector" <<endl; cin >> size;

if (size > MAX_SIZE)

{

cerr << "Error, tamaño demasiado grande" << endl; MyReport << " *********************************** inicio" <<

endl;

MyReport << " ERROR: dimesion del vector debe ser menor de " << MAX_SIZE <<endl; MyReport << " *********************************** fin"<<endl; MyReport.close(); return 1;

}

cout << "Vamos a trabajar con un vector de " << size << " componentes"<< endl;

MyReport << " *********************************** inicio" << endl; MyReport << " Vector de " << size << " componentes " <<endl; MyReport << " *********************************** fin"<<endl; MyReport.close(); return 0;

}

Indica lo siguiente:

¿Qué librerías estamos incorporando al programa?

¿Qué es lo que hace el programa?

incorporando al programa? ¿Qué es lo que hace el programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++
incorporando al programa? ¿Qué es lo que hace el programa? CUADERNO DE EJERCICIOS Y PRACTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente:

¿Cuáles son los comandos de archivo que se presentan?

Realiza el pseudocódigo correspondiente:

¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente:
¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente:
¿Cuáles son los comandos de archivo que se presentan? Realiza el pseudocódigo correspondiente:
que se presentan? Realiza el pseudocódigo correspondiente: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 26
que se presentan? Realiza el pseudocódigo correspondiente: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 26

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 15 - Switch

Programa de ejemplo para el Switch, variacion del primer programa IF

ELSE

Prog16.cpp

 

/* Uso de switch en lugar de IF Igual al prog13 */

#include <iostream.h> int main ()

{

double a, b; int c; cout << "Introduzca el primer numero"<<endl; cin >> a; cout << "Introduzca el segundo numero"<<endl; cin >> b; cout << "Que operacion deseas hacer: 1(suma) 2(Multiplicacion)"<<endl; cin>>c;

switch (c)

{

case 1:

cout << "el resultado es:"<<a+b<<endl; break;

default:

cout << "el resultado es:"<<a*b<<endl; break;

}

return 0;

}

 

/* Uso de switch en lugar de IF Igual al prog13 */

#include <iostream> using namespace std;

int main ()

{

double a, b; int c; cout << "Introduzca el primer numero"<<endl; cin >> a; cout << "Introduzca el segundo numero"<<endl; cin >> b; cout << "Que operacion deseas hacer: 1(suma) 2(Multiplicacion)"<<endl; cin>>c;

switch (c)

{

case 1:

cout << "el resultado es:"<<a+b<<endl; break;

default:

cout << "el resultado es:"<<a*b<<endl; break;

}

return 0;

}

es:"<<a*b<<endl; break; } return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 27
es:"<<a*b<<endl; break; } return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 27

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Menciona las diferencias entre la instrucción Switch y la instrucción IF

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

else

Prog17.cpp

 
 

/*Calcular el area de diferentes poligonos usando Switch*/ #include <iostream.h> int main()

{

double a, b, area;

int figura;

cout << "Figura= rectangulo (1), triangulo (2)" << endl; cout << "¿que area deseas calcular)" << endl; cin >> figura;

switch (figura)

{

case 1:

cout << "Valor del lado menor = ";

cin >>a; cin >> b;

cout << "Valor del lado mayor = " ; area = a*b; break; case 2:

cout <<"Valor de la base ="; cin >> a;

cout << "Valor de la altura =";

cin >> b;

area=a*b/2.0; break ; default:

cout << "figura equivocada" << endl; area=0;

break;

}

if (area) cout <<"El area de la figura es= "<<area<<endl; else cerr <<"error, la figura no tiene area"<<endl;

return 0;

}

 

/*Calcular el area de diferentes poligonos usando Switch*/ #include <iostream> using namespace std;

int main()

{

double a, b, area;

int figura;

cout << "Figura= rectangulo (1), triangulo (2)" << endl; cout << "¿que area deseas calcular)" << endl; cin >> figura;

switch (figura)

{

case 1:

cout << "Valor del lado menor = ";

cin >>a;

cout << "Valor del lado menor = "; cin >>a; CUADERNO DE EJERCICIOS Y PRACTICAS C++
cout << "Valor del lado menor = "; cin >>a; CUADERNO DE EJERCICIOS Y PRACTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

cout << "Valor del lado mayor = " ; area = a*b; break; case 2:

cin >> b;

cout <<"Valor de la base ="; cin >> a;

cout << "Valor de la altura =";

cin >> b;

area=a*b/2.0; break ; default:

cout << "figura equivocada" << endl; area=0; break;

}

if (area) cout <<"El area de la figura es= "<<area<<endl; else cerr <<"error, la figura no tiene area"<<endl;

return 0;

}

Prueba a hacer este programa sin ver el código aquí presentado, ya que es una variación del ejercicio de polígonos usando el IF…else

que es una variación del ejercicio de polígonos usando el IF…else CUADERNO DE EJERCICIOS Y PRACTICAS
que es una variación del ejercicio de polígonos usando el IF…else CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

PARTE II

En esta segunda parte se incluyen ejemplos para realizar ciclos. Ademas de incorporar funciones, matrices, y ejemplos de algunos juegos los cuales preparan al estudiante en la logica de la programacion.

los cuales preparan al estudiante en la logica de la programacion. CUADERNO DE EJERCICIOS Y PRACTICAS
los cuales preparan al estudiante en la logica de la programacion. CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 17 – Ciclo For

Primero haremos uno fácil. Escribir un programa que muestre una lista de números del 1 al 20, indicando a la derecha de cada uno si es divisible por 3 o no.

Prog19.cpp

 

// Este programa muestra una lista de números, indicando para cada uno // si es o no múltipo de 3. // 11/09/2000 Salvador Pozo

#include <iostream.h> // librería para uso de cout

int main() // función principal

{

int i; // variable para bucle

for(i = 1; i <= 20; i++) // bucle for de 1 a 20

{

cout << i; // muestra el número if(i % 3 == 0) cout << " es múltiplo de 3"; // el resto de dividir por 3 es 0 else cout << " no es múltiplo de 3"; // o no lo es cout << endl; // cambio de línea

}

return 0;

}

DevC++

// Este programa muestra una lista de números, indicando para cada uno // si es o no múltipo de 3. // 11/09/2000 Salvador Pozo

#include <iostream> // librería para uso de cout using namespace std;

int main() // función principal

{

int i; // variable para bucle

for(i = 1; i <= 20; i++) // bucle for de 1 a 20

{

cout << i; // muestra el número if(i % 3 == 0) cout << " es múltiplo de 3"; // el resto de dividir por 3 es 0 else cout << " no es múltiplo de 3"; // o no lo es cout << endl; // cambio de línea

}

system("pause"); return 0;

}

// cambio de línea } system("pause"); return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
// cambio de línea } system("pause"); return 0; } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013
[ PROGRAMACION I – C++ ] IDSystems 2011 - 2013 El enunciado es el típico de

El enunciado es el típico de un problema que puede ser solucionado con un bucle "for". Observa el uso de los comentarios, y acostúmbrate a incluirlos en todos tus programas. Acostúmbrate también a escribir el código al mismo tiempo que los comentarios. Si lo dejas para cuando has terminado el código, probablemente sea demasiado tarde, y la mayoría de las veces no lo harás. ;-)

También es una buena costumbre incluir al principio del programa un comentario extenso que incluya el enunciado del problema, añadiendo también el nombre del autor y la fecha en que se escribió. Además, cuando hagas revisiones, actualizaciones o correcciones deberías incluir una explicación de cada una de ellas y la fecha en que se hicieron.

Una buena documentación te ahorrará mucho tiempo y te evitará muchos dolores de cabeza.

te ahorrará mucho tiempo y te evitará muchos dolores de cabeza. CUADERNO DE EJERCICIOS Y PRACTICAS
te ahorrará mucho tiempo y te evitará muchos dolores de cabeza. CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 18 – Ciclo while

Escribir el programa anterior, pero usando una función para verificar si el número es divisible por tres, y un bucle de tipo "while".

Prog20.cpp

 

// Este programa muestra una lista de números, indicando para cada uno // si es o no múltipo de 3.

#include <iostream.h> // librería para uso de cout

// Prototipos:

bool MultiploDeTres(int n);

int main() // función principal

{

int i = 1; // variable para bucle while(i <= 20) // bucle hasta i igual a 20

{

cout << i; // muestra el número if(MultiploDeTres(i)) cout << " es múltiplo de 3"; // el numero es múltiplo de 3 else cout << " no es múltiplo de 3"; // o no lo es cout << endl; // cambio de línea 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; else return true;

}

 

// Este programa muestra una lista de números, indicando para cada uno // si es o no múltipo de 3.

#include <iostream> // librería para uso de cout using namespace std;

// Prototipos:

bool MultiploDeTres(int n);

int main() // función principal

{

int i = 1; // variable para bucle while(i <= 20) // bucle hasta i igual a 20

{

cout << i; // muestra el número if(MultiploDeTres(i)) cout << " es múltiplo de 3"; // el numero es múltiplo de 3

" es múltiplo de 3"; // el numero es múltiplo de 3 CUADERNO DE EJERCICIOS Y
" es múltiplo de 3"; // el numero es múltiplo de 3 CUADERNO DE EJERCICIOS Y

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

else cout << " no es múltiplo de 3"; // o no lo es cout << endl; // cambio de línea i++;

}

system("pause");

}

// 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; else return true;

}

Comprueba cómo hemos declarado el prototipo de la función "MultiploDeTres". Además, al declarar la variable i le hemos dado un valor inicial 1. Observa que al incluir la función, con el nombre adecuado, el código queda mucho más legible, de hecho prácticamente sobra el comentario. Por último, fíjate en que la definición de la función va precedida de un comentario que explica lo que hace. Esto también es muy recomendable.

Ejercicio 19 – Ciclos anidados

Escribir un programa que muestre una salida de 20 líneas de este tipo:

1

1

1

1

2

2 3 2 3 4

Prog21.cpp

// Este programa muestra una lista de números // de este tipo:

// 1 // 1 2

2

//

// 1

3

#include <iostream.h> // librería para uso de cout

int main() // función principal

{

int i, j; // variables para bucles for(i = 1; i <= 20; i++) // bucle hasta i igual a 20

{

for(j = 1; j <= i; j++) // bucle desde 1 a i cout << i << " "; // muestra el número cout << endl; // cambio de línea

; // muestra el número cout << endl; // cambio de línea CUADERNO DE EJERCICIOS Y
; // muestra el número cout << endl; // cambio de línea CUADERNO DE EJERCICIOS Y

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

}

}

return 0;

// Este programa muestra una lista de números // de este tipo:

// 1 // 1 2

// 1

//

2

3

#include <iostream> // librería para uso de cout using namespace std; int main() // función principal

{

int i, j; // variables para bucles

for(i = 1; i <= 20; i++) // bucle hasta i igual a 20

{

for(j = 1; j <= i; j++) // bucle desde 1 a i cout << i << " "; // muestra el número cout << endl; // cambio de línea

}

system("pause"); return 0;

}

Este ejemplo ilustra el uso de bucles anidados. El bucle interior, que usa "j" como variable toma valores entre 1 e "i". El bucle exterior incluye, además del bucle interior, la orden de cambio de línea, de no ser así, la salida no tendría la forma deseada.

Además, después de cada número se imprime un espacio en blanco, de otro modo los números aparecerían amontonados.

Ejercicio 20 – Ciclo While

Escribir un programa que muestre una salida con la siguiente secuencia numérica:

1, 5, 3, 7, 5, 9, 7,

, 23

La secuencia debe detenerse al llegar al 23. El enunciado es rebuscado, pero ilustra el uso de los bucles "do

while".

La secuencia se obtiene partiendo de 1 y sumando y restando 4 y 2, alternativamente.

Veamos cómo resolverlo:

y sumando y restando 4 y 2, alternativamente. Veamos cómo resolverlo: CUADERNO DE EJERCICIOS Y PRACTICAS
y sumando y restando 4 y 2, alternativamente. Veamos cómo resolverlo: CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Prog21.cpp

 
 

/* Prog22 */

 

#include <iostream.h>

int main()

 

// función principal

{

 

int i = 1; bool sumar = true;

// variable para bucles // Siguiente operación es sumar o restar

bool terminado = false; // Se ha alcanzado la condición de fin

do {

cout << i;

// Hacer // muestra el valor en pantalla

 

terminado = (i == 23); // Actualiza condición de fin

if(terminado) cout << "."; else cout << ", ";

// Puntuación,

separadores

 
 

if(sumar) i += 4; else i -= 2;// Calcula siguiente elemento

sumar = !sumar;

// Cambia la siguiente operación

 

}

while(!terminado);

//

mientras no se termine

cout << endl;

// Cambio de línea

return 0;

}

 

/* Prog22 */

 

#include <iostream> using namespace std;

int main() // función principal

{

int i = 1; // variable para bucles bool sumar = true; // Siguiente operación es sumar o restar bool terminado = false; Se ha alcanzado la condición de fin

//

do { // Hacer cout << i; // muestra el valor en pantalla terminado = (i == 23); Actualiza condición de fin if(terminado) cout << "."; else cout << ", ";

//

// Puntuación,

separadores

 

if(sumar) i += 4; else i -= 2; Calcula siguiente elemento sumar = !sumar;

//

 

// Cambia la siguiente operación

}

while(!terminado);

//

mientras no se termine

 

cout << endl;

// mientras no se termine   cout << endl; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
// mientras no se termine   cout << endl; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

// Cambio de línea

system("pause"); return 0;

}

PRACTICA 1

1.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.

Ejercicio 21 - Juego del Granjero

Aqui vamos a hacer un alto o un parentesis en los temas que llevamos visto, para mostrar un ejemplo mas practico y divertido sobre la programacion y sobre C++. Nada mejor que checar la logica de un programa, asi como ver nuevas instrucciones que con un juego. Este programa incluye algunas cosas que no se han visto hasta este momento en el curso. Como estructuras, funciones, nuevas librerias y comandos (sentencias). Pero que por lo demas no son dificiles de entender.

1. Deberas teclear todo el codigo en C++

2. Deberas ejecutarlo

3. Deberas realizar el algoritmo. LINEA X LINEA del codigo del juego indicando que es lo que crees

que hace.

4. Si tienes una duda sobre alguna instruccion

5. Opcial (para obtener mas puntos) realizar el diagrama de flujo del juego.

Y JUGARLO.

consulta la ayuda del editor o en la wikipedia.

NOTA: Puedes usar el siguiente programa ONLINE y gratuito para hacer tu diagrama de flujo. No olvides guardarlo o invitar al profesor con tu registro para que lo evalue. http://www.gliffy.com/

He aqui el codigo:

para que lo evalue. http://www.gliffy.com/ He aqui el codigo: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
para que lo evalue. http://www.gliffy.com/ He aqui el codigo: CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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; // variable generica bitfield

/*

*

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];

//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);

"Necesita instrucciones? (Pulse S o N): " ); gets(reply); CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
"Necesita instrucciones? (Pulse S o N): " ); gets(reply); CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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;

*/ int GetMove( int bank) {   int key; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
*/ int GetMove( int bank) {   int key; CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

[ 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)

 

{

1 si lo estan o 0 si no */ int CheckMap( int bank)   { CUADERNO
1 si lo estan o 0 si no */ int CheckMap( int bank)   { CUADERNO

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

int status = 0;

if (Player.zorra != bank && Player.gallina != bank) status = 1; if (Player.gallina !=bank && Player.maiz != bank) status = 1;

return (status);

}

/*

*

PrintMap()

*

*

Desplegar el mapa actual mostrando las posiciones

*

del granjero y los demas elementos

*/

void

PrintMap()

{

char wc, ec;

/* El granjero */ '

wc

if (Player.granjero)

=

ec

=

';

ec = 'G';

else

wc = 'G'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* La zorra */ '

wc

if (Player.zorra) ec = 'z';

=

=

ec

';

else

wc = 'z'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* La gallina */ '

wc

if (Player.gallina) ec = 'g';

=

ec

=

';

else

wc = 'g'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* El maiz */ =

= if (Player.maiz) ec = 'm';

else

wc

ec

'

';

wc = 'm'; printf("\n%c ^^^^^^ %c\n",wc, ec);

}

/*

*

MadeIt()

*

*

Determinar si todos los elementos fueron satisfactoriamente

*

transportados al lado este del rio

*/

int

* transportados al lado este del rio */ int CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página
* transportados al lado este del rio */ int CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

MadeIt()

 

{

int status; status =0; if (Player.granjero && Player.zorra && Player.gallina && Player.maiz)

 

status = 1; return (status);

}

/* * Cuando pierdes */

 

void

 

YouLose()

 

{

 

printf("Lo sentimos, has perdido. "); if (Player.zorra == Player.gallina) printf("La zorra se comio a la gallina.\n"); else if (Player.gallina == Player.maiz) printf("La gallina se comio el maiz.\n");

exit(1);

 

}

/*

*

G

R

A N

J

E R O

*

*

El problema del granjero cruzando el rio

*

*/

#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.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; // variable generica bitfield

/*

*

Prototipos de funcion

*/ void Instruct(void); int GetMove(int);

Prototipos de funcion */ void Instruct(void); int GetMove(int); CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 42
Prototipos de funcion */ void Instruct(void); int GetMove(int); CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 42

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

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];

//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); 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); system("pause"); 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");

tiene una zorra, una gallina y un balde de maiz.\n"); CUADERNO DE EJERCICIOS Y PRACTICAS C++
tiene una zorra, una gallina y un balde de maiz.\n"); CUADERNO DE EJERCICIOS Y PRACTICAS C++

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

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"); system("pause");

}

/*

*

*

GetMove()

*

Hacer los movimientos

*/

int

GetMove(int bank)

 

{

 

int key;

/* * 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

} putchar('\n'); return (key); }   void CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 44
} putchar('\n'); return (key); }   void CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 44

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

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)

{

int status = 0;

if (Player.zorra != bank && Player.gallina != bank) status = 1; if (Player.gallina !=bank && Player.maiz != bank) status = 1;

return (status);

}

/*

*

PrintMap()

*

*

Desplegar el mapa actual mostrando las posiciones

*

del granjero y los demas elementos

*/

void

PrintMap()

{

char wc, ec;

/* El granjero */ '

wc = ec =

if (Player.granjero)

';

ec = 'G';

else

wc = 'G'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* La zorra */ '

wc = ec =

if (Player.zorra)

';

ec = 'z';

else

wc = ec = if (Player.zorra) '; ec = 'z'; else CUADERNO DE EJERCICIOS Y PRACTICAS
wc = ec = if (Player.zorra) '; ec = 'z'; else CUADERNO DE EJERCICIOS Y PRACTICAS

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

wc = 'z'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* La gallina */ '

wc = ec =

if (Player.gallina)

';

ec = 'g';

else

wc = 'g'; printf("\n%c ^^^^^^ %c\n",wc, ec);

/* El maiz */ '

wc = ec =

if (Player.maiz) ec = 'm';

';

else

wc = 'm'; printf("\n%c ^^^^^^ %c\n",wc, ec);

}

/*

*

MadeIt()

*

*

Determinar si todos los elementos fueron satisfactoriamente

*

transportados al lado este del rio

*/

int

MadeIt()

{

int status; status =0; if (Player.granjero && Player.zorra && Player.gallina && Player.maiz)

status = 1; return (status);

}

/*

*

Cuando pierdes

*/

void

YouLose()

{

printf("Lo sentimos, has perdido. "); if (Player.zorra == Player.gallina) printf("La zorra se comio a la gallina.\n"); else if (Player.gallina == Player.maiz) printf("La gallina se comio el maiz.\n"); system("pause");

exit(1);

}

se comio el maiz.\n"); system("pause"); exit(1); } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 46
se comio el maiz.\n"); system("pause"); exit(1); } CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 46

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

declarando y como? ¿Que significa cada constante declarada? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 47
declarando y como? ¿Que significa cada constante declarada? CUADERNO DE EJERCICIOS Y PRACTICAS C++ Página 47

[PROGRAMACION I – C++]

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

IDSystems 2011 - 2013

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

Ejercicio 22 - Juegos

Para terminar de ver los ejemplos acerca de las condicionales y los ciclos, vamos a ver 3 juegos mas. Sin embargo, es importante hacer la siguiente aclaracion:

Estos juegos fueron adaptados de otras versiones de compilador C++. Como habiamos visto en la primer leccion, hay varios compiladores de C++, y ademas del Microsot Visual C++, otro muy usado es el Turbo C++ o Borland C++. Estos compiladores traen unas librerias no estandar de C, que permiten extender un poco el lenguaje y facilitar algunas tareas en modo DOS para accesar algunas funciones graficas.

De entre ellas, hay una libreria llamada CONIO.H y STDLIB.H, que si bien existen en la version del compilador de Microsoft que estamos usando, no contiene las mismas instrucciones.

Por lo tanto, hay que seguir algunas reglas para que estos juegos funcionen y apliques estas nuevas instrucciones que generalmente son utiles en los juegos. Sin embargo, algunas setenciones no se recomiendan en su uso porque precisamente no son librerias estandar que puedan ser emuladas facilmente.

Asi que habra que seguir un par de instrucciones para que estos programas funcionen de manera correcta.

INSTRUCCIONES ANTES DE EJECUTAR LOS PROGRAMAS.

1. Ve a la seccion de Manuales y Video y deberas bajar CONSOLA.H y CONSOLA.LIB

2. Estos dos archivos deberas incluirlos donde este tu proyecto de programa.

3. Sera muy importante que primero crees un proyecto de programa, porque deberas anexar estos

dos archivos. Uno bajo HEADER y el otro bajo RESOURCES.

4. Ademas, deberas incluir el archivo CONSOLA.H al inicio de tu programa pero veras que en lugar

de <>, lo haras con " ", ya que, estaras indicando que sera de manera local.

5. 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).