Categorías
PROGRAMACIÓN / CURSOS

Curso de C++ a manos de ProgramacionATS

Quinta parte

Última parte de este curso de C++ en donde seguiremos con árboles, archivos, y definición de POO (Programación Orientada a Objetos).

¡Comenzamos!

Árboles I


Árboles:
Un árbol consta de un conjunto finito de elementos, denominados nodos y un conjunto finito de líneas dirigidas, denominadas ramas, que conectan los nodos.
Propiedades del Árbol:
- Longitud de camino
- Altura de un nodo
- Profundidad de un nodo. Nivel
- Nodos hermanos
- Orden de un árbol

Árboles II


Árboles binarios:
Un árbol binario es un árbol de orden 2. Se conoce el nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.

Árboles III


Árbol binario de Búsqueda - ABB:
Es aquel que dado un nodo, todos los datos del sub árbol izquierdo son menores, mientras que todos los datos del sub árbol derecho son mayores.

Árboles IV


Para insertar nodos en un Árbol binario de búsqueda(ABB), necesitamos crear 2 funciones, una para crear un nuevo nodo y otra para insertar los nodos en el árbol.

Árboles V


En este vídeo vamos a aprender como mostrar el árbol completo.

Árboles VI


En este vídeo vamos a aprender como buscar un nodo en un árbol binario de búsqueda ABB.

Árboles VII
(PreOrden)


Recorrido en PreOrden (raíz, izquierdo, derecho):
Para recorrer un árbol binario no vacío en PreOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz:
- Visite la raíz
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho

Árboles VIII
(InOrden)


Recorrido en InOrden (izquierdo, raíz, derecho):
Para recorrer un árbol binario no vacío en InOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Visite la raíz
- Atraviese el sub-árbol derecho

Árboles IX
(PostOrden)


Recorrido en PostOrden (izquierdo, derecho, raíz):
Para recorrer un árbol binario no vacío en InOrden, hay que realizar las siguientes operaciones recursivamente en cada nodo:
- Atraviese el sub-árbol izquierdo
- Atraviese el sub-árbol derecho
- Visite la raíz

Árboles X


En este vídeo veremos algunas correcciones al programa para que podamos eliminar nodos del Árbol, ademas veremos el inicio de la función eliminar.

Árboles XI


En este vídeo veremos como eliminar un nodo con 2 hijos (izquierdo y derecho).

Árboles XII


En este vídeo veremos como eliminar un nodo con un solo hijo, ya sea hijo izquierdo o derecho.

Árboles XIII


En este vídeo vamos a ver como podemos eliminar un nodo con un solo hijo, es decir un nodo hoja.

Archivos/Ficheros I


Árboles/Ficheros:
En C++ un fichero es simplemente un flujo externo que se puede abrir para entrada (dando lugar a un flujo de archivo de entrada que, para simplificar, llamaremos simplemente archivo o fichero de entrada), para salida (dando lugar a un flujo de archivo de salida que, para simplificar, llamaremos simplemente archivo o fichero de salida) o para entrada-salida (archivo o fichero de entrada-salida o archivo de E/S).

Archivos/Ficheros II


En este vídeo vamos a aprender como hacer la lectura de un archivo de texto en C++, utilizando las funciones de la librería fstream.

Archivos/Ficheros III


En este vídeo vamos a aprender como añadir texto en un archivo, y prácticamente tenemos que hacer lo mismo que al escribir, con la diferencia que ahora es modo en el que abrimos el archivo es ios::app.

POO I


Estudiaremos los conceptos de:
- Clase
- Objeto
- Abstracción
- Encapsulación
- Herencia
- Polimorfismo

Estas son las ideas más básicas que todo aquel que trabaja en POO debe comprender y manejar constantemente.

POO II


En este vídeo veremos un pequeño acercamiento a las clases en C++

POO III


En este video vamos a resolver el siguiente ejercicio:

Ejercicio 1: Construya una clase llamada Rectangulo que tenga los siguientes atributos: largo y ancho, y los siguientes metodos: perimetro() y area().

POO IV


En este vídeo vamos a ver como crear diferentes constructores en una misma clase, pero que se diferencien en numero de parámetros o en el tipo de estos.

POO V


En este video vamos a resolver el siguiente ejercicio:

Ejercicio 2: Construya una clase Tiempo que contenga los siguientes atributos enteros: horas, minutos y segundos. Haga que la clase contenga 2 constructores, el primero debe tener 3 parámetros Tiempo(int,int,int) y el segundo sólo tendrá un campo que serán los segundos y desensamble el número entero largo en horas, minutos y segundos.

POO VI


En este vídeo vamos a aprender que es un destructor en Programación Orientada a Objetos.

POO VII


En este vídeo vamos a ver los métodos getter y setter que nos sirven para mostrar los datos y establecer los datos respectivamente.

POO VIII


Herencia:
Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes. Es la relación entre una clase general y otra clase mas específica.

POO IX
(Ejercicio)


En este video vamos a resolver el siguiente ejercicio:

Ejercicio 3: Realice un programa en C++, de tal manera que se construya una solución para la jerarquía(herencia) de clases mostrada en la siguiente figura.

POO X


Continuación del ejercicio anterior.

POO XI


El Polimorfismo (implementado en C++ con funciones virtual es) es la tercera característica esencial de un lenguaje orientado a objetos, después de la abstracción de datos y la herencia.

POO XII
(Ejercicio)


En este video vamos a resolver el último ejercicio:

Ejercicio 4: Crear un programa en C++ que tenga la siguiente jerarquía de clases: Animal(Clase Padre) - Humano(Clase Hija) - Perro(Clase Hija), y hacer polimorfismo con el metodo comer().


Tal vez te interese