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

Compilando primer programa de Allegro 5 en Windows

Compilando Allegro 5 con GCC en Windows

En este post te mostraré cómo compilar programas con Allegro (librería para desarrollo de videojuegos en C y C++) desde Windows usando el compilador gcc y obviamente Allegro en su versión 5.

Compilando primer programa de Allegro 5 en Windows

Compilando primer programa de Allegro 5 en Windows

A lo largo del tutorial te enseñaré cómo instalar el compilador, agregarlo a la PATH, incluir los headers y cosas necesarias de allegro para finalmente compilar nuestro hola mundo con Allegro 5 .

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

Intercalar mayúscula y minúscula en C - Programación

C – Convertir a minúscula y mayúscula intercalado

En este post de programación en C, también conocido como ANSI C vamos a ver cómo intercalar las letras de una cadena para convertir una en mayúscula, la siguiente en minúscula, y así hasta terminar.

Básicamente vamos a convertir un carácter a minúscula, el segundo a mayúscula y así sucesivamente. Esto es convertir la cadena de manera intercalada.

Por ejemplo, convertir parzibyte a PaRzIbYtE.

(más…)

Árbol binario en C con nodo de tipo cadena

C – Árbol binario de cadenas

En este post te mostraré cómo implementar la estructura de datos de árbol binario en ANSI C en donde el dato de cada nodo o rama será una cadena.

Te enseñaré cómo agregar un struct de nodo de árbol cuyo dato es char*, elegir si el nodo va a la izquierda o derecha (comparando cadenas) , recorrer el árbol en preorden, inorden y postorden y también hacer una búsqueda en el mismo.

Me estoy basando en el tutorial de árboles binarios en C que presenté anteriormente, solo que en aquel entonces fue con un tipo de dato entero, ahora lo haré con strings.

Nota: nodo y rama serán usados como sinónimos a lo largo de este post.

(más…)

Concatenar char y string en C

Concatenar char y string en C

En este post sobre C te mostraré cómo concatenar un carácter y una cadena, es decir, agregar un tipo de dato char a un tipo de dato char* que no es otra cosa más que un arreglo de caracteres, ya que en C no existen las strings como tal.

Explicado con pocas palabras te enseñaré como agregar un char como 'a' a una cadena como "Hol".

Aunque en otros lenguajes esto no tiene ninguna complejidad, en ANSI C hay que escribir un poco más de código.

(más…)

Valor absoluto en C

Valor absoluto en C

En este post de programación en C te enseñaré a calcular el valor absoluto de un número.

El valor absoluto es la distancia que existe entre dos puntos de una recta, y esta distancia siempre será positiva.

Explicado con otras palabras y sin ser matemático, el valor absoluto es convertir un número a su representación positiva en caso de que éste sea negativo.

Anteriormente te enseñé cómo convertir un número negativo a positivo en C en donde vimos funciones nativas, pero en este post te enseñaré cómo hacer una función propia.

(más…)

C – Ejercicio resuelto sobre gestión de películas

En este post de programación en C voy a resolver un ejercicio que trata sobre cines y la gestión de películas. Es un ejercicio para practicar ANSI C. Dice así:

Diseñar un programa en Lenguaje C que almacene la información de las películas que se proyectan en las distintas salas de los siguientes cines: CDMX Norte, CDMX Oriente, Reforma y Perisur.

Cada cine tiene 3 salas, hay 2 horarios distintos en cada sala (4:00 pm y 6:00 pm) Realizar un menú para el uso de este programa. En el programa debe definirse las estructuras de datos (struct) necesarias para almacenar la información sobre las películas: título de la película, hora de inicio, cines y salas donde se proyecta, clasificación (A todo público, B adolescentes y adultos y C mayores de 21 años).

El menú del programa debe tener las siguientes opciones:

  1. Registrar una película. Si ya había alguna película, está será sustituida por la proporcionada en esta opción.
  2. Desplegar toda la información de la película que se proyecta en la sala de un cine. Se pedirá al usuario que proporcione el cine, la sala, la hora y el día correspondiente, y el programa listará la información de la película que está proyectada en la cartelera. En caso de no haber película proyectada, se visualizará el mensaje correspondiente.
  3. Buscar película. El usuario elige la película que quiere buscar y desplegar toda la información.
  4. Listar películas que se están exhibiendo en un cierto día por clasificación de edad.
  5. Salir del Programa.

Veamos entonces cómo resolver ese ejercicio.

(más…)

C – Ejercicio con matriz de calificaciones, alumnos, materias y promedios

En este post de programación en C, también conocido como ANSI C vamos a resolver un ejercicio propuesto que trabaja con matrices, calificaciones, alumnos, materias y promedios. Es un ejercicio que voy a resolver, el mismo dice así:

Escriba un programa que tenga implementadas las siguientes funciones:

  1. Que reciba una matriz de nombre calificaciones y la llene de manera aleatoria con calificaciones de n alumnos y m materias. En la última columna de la matriz se calculará el promedio de cada alumno respectivamente.
  2. Reciba la matriz anterior y una matriz con los nombres de los alumnos. La función imprimirá los datos de nombres y calificaciones de cada alumno, organizados como una tabla. Así mismo, calculará e imprimirá el menor y mayor promedio correspondiente al alumno o los alumnos respectivamente.

Veamos entonces el código

(más…)

Ejercicio resuelto en C – Ordenar archivo de texto

Hoy vamos a resolver un ejercicio de programación en lenguaje C que trata sobre ordenar una lista de palabras contenidas en un archivo de texto. Dice algo así:

Dado un archivo con extensión txt cuyo contenido es una lista de palabras (separadas por un salto de línea) se leerá usando el lenguaje C, y después se va a imprimir esa misma lista pero con las palabras ya ordenadas de la Z a la A. Por ejemplo, si la lista es:
– Abraham
– Pedro
– Luis

El resultado en la consola será:
– Pedro
– Luis
– Abraham

Es decir, ordenado en orden descendente de la Z a la A.

Veamos cómo resolverlo.

(más…)

Ordenar arreglo de cadenas en C

En este post de programación en C te mostraré cómo ordenar un arreglo de cadenas de manera alfabética en orden ascendente. Es decir, ordenar un array de strings en C de la A a la Z.

Ordenar un arreglo de cadenas en C es distinto a hacerlo con uno de tipo numérico, pues para comparar cadenas usamos strcmp. Además, el tipo string no existe como tal, así que debemos usar arreglos de arreglos.

(más…)