Penúltima sección de este curso de C++ en donde seguiremos con punteros, pilas, colas y listas.
¡Continuamos!
Punteros I
Para usar una dirección almacenada, C++ proporciona un operador de indirección, *. El símbolo *, cuando es seguido por un apuntador (con un espacio permitido tanto antes como después de *), significa la variable cuya dirección está almacenada en. Por tanto, si dirNum es un apuntador (recuérdese que un apuntador es una variable que almacena una dirección), *dirNum significa la variable cuya dirección está almacenada en dirNum. Del mismo modo, *apunta_tab significa la variable cuya dirección está almacenada en apunta_tab y *apunta_car significa la variable cuya dirección está almacenada en apunta_car.
Punteros II
(Ejercicios)
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 1: Comprobar si un número es par o impar, y señalar la posición de memoria donde se está guardando el número. Con punteros.
Ejercicio 2: Determinar si un número es primo o no; con puteros y además indicar en que posición de memoria se guardo el número.
Punteros III
Aunque los punteros son, por definición, tan sólo variables usadas para almacenar direcciones, también existe una relación directa y estrecha entre los nombres de los arreglos y los punteros. En este vídeo se describe esta relación con detalle.
Punteros IV
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 3: Rellenar un array de 10 números, posteriormente utilizando punteros indicar cuales son números pares y su posición en memoria.
Ejercicio 4: Rellenar un arreglo con n números, posteriormente utilizando punteros determinar el menor elemento del vector.
Punteros V
Arreglo dinámico:
Es un arreglo de elementos que crece o mengua dinámicamente conforme los elementos se agregan o eliminan. Se suministra como librerías estándar en muchos lenguajes modernos de programación.
Punteros VI
Para transmitir de manera explícita una dirección a una función todo lo que se necesita hacer es colocar el operador de dirección, &, enfrente de la variable que se está transmitiendo. Por ejemplo, la llamada a la función intercambio(&primernum, &segundonum); transmite las direcciones de las variables primernum y segundonum a intercambio().
Punteros VII
Cuando se transmite un arreglo a una función, su dirección es el único elemento que se transmite en realidad. Con esto se quiere decir la dirección de la primera ubicación usada para almacenar el arreglo. Dado que la primera ubicación reservada para un arreglo corresponde al elemento 0 del arreglo, la dirección del arreglo también es la dirección del elemento 0.
Punteros VIII
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 5: Pedir al usuario N números, almacenarlos en un arreglo dinámico posteriormente ordenar los números en orden ascendente y mostrarlos en pantalla.
NOTA: Utilizar cualquier método de ordenamiento.
Ejercicio 6: Hacer una función para almacenar N números en un arreglo dinámico, posteriormente en otra función buscar un número en particular.
NOTA: Puedes utilizar cualquier método de búsqueda(Secuencial o Binaria)
Punteros IX
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 7: Pedir su nombre al usuario y devolver el número de vocales que hay.
NOTA: Recuerda que debes utilizar punteros.
Ejercicio 8: Pedir una cadena de caracteres (string) al usuario, e indicar cuantas veces aparece la vocal a,e,i,o,u; en la cadena de caracteres.
NOTA: Usar punteros.
Punteros X
En este vídeo aprenderemos como reservar memoria para una matriz dinámica, utilizando punteros.
Punteros XI
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 9: Realice un programa que calcule la suma de dos matrices dinámicas.
Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original.
Punteros XII
En este vídeo veremos como podemos utilizar punteros hacia estructuras.
Punteros XIII
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 11: Hacer una estructura llamada alumno, en la cual se tendrán los siguientes Campos: Nombre, edad, promedio, pedir datos al usuario para 3 alumnos, comprobar cuál de los 3 tiene el mejor promedio y posteriormente imprimir los datos del alumno.
NOTA: Usar punteros a estructura
Ejercicio 12: Defina una estructura que indique el tiempo empleado por un ciclista en recorrer una etapa. La estructura debe tener tres campos: horas, minutos y segundos. Escriba un programa que dado 3 etapas calcule el tiempo total empleado en correr todas
las etapas.
NOTA: Usar punteros.
Pilas I
Una pila (stack en inglés) es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos.
Pilas II
Para insertar elementos en la pila, solo hay que seguir 4 pasos:
1. Crear el espacio en memoria para almacenar un nodo
2. Cargar el valor dentro del nodo(dato)
3. Cargar el puntero pila dentro del nodo(*siguiente)
4. Asignar el nuevo nodo a pila
Pilas III
Para quitar elementos de una Pila, igualmente hay que seguir 4 Pasos:
1. Crear una variable *aux de tipo Nodo
2. Igualar el n a aux-dato
3. Pasar pila a siguiente nodo
4. Eliminar aux
Pilas IV
(Ejercicios)
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 1: Hacer un programa para agregar números enteros a una pila, hasta que el usuario lo decida, después mostrar todos los números introducidos en la pila.
Ejercicio 2: Hacer un programa en C++, utilizando Pilas que contenga el siguiente menu:
1. Insertar un caracter a la pila
2. Mostrar todos los elementos de la pila
3. Salir
Colas I
Cola:
Una cola en programación con C++ es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operación de inserción(push) se realiza por el final y la extracción(pop) por el frente.
Colas II
Para insertar elementos en una cola, sólo hay que seguir 3 pasos:
1. Crear espacio en memoria para almacenar un nodo.
2. Asignar ese nuevo nodo al dato que queremos insertar.
3. Asignar los punteros frente y fin hacia el nuevo nodo.
Colas III
(Ejercicios)
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 1: Hacer un programa en C++, utilizando Colas que contenga el siguiente menú:
1. Insertar un caracter a una cola
2. Mostrar todos los elementos de la cola
3. Salir
Ejercicio 2: Hacer un programa que guarde datos de clientes de un banco, los almacene en cola, y por ultimo muestre los clientes en el orden correcto.
Listas I
Listas enlazadas:
Una lista enlazada consta de un número de nodos con dos componentes(campos), un enlace al siguiente nodo de la lista y un valor, que puede ser de cualquier tipo.
Listas II
Listas enlazadas:
Una lista enlazada consta de un número de nodos con dos componentes(campos), un enlace al siguiente nodo de la lista y un valor, que puede ser de cualquier tipo.
Listas III
Para insertar elementos en una cola, sólo hay que seguir 3 pasos:
1. Crear un nuevo nodo
2. Asignar a nuevo_nodo-dato el elemento que queremos incluir a la lista
3. Crear dos nodos auxiliares y asignar lista al primero de ellos
4. Insertar el elemento a la lista enlazada
Listas IV
Para mostrar los elementos de la lista sólo hay que seguir 3 pasos:
1. Crear un nuevo nodo(actual)
2. Igualar ese nuevo nodo(actual) a lista
3. Recorrer la lista de inicio a fin
Listas V
Para buscar un elemento en una lista, sólo hay que seguir 4 pasos:
1. Crear un nuevo nodo(actual)
2. Igualar ese nuevo nodo(actual) a la lista
3. Recorrer la lista
4. Determinar si el elemento existe o no en la lista
Listas VI
Para eliminar un elemento en una lista, sólo hay que seguir 4 pasos:
1. Preguntar si la lista no está vacía
2. Crear un *aux_borrar y *anterior=NULL
3. Igualar *aux_borrar al inicio de la lista
4. Recorrer la lista
5. Eliminar el elemento
Listas VII
Para dejar vacía una lista, sólo seguir 4 Pasos:
1. Crear un nodo *aux e igualarlo al inicio de la lista.
2. Guardar el dato que queremos eliminar dentro de *aux.
3. Pasar lista a siguiente nodo.
4. Eliminar aux.
Listas VIII
En este video vamos a resolver los siguientes ejercicios:
Ejercicio 1: Crear una lista que almacene "n" números enteros y calcular el menor y mayor de ellos.
Ejercicio 2: Crear una lista que almacene "n" números reales y calcular su suma y promedio.