Programación en C - Codificar texto con matriz de 25 letras

C – Codificación de texto con matriz

Hoy te mostraré un ejercicio resuelto en el lenguaje de programación C. Se trata de codificar un texto usando una matriz de 5 x 5 en donde una letra del alfabeto (que es el código) se remueve de la matriz para que solo haya 25 letras.

No encontré un nombre para esta codificación, pero básicamente se trata de eso: solicitar la letra que será el código, generar la matriz con las 25 letras sin contar el código y luego cifrar letras de par en par.

A continuación te muestro los detalles del ejercicio.

(más…)

Iniciar juego de arqueros en el bosque

Arqueros en el bosque con C – Programación de juego

Hoy te mostraré la solución a un ejercicio propuesto en C que trata sobre hacer el juego de Arqueros en el bosque.

El juego consiste de un bosque representado mediante una cuadrícula, como el que se presenta a continuación (la vista es aérea):

Cuadrícula de bosque para arqueros - Juego programado en C

Cuadrícula de bosque para arqueros – Juego programado en C

Donde X representa un árbol. El objetivo del juego consiste en que 2 jugadores (arqueros) ingresan al bosque por extremos opuestos (J1 en 9-A y J2 en 1-I) y cada uno debe de intentar eliminar al otro.

Para ello en cada turno un arquero podrá elegir entre moverse un lugar o disparar un flechazo. Los flechazos se mueven en línea recta, una distancia máxima de 5 metros (asuma cada celda 1 metro).

Por otro lado un jugador no puede moverse a una celda donde hay un árbol y las flechas no pueden traspasarlos. Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.

Veamos entonces cómo hacer este juego en ANSI C, C, C 99 o como le quieras llamar. Obviamente es compatible con C++.

(más…)

Radio y circunferencia de círculo con C

Radio y circunferencia en C

En este post de programación en C vamos a resolver un ejercicio muy simple. Se trata de calcular el radio y la circunferencia de un círculo.

Lo único que vamos a hacer será leer el diámetro (recuerda que este valor puede venir de cualquier lugar, por ejemplo, entrada del usuario), aplicar las fórmulas e imprimir los resultados.

Por cierto, no olvides que vamos a necesitar PI para calcular la circunferencia y radio en C.

(más…)

Porcentaje de diferencia con C - Programación

Porcentaje de diferencia en C

En este post de programación en C te enseñaré a sacar el porcentaje de diferencia que existe entre dos números, ya sea positivo o negativo.

Te voy a enseñar una función en ANSI C que te dirá el porcentaje de diferencia que hay entre dos variables de tipo double. Por ejemplo, entre el 50 y el 75 hay un porcentaje de diferencia del 50 %, mientras que entre 6 y 5 existe uno (negativo) de -16.6 %.

El porcentaje de diferencia sirve para hacer comparativas entre dos números y saber si ha habido un aumento o disminución.

(más…)

Redondear si parte decimal termina en 0.5 - Ejemplo de código

Redondear si parte decimal es 0.5

Al redondear números en cualquier lenguaje de programación como puede ser Python, Java, JavaScript, PHP, C, etcétera podemos usar floor, round y ceil para redondear hacia abajo, dependiendo del número o hacia arriba.

Redondear si parte decimal termina en 0.5 - Ejemplo de código

Redondear si parte decimal termina en 0.5 – Ejemplo de código

Sin embargo cuando usamos round para redondear dependiendo del número, pasa algo. Si el número termina en .5 sube al siguiente, por ejemplo el 6.5 sube a 7.

En ocasiones necesitamos que el número se redondee hacia abajo si su parte decimal es 0.5 o menos, y se redondee hacia arriba si no lo es.

Así que en este post te mostraré cómo redondear dependiendo si el número termina en 0.5 sin importar el lenguaje de programación.

(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…)

Extraer cuerpo de archivo HTML usando ANSI C - Trabajo con cadenas

C – Extraer contenido de archivo HTML

En este post de programación en C te enseñaré cómo obtener el texto (ignorando etiquetas) que se encuentra dentro de las etiquetas <body> de un archivo HTML.

Vamos a extraer lo que hay en el cuerpo de la página, pero además vamos a obtener solo el texto, ignorando todas las etiquetas que existan. Por poner un ejemplo, si la página es:

El programa en ANSI C debe extraer el contenido y además ignorar las etiquetas, produciendo la siguiente salida:

Veamos cómo resolver este ejercicio propuesto en C, ya que en otro lenguaje con soporte nativo de expresiones regulares sería fácil, pero aquí no lo es tanto.

(más…)

Ejercicio de cadenas en ANSI C

C – Ejercicio con cadenas

Hoy vamos a resolver un ejercicio propuesto en C. Se trata del trabajo con cadenas, vamos a solicitar dos cadenas y a partir de ellas hacer determinadas cosas. El problema dice así:

Escribir un programa que solicite dos cadenas que puede contener espacios, el programa deberá:

  • Decir qué cadena es mayor y cuál es menor alfabéticamente
  • Generar una nueva cadena que será la primera cadena leída, con las vocales convertidas a MAYÚSCULAS
  • Generar una nueva cadena que será la segunda cadena leída, con las consonantes convertidas a MAYÚSCULAS
  • Generar una nueva cadena concatenando las dos que ya fueron convertidas
  • Generar una nueva cadena que contenga la cadena concatenada invertida

Al finalizar el programa, este deberá:

  • Imprimir las dos cadenas originales
  • Imprimir las dos cadenas con las conversiones
  • Imprimir la cadena concatenada
  • Imprimir la cadena concatenada invertida

Veamos cómo resolver este problema usando ANSI C.

(más…)

Conversión de decimal con parte fraccionaria en C

C – Convertir decimal con parte fraccionaria

En este post de programación en ANSI C te mostraré 3 conversiones entre bases numéricas: de decimal a binario, a octal y a hexadecimal. La diferencia con mis otros posts es que en este caso vamos a convertir también la parte fraccionaria, decimal o como le llames a lo que va después del punto decimal.

Entonces vamos a convertir entre binario y decimal con punto decimal, además de convertir a octal, hexadecimal y a todas las otras bases.

Así que al final, con el código que te mostraré, podrás convertir números en base 10 con parte fraccionaria a cualquier base. Por ejemplo, convertir 3722.24 base 10 a E8A.3D70 base 16.

Te repito que la principal diferencia es que ahora este conversor en C soporta conversiones con punto decimal, cosa que me habían solicitado varios usuarios en mis otros posts.

(más…)