Programación Gráfica 3. Introducción a C++.
3.1 Introducción a C++.
Contexto Histórico Kernighan y Ritchie desarrollan el lenguaje C en 1972. Stroustrup de la AT&T comienza a desarrollar C++ en 1980. Al comienzo era una extensión de C denominada C with classes. En 1987 la AT&T comienza a estandarizar el lenguaje internamente. En 1989 se formó un comité ANSI para estandarizarlo a nivel internacional
C++ Es un lenguaje potente. Se utiliza para todos los proyecto que necesiten rápido procesamiento: robótica, videojuegos, medicina, etc. Como lenguaje procedural se asemeja a C y es compatible con él. Es un lenguaje orientado a objetos.
3.2 Orientación a Objetos
Orientación a Objetos Anteriormente se usaba un enfoque llamado “procedural”, donde la solución se especifica como una serie de pasos y subpasos. Premisa: “El mundo real está compuesto de objetos que interactúan.” y no es un mundo procedural donde todo ocurre secuencialmente.
Programación Orientada a Objetos (POO) Se usan objetos para solucionar problemas, que son estructuras lógicas que representan elementos o entidades del mundo real. Se usan nombres que permiten hacer una rápida asociación con el correspondiente objeto. Se usan atributos o propiedades para representar los estados del objeto. Se usan métodos que describen el comportamiento del objeto y permite interacción con otros objetos.
POO: Ejemplo1 Objeto (Auto) en el mundo real
POO : Ejemplo1 Atributos: Marca Color Cilindraje Velocidad Máxima Velocidad Actual Métodos: Avanzar Frenar Cambiar “cambio” Acelerar Girar Representación lógica de la “Auto” -> Clase Auto
POO: Ejemplo1 Objeto (Rifle) en el mundo Arma
POO : Ejemplo1 Métodos: Disparar Atributos: Cargar Bala Tipo Cargar Cartucho Atributos: Tipo Numero de balas Tamaño Representación lógica de la “Arma” -> Clase Arma
POO: Ejemplo1 Objeto (Avion) en el mundo real
POO : Ejemplo1 Atributos: Métodos: Tipo Disparar Velocidad máxima Velocidad actual Número de misiles actuales Posición Métodos: Disparar Lanzar misiles Girar arriba Girar lado Aplicar Turbo Representación lógica del “Avion” -> Clase Avion
POO : Ejemplo1 Métodos: Atributos: Representación lógica de la “Rayo” -> Clase Rayo
POO : Ejemplo1 Métodos: Atributos: Representación lógica de “Jesus” -> Clase Jesus
3.3 Primeros pasos
Tipos de archivos .h .cpp Archivo de declaración. Declaración de variables globales y métodos de una o más clases. .cpp Archivo de código fuente. Implementación de los métodos de una o varias clases.
Hola Mundo #include <iostream> // Esta biblioteca permite el uso de cout(<<) y de cin(>>) using namespace std; int main() { cout << "¡Hola mundo!" << endl; system("PAUSE"); return 0; }
Comentarios Sirve para entender de mejor manera el código. Sirve para quienes posteriormente leerán el código. Sirve para que el programador entienda de inmediatamente códigos que ha realizado con antigüedad. Hace más limpia la programación.
Comentarios Declaración de variables globales. Declaración de métodos. Declaración de la clase. Algoritmos difíciles de entender a simple vista. Básicamente en archivo .h
Comentarios Tipos de comentarios: De línea: Clásico // Esto es un comentario de línea. Clásico /* Este comentario puede tener más de una línea, porque es un comentario de tipo clásico */
Comentarios Ej. Declaración de la clase Jugador. Ej. Declaración de la clase Computador.
3.4 Variables y Tipos de datos
Variables Son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecución de un programa. Ej. int velocidad_actual; bool salir; float posX; float posY;
Tipos de datos
Tamaños asociados
Asignación Variable = valor; posicion_inicialX = 0.0; posicion_inicialY = 0.0; numero_balas = 3; continuar= true;
Asociación con lo que conocemos Tipos de datos enteros: Conjunto Z. int, long. Tipos de datos de punto flotante: Conjunto R. float, double.
Operación Suma - Resta Puntaje. Disparar. puntaje = puntaje + enemigo.valor(); Disparar. balas--; balas -= 1; balas = balas – 1;
Incremento - Decremento Post incremento - decremento i++; i--; Pre incremento - decremento ++i; --i;
Más operaciones Multiplicación Division Modulo double dec = 10*numero; float prom = suma_notas / num_alumnos; Modulo int par = numero%2;
Preguntas ¿?