agosto 27, 2012

Las Torres de Hanoi


El siguiente pseudocódigo muestra el uso de una función recursiva para resolver el problema de las torres de Hanoi para cualquier número de anillos con tres torres, en este escenario se consideran tres anillos. Recordemos que las rutinas recursivas son aquellas que hacen llamadas a sí mismas y siempre deben tener un llamada inicial y una condición final.

En este ejemplo la llamada inicial a la rutina MoverAnillo es especificando el anillo mayor 3, la torre A Origen, la torre B Libre y la torre C Destino. En la primera llamada se volverá a llamar la rutina MoverAnillo pero ahora para el anillo 2 e intercambiando las torres Destino y Libre, y así recursivamente hasta llegar al anillo más chico, el 1. Al llegar al anillo 0 se se alcanza la condición final y regresa el control a cada una de las llamadas anteriores en perfecto orden inverso.

agosto 20, 2012

Las Monedas del Avaro


El siguiente pseudocódigo demuestra un algoritmo del tipo “greedy” (voraz o avaro) para resolver el típico problema de dar el cambio correcto según las opciones disponibles en diferentes denominaciones, siendo el objetivo dar la menor cantidad posible de monedas o billetes.

Por ejemplo, dar $123 pesos de cambio se puede hacer de varias formas, la más óptima es con dos de $50, uno de $20, uno de $2 y uno de $1 (cinco monedas). Otra opción posible es seis de $20 y tres de $1 (nueve monedas). Obviamente la peor opción seria dar ciento veintitrés monedas de $1 peso.

agosto 13, 2012

Siempre hay más de una forma de hacerlo


Éste el lema de los programadores de PERL y propone que es relativamente sencillo hacer la misma tarea pero de muy diferentes maneras. Estas diferentes maneras, aunque hagan lo mismo, son muy distintas tanto en su ejecución, codificación y entendimiento.

En este ejemplo veremos con pseudocódigo como desplegar las tablas de multiplicar, del uno al diez, utilizando los tres principales tipos de ciclo: PARA, MIENTRAS y HASTA (for, while, until). Adicionalmente, se analiza solución sin ningún tipo de ciclo predefinido.

agosto 09, 2012

¿Quién evalúa al evaluador?

He trabajado durante más de 20 años en el área de sistemas para diversas empresas multinacionales, bancos y aseguradoras. Por motivos personales decidí obtener el título de “Ingeniero de Software” por acreditación de conocimientos adquiridos, según Acuerdo 286 de la SEP en el CENEVAL.

A pesar de que todo el proceso de evaluación es muy explícito, en el que por cualquier error del solicitante el CENEVAL se reserva el derecho a cancelar sin reembolsar el dinero, pude observar las siguiente irregularidades:

La primera fase, una evaluación escrita de ocho horas de duración, contiene preguntas inconsistentes, capciosas y sin solución determinante. Está escrito con términos a veces en español, otras en inglés. A pesar de ello tuve un resultado satisfactorio.

agosto 07, 2012

¿Qué es interactividad?

Artículo Original Publicado en:
Usuario, Revista Electrónica
Septiembre 1997

Todo mundo habla de interactividad, es una palabra muy de moda que se escucha por todas partes y sin embargo mucha gente no sabe realmente que es interactividad. A mi me obsesionó bastante la duda de qué es interactividad, por lo que durante dos pesadas semanas comencé mi búsqueda de definición de interactividad. Obviamente inicié buscando en los diccionarios, pero en los dos que consulte no viene la palabra interactividad, solo viene Interacción: Influencia recíproca. Realmente no me convenció esta definición, por las razones que explicaré más adelante, pero continué la búsqueda en dos libros importantes que tengo sobre multimedia: Todo el poder de multimedia de Tay Vaughan y Todo sobre multimedia de Winn L. Rosch. En el primero libro ni siquiera viene la palabra interactividad en el índice, pero en una parte el libro dice "Cuando se da el control de navegación a los usuarios para que exploren a voluntad el contenido, multimedia se convierte en no-lineal e interactiva".