Lista ligada en C++ - Programación y estructura de datos

Lista ligada en C++

Hoy te enseñaré cómo implementar una lista ligada en el lenguaje de programación C++ también conocido como CPP.

Además de mostrarte la clase Lista y la clase Nodo, te enseñaré las operaciones que podemos realizar con ella. Son las siguientes:

  • Recorrer la lista imprimiendo los valores
  • Verificar si un elemento existe dentro de la lista
  • Eliminar un elemento de la lista ligada en C++
  • Crear una nueva lista sin elementos repetidos (eliminar duplicados)

Todo esto usando C++ e implementando los métodos y algoritmos manualmente. Por cierto, en este caso el tipo de dato que vamos a almacenar será un int pero fácilmente puedes cambiarlo a cualquier otro tipo de dato.

(más…)

Tres en línea (tic tac toe) programado en C - Desarrollo del juego

Tres en línea en C – Programación de juego

En este post de programación en C te mostraré el código fuente para el juego conocido como tres en línea, tres en raya, tic tac toe, gatitos, etcétera.

Tres en línea (tic tac toe) programado en C - Desarrollo del juego

Tres en línea (tic tac toe) programado en C – Desarrollo del juego

He programado el juego en C estándar así que se puede compilar en varios sistemas operativos, y también se puede compilar con un compilador de C++.

El juego de tres en línea que he desarrollado en C soporta el modo jugador contra jugador, jugador contra CPU (con una pequeña inteligencia artificial) y CPU contra CPU. A lo largo del post te explicaré el código y cómo es que funciona cada parte del programa.

Por cierto, en este caso el juego se desarrolla en la consola pero se le puede agregar una interfaz usando alguna librería como Allegro.

(más…)

C - Leer números separados por coma usando scanf

C – Escanear números separados por coma

En este post sobre C y scanf te enseñaré cómo leer dos números separados por coma. Es decir, solicitar al usuario que ingrese dos números separados por coma y escanearlos por separado usando scanf.

Por ejemplo, que el usuario digite 12,34 y que nosotros leamos los dos números 12 y 34 por separado.

Lo único que vamos a usar será scanf; función presente en stdio.h.

(más…)

Código Morse en C - Ejercicio con archivos de texto

C – Ejercicio con código Morse y archivos de texto

En esta ocasión vamos a ver un ejercicio en ANSI C que trata sobre código Morse y persistencia de datos en un archivo. Se trata de algunas opciones que son:

  • Cargar las traducciones en memoria usando una pila, leyendo el archivo de texto
  • Leer una cadena y mostrar su traducción en Morse
  • Leer un archivo de texto y escribir su contenido en otro archivo, pero traducido a Morse
  • Leer un archivo codificado y escribir su contenido en un archivo, pero traducido a texto plano

Tiene algunos requisitos que son:

  1. Cada código Morse va separado por 3 espacios
  2. Los espacios entre palabras se codifican como 5 espacios

Veremos paso por paso, lo que más vamos a practicar será el parseo de cadenas así como el trabajo con cadenas, que son un verdadero dolor de cabeza en C pero que al aprender a usarlas son relativamente sencillas.

(más…)

Triángulo de asteriscos con C – Ejercicio resuelto

En este post te mostraré un ejercicio de programación muy sencillo para principiantes. Se trata de imprimir un triángulo de asteriscos en el lenguaje de programación C.

Si bien está escrito en C, este código compila como un encanto para C++. Es decir, puedes compilarlo con, por ejemplo, g++ y no habrá problema.

Te mostraré dos ejemplos del triángulo de asteriscos, uno en donde va en aumento y otro en decremento.

(más…)

Por parzibyte, hace

Buscaminas en C – Juego

Hoy vamos a ver cómo implementar el juego buscaminas en C. Pasa que por diversión quise hacerlo y quedó muy bien a mi parecer.

Se trata del juego buscaminas en donde el usuario elige una casilla para descubrir lo que hay bajo la misma. Si hay una mina, el usuario pierde. En caso de que no, se le muestra al usuario el número de minas que hay cerca a esa casilla.

Lo que haremos será mostrar el tablero de juego, solicitar al usuario la casilla, ocultar las minas de manera aleatoria y saber si el usuario gana o pierde. Todo esto será modificable dentro del código fuente.

(más…)

C: sumar primer y último elemento de arreglo

En este post te voy a explicar cómo es el código para solucionar un algoritmo en C que dice algo así:

Escribir el código necesario que a partir de dos arreglos sume el primer elemento del primer arreglo con el último elemento del segundo; el segundo elemento del primero con el penúltimo elemento del arreglo y así sucesivamente hasta sumar el último elemento del primer arreglo con el primer elemento del segundo arreglo.

Almacenar la suma de cada elemento en un tercer arreglo y al finalizar, imprimir los 3 arreglos.

Lo que haremos será recorrer los arreglos, acceder a los índices por un contador y finalmente sumar. Realmente será sencillo realizar la suma de elementos de arreglos en C.

(más…)

Por parzibyte, hace
Ejecución de algoritmo - Texto a binario en C

Texto a binario en C – Pequeño traductor

Resumen: mostrar cómo convertir texto (oraciones, palabras, letras) a su representación binaria en C (usando ceros y unos). Es decir, hacer un traductor de texto a binario en ANSI C.

Por ejemplo, convertir Mi nombre es Luis Cabrera Benito en 01001101 01101001 00100000 01101110 01101111 01101101 01100010 01110010 01100101 00100000 01100101 01110011 00100000 01001100 01110101 01101001 01110011 00100000 01000011 01100001 01100010 01110010 01100101 01110010 01100001 00100000 01000010 01100101 01101110 0110100

(más…)

Árbol binario en C - struct nodo

Árbol binario en C – Inserción y recorrido

Resumen: implementar la estructura de datos de árbol, árbol binario, binary tree o simplemente tree en C y mostrar operaciones para:

  • Insertar un nuevo elemento u hoja
  • Recorridos inorden, postorden y preorden

Vamos a usar recursividad para algunas operaciones. Al insertar elementos vamos a compararlos para insertarlos a la izquierda si son menores que el nodo padre, o a la derecha en caso contrario.

(más…)