Podcast: Reproducir en una nueva ventana | Descargar
El día de año nuevo no descansamos y volvemos con un nuevo episodio del podcast en el que hablaremos de los tipos de datos lógicos y también de los tipos de datos enumerados en el lenguaje de programación C. También propondremos un par de ejercicios relacionados con estos tipos de datos para que podáis practicar durante el fin de semana (si la resaca no os lo impide, jeje) ¿Estáis preparados/as?
Antes de empezar con el episodio de hoy, comentaros que ya tenéis disponible la solución de los ejercicios del episodio anterior en el siguiente enlace. Es muy recomendable que le echéis un vistazo para ver en qué habéis fallado o también para tener otro punto de vista en la solución de los mismos.
Tipo lógico
El lenguaje C, al contrario de otros lenguajes, no dispone de un tipo de dato lógico o booleano para representar dos valores muy usados en programación: verdadero (true) y falso (false). En C vamos a considerar true a cualquier valor numérico distinto de 0 y false al valor 0. El tipo de datos lógico se representa en C como una variable de tipo int. Lo más común es declarar al principio de nuestros programas las constantes que permitan manipular valores booleanos de la siguiente forma:
#define TRUE 1
#define FALSE 0
La siguiente tabla muestra los operadores más comunes a aplicar a las variables de tipo lógico. Estos operadores lógicos van a ser muy utilizados en las sentencias condicionales que veremos más adelante:

También los operadores relacionales están muy ligados con el tipos de datos lógico ya que el resultado de aplicar este tipo de operadores es un valor que puede ser verdadero o falso. La siguiente tabla muestra los operadores relacionales en C:

En una revisión del estándar de C aparecida en diciembre de 1999 se introdujo el tipo de dato _Bool con los valores true y false disponible en el archivo de cabecera stdbool.h. A pesar de esto, hay que tener precaución con su uso ya que es posible que no esté disponible en muchos de los compiladores actuales.
Tipos enumerados
Un tipo de dato enumerado permite la definición de un conjunto de constantes simbólicas con valor entero. El siguiente ejemplo muestra cómo definir un tipo de dato enumerado mediante el uso de la palabra reservada enum (fijaros que los valores de la enumeración van separados por comas y que están encerrados por llaves). También muestra cómo declarar y asignar valor a una variable del tipo de dato enumerado:
/* Meses es el identificador de acceso a la enumeración */
enum meses {enero, febrero, marzo, abril};
/* Declaración de la variable mes de tipo meses */
enum meses mes;
/* Asignación de valor a la variable mes */
mes = enero;
Tenéis que saber que no hay formato de impresión para los tipos de datos enumerados y son proyectados sobre sus valores enteros (por eso se usa %d). Cada uno de los elementos de la enumeración lleva asociado un valor entero (el primero el 0, el segundo el 1, …) .
Por ejemplo: sabado es igual al valor 5
Debido a que los tipos de datos enumerados se considera como un entero se pueden usar los operadores aritméticos, cosa que nos puede resultar muy útil.
Por ejemplo: dia = dia + 1
Es posible asignar un valor distinto a cada elemento de la enumeración. Veamos otro ejemplo:
enum Respuesta { No = -1, Si = 1};
También común en lenguaje C recurrir a los tipos de datos enumerados para definir el tipo de datos booleano que hemos visto con anterioridad:
enum Boolean {false, true};
De esta forma false será tratado como falso (valor 0) y true como verdadero (valor 1).
Ejercicios propuestos
Ya se que en esta ocasión también estaréis con resaca de la nochevieja pero si vuestra mente lo permite, nuevamente os propongo un par de ejercicios para que realicéis en casa y si os apetece me mandéis el resultado de los mismos:
1. Escribe un programa que declare dos constantes con valores verdad y falso y dos variables enteras con valores 5 y 4. Haz con ellas todas las operaciones lógicas posibles.
https://gist.github.com/jmramirezpro/48c7f4dbb6d96ff33846
2. Escribe un programa que defina un tipo de dato enumerado para los días de la semana, una variable del tipo e imprima los días de la semana.
https://gist.github.com/jmramirezpro/d28226701b86be717c9a
Hasta aquí este nuevo programa del podcast Código Fuente donde hemos hablado de los tipos de datos lógicos y también de los tipos de datos enumerados como previa a los tipos de datos avanzados que veremos en próximos episodios.
Como siempre, muchas gracias por el tiempo que habéis dedicado a escucharlo y deciros que estaría encantado de recibir vuestras valoraciones de 5 estrellas en iTunes para que el podcast llegue a más gente como vosotros.
Ya sabéis, si tenéis dudas o queréis mas información sobre lo hablado, podéis comentármelo en los comentarios de esta entrada, en el formulario de la web masqueteclas.com/contactar o en la cuenta de Twitter del podcast @CodigoFnte.
Quedamos de nuevo en Código Fuente donde aprender informática nunca a estado tan cerca de vosotros. Hasta entonces… Adiós!
—
Si te gusta este podcast y quieres ayudarme a mantenerlo, puedes contribuir haciendo tus compras a través de este enlace de afiliados de Amazon.es o mediante una donación en mi cuenta Paypal.Me. Muchas gracias!!