Archive for the ‘Entrenamiento Padawan’ Category

El código ASCII

enero 19, 2016

Si estás en el área de las tecnologías de la información, debes conocer el código ASCII. ASCII es la abreviación de American Standard Code for Information Interchange (código estándar americano para el intercambio de información) .

El código ASCII contiene 128 caracteres (numerados del 0 al 127) que están codificados utilizando números enteros, los cuales se obtienen utilizando 7 bits. Recordemos que las computadoras sólo entienden binario (ceros y unos). En ASCII, el número cero está representado por el código 48, la letra A por el código 65, que utilizando 7 bits en binario es 1000001.

Para los que no sepan binario… aprendan, jeje. No, aquí un breve repaso, pero si les recomiendo aprender.

En este caso nos dicen que sólo debemos usar 7 bits, así que ponemos 7 casillas (una para cada bit).

[ ][ ][ ][ ][ ][ ][ ]

Cada bit sólo puede estar prendido o apagado, utilizamos uno para indicar que está prendido y cero para indicar que está apagado. El bit menos significativo es el que está en la extrema derecha y el más significativo es el que está en la extrema izquierda. El valor que representa cualquier bit cuando está apagado es cero.

Para determinar el valor de un bit cuando está prendido, debemos seguir la siguiente regla:

El valor del bit menos significativo cuando está prendido es uno. El valor de cada bit siguiente (de derecha a izquierda) cuando está prendido es el doble del valor del bit anterior. Esto significa que el bit menos signifcativo representa uno si está prendido, el siguiente bit representa dos si está prendido, el siguiente representa 4 si está prendido, y así sucesivamente.

[ ]   [ ]   [ ]   [ ]   [ ]   [ ]   [ ]

64  32  16    8     4     2     1

Para obtener el 65 prendemos el bit más significativo y el menos significativo y dejamos todos los demás apagados, al sumar los valores que representan cuando están prendidos, obtenemos 64 + 1 = 65

[1]   [0]   [0]   [0]   [0]   [0]   [1]

64   32    16      8      4       2     1

Así que podemos obtener los números del 1 al 10 en binario utilizando sólo 4 bits:

1 = 0001

2 = 0010

3 = 0011

4 = 0100

5 = 0101

6 = 0110

7 = 0111

8 = 1000

9 = 1001

10 = 1010

Dentro de los 128 caracteres del código ASCII, además de las letras del alfabeto en inglés (no incluye la ñ) se encuentran los números y otros caracteres como el espacio (código ASCII = 32), el tabulador horizontal (código ASCII = 9), etc. Existe una tabla conocida como el código ASCII extendido que contiene otros caracteres (como la ñ, vocales con acento, entre otros) numerados del 128 al 255.

La tabla completa del código ASCII y ASCII extendido se puede encontrar en internet sin problemas. Hay otras codificaciones que contienen muchos más caracteres, la más usada actualmente es el código UTF-8 (de hecho ASCII viene siendo un subconjunto de UTF-8), pero de UTF-8 probablemente escribiré en otro post.

Diseño de bases de datos relacionales con Software Libre

noviembre 9, 2015

Para hacer el diagrama Entidad-Relación de una base de datos relacional es recomendable contar con una aplicación que nos permita (además de hacer el diagrama) generar un script de sql que podamos ejecutar en nuestro RDBMS para crear la base de datos.

La herramienta que yo uso se llama Power Architect, utilizo la versión Community Edition que se distribuye bajo una licencia GPL3 y además de forma gratuita. Cuenta con versión para Windows, OS X y para GNU/Linux (esta versión en la página aparece como Unix/Generic, supongo que significa que también funciona en algún sistema operativo Unix como FreeBSD, etc.)

Una vez que hemos creado el diagrama Entidad-Relación, la aplicación nos permite generar un script que contenga las instrucciones SQL necesarias para crear la base de datos en el RDBMS que seleccionemos (soporta MySQL, PostgreSQL, entre otros).

Necesitamos tener instalada una JVM (Java Virtual Machine) para poder ejecutar la aplicación

¿Realmente sabes cómo funciona el ciclo for en C?

julio 3, 2015

El ciclo for en C está compuesto de tres instrucciones: for (instrucción uno; instrucción dos; instrucción tres).

Las instrucciones uno y tres son opcionales, es decir, podemos ponerlas o no; pero la instrucción dos no la podemos omitir y además debe ser una condición que pueda evaluarse como verdadera o falsa. Esto significa que podemos tener un ciclo for de la forma: for ( ; condición; ).

Muchos programadores creen que la única forma de utilizar un ciclo for en C es la clásica forma: for (iniciar variable; condición de paro; incrementar variable) y están equivocados.

El ciclo for en C funciona siguiendo los siguientes pasos:

1. Realiza las operaciones de la instrucción uno (si la hay), estas operaciones sólo se ejecutan una vez

2. Evalúa la condición (la instrucción dos)

3. Si la condición es verdadera, ejecuta el cuerpo del ciclo for

4. Ejecuta la instrucción tres (si la hay)

Después de ejecutar el cuerpo del ciclo (el cual se ejecuta sólo si la condición es verdadera) se realiza el paso 4 y se repiten los pasos 2 y 3

 Podemos tener un ciclo for en donde el cuerpo del ciclo esté vacío, por ejemplo:

int main()
{
 int i;
 for (printf( "ejemplo for vacío\n"), i=0; i<5; printf("i: %d\n", i++))
      ;
 return 0;
}

En la primera instrucción, estamos haciendo dos cosas: 1. Imprimiendo el texto “ejemplo for vacío” y 2. inicializando la variable i con el valor cero.

La condición (instrucción dos) es que el cuerpo del ciclo se va a ejecutar mientras el valor de la variable i sea menor que 5

La instrucción 3 imprime el texto “i: ” seguido del valor de la variable i, y después incrementa el valor de la variable i en uno

También podemos hacer que un ciclo for funcione como un ciclo while:

int main()
{
 int i=0;
 for (; i<5; )
      printf("i: %d\n", i++);

 return 0;
}

Presentación de la categoría “Entrenamiento Padawan”

julio 3, 2015

Decidí abrir esta categoría para publicar aquí posts dirigidos a aquellas personas que son principiantes en esto de la programación, y aunque voy a tratar temas básicos, tampoco voy a empezar con cosas tipo “¿cómo prender la computadora?” o “¿qué es una variable?”.

Aclaro, no voy a resolver tareas.

Espero que los posts que publique aquí sean de utilidad para alguien

Saludos