El espacio del problema y los diagramas de entradas y salidas para la implementacion de algoritmos

Page 1

LA IDENTIFICACIÓN DEL ESPACIO DEL PROBLEMA Y LA ELABORACIÓN DE LOS DIAGRAMAS DE ENTRADAS Y SALIDAS COMO MECANISMOS PRÁCTICOS PARA COMENZAR LA IMPLEMENTACIÓN DE ALGORITMOS

Ing. Diego Darío López Mera

RESUMEN Este documento propone un mecanismo para entender o enseñar el desarrollo de algoritmos antes de implementarlos en pseudocódigo o en algún lenguaje de programación, el cual se puede utilizar para facilitar la enseñanza de la algoritmia para quienes se les dificulta esta temática. Se explica el Espacio del Problema y el Diagrama de Entradas y Salidas. Palabras Clave: Algoritmo, Resolución de Problemas, Programación, Espacio del Problema

ABSTRACT This paper proposes a way to understand or teach algorithms before implement in pseudocode or something programming language, this can use to facilitate the teaching of algorithmic for whose difficult this thematic. This explains the Space of Problem and the Diagram of Inputs and Outputs. Key Words: Algorithm, Problem Solving, Programming, Space of Problem

“El arte de la programación es el arte de organizar la complejidad”. E.W. Dijkstra.

INTRODUCCIÓN Un Algoritmo es un procedimiento para resolver un problema en términos de: 1. Una secuencia de pasos finitos a seguir y... 2. El orden en que dichos pasos deben ejecutarse. Para resolver un problema, primero, se debe entender su esencia; es decir, “el quid del problema”. Por ejemplo: Un avión cubre la distancia que separa las ciudades A y B en 1 hora y 20 minutos. Sin embargo, al volar de regreso recorre esa distancia en 80 minutos. ¿Cómo se explica esto?

La búsqueda de la solución del ejercicio anterior se basa en una cuidadosa y atenta lectura con el fin de descubrir el quid del problema; sólo así se cae en cuenta que, en realidad, no hay mucho que explicar, ya que 80 minutos es igual a 1 hora con 20 minutos. La dificultad, para el lector que la tuvo, consistió en una falta de atención en las condiciones planteadas. Ahora bien, el siguiente ejercicio muestra otro aspecto en la resolución de problemas: Utilizando apenas seis palillos de igual longitud construir solamente cuatro triángulos equiláteros.


La identificación del Espacio del Problema y la elaboración de los Diagramas de Entradas y Salidas como mecanismos prácticos para comen zar la implementación de algoritmos

Si se busca la solución con dibujos en el papel, será difícil; la búsqueda sólo se facilita cuando se explora otras alternativas y se elabora un acertado modelado del problema, ya no en la bidimensionalidad del papel; sino con mejores herramientas (en este caso, puede ser simples palillos) en el espacio tridimensional.

2

Figura 1. El Espacio del Problema para tres discos de las Torres de Hanoi*

De tal modo que no existe una fórmula mágica y universal para resolver problemas; sin embargo, el estudio detallado y análisis concienzudo de varios problemas con sus diversas soluciones ayudará y facilitará la concepción de ideas; aparte que proporcionará las herramientas necesarias, aunque nunca suficientes, para conseguir de un modo fácil, por lo menos, una solución. Este documento aporta una aproximación al Espacio del Problema y al Diagrama de Entradas y Salidas como mecanismos prácticos para facilitar la comprensión del quid de problemas computacionales y la elaboración de sus algoritmos correspondientes.

1. EL ESPACIO DEL PROBLEMA El Espacio del Problema se refiere a la representación interna de quien resuelve el problema y se compone de: ESTADO INICIAL: Representación de las condiciones dadas iniciales.

Figura 2. El Espacio del Problema para la sumatoria de los dígitos del número 1974

ESTADO FINAL: Representación de la situación objetivo o final. ESTADOS INTERMEDIOS: Estados generados por la aplicación de un operador a un estado determinado. OPERADORES: Movimientos que se hacen para pasar de un estado a otro.

Las figuras 1 y 2 muestran dos ejemplos del Espacio del Problema.

* Torres de Hanoi (de Edouard Lucas): Dadas tres varillas con un número dado de discos en la varilla 1, ordenarlas por orden de tamaño con el menor arriba; luego, mover los discos de la varilla 1 a la 3 en el menor número posible de movimientos, moviendo uno por vez y no poniendo nunca un disco mayor sobre otro menor.


La identificación del Espacio del Problema y la elaboración de los Diagramas de Entradas y Salidas como mecanismos prácticos para comen zar la implementación de algoritmos

Así que el Espacio del Problema se conceptualiza como el conjunto de todos los estados que resuelve el problema.

3

int para números enteros. float para números decimales. char para caracteres alfanuméricos y otros símbolos: $, ?, @, &, %, etcétera.

2. DIAGRAMA DE ENTRADAS Y SALIDAS Un programa de computador trabaja como una caja negra, es decir, aunque se desconozca exactamente cómo funciona por dentro; por lo menos, se debe saber para qué sirve o, en otras palabras, se debe conocer (1) cuál es el rango de datos válidos que se pueden ingresar al programa para que sean procesados y (2) cuál es el rango de datos que se estima sean devueltos por el computador. La figura 3 muestra el Diagrama de Entradas y Salidas.

De tal modo que para el problema del cálculo del área del cuadrado podría elaborarse cualquiera de los diagramas de entradas y salidas de la figura 4. Figura 4. Diagramas de Entradas y Salidas para el cálculo del área de un cuadrado

Figura 3. Diagrama de Entradas y Salidas

En resumen, puede suceder que el programador por desconocimiento de la naturaleza particular del problema no sepa cómo solucionarlo (nadie lo sabe todo); pero por lo menos sí debe reconocer cuáles son las entradas (inputs) y las salidas (outputs) del programa. Por ejemplo: si el problema consiste en calcular el área de un cuadrado, es deber del programador, antes de escribir código en determinado lenguaje, tener la seguridad de que el programa debe dar como resultado el área de un cuadrado (o sea reconocer el output) y establecer que el dato ingresado por el usuario es el valor del lado (o sea reconocer el input). Estas entradas y salidas son también conocidas como variables, ya que para cada ejecución del programa sus valores varían. En una ejecución, por ejemplo, se le puede asignar a la variable Lado el valor de 2; mientras que en otra ejecución del programa, esta misma variable podría tener el valor de 1974. A todas las variables se les debe especificar su tipo de datos. Aunque los lenguajes de programación permiten el uso de diversos tipos, para simplificar los ejemplos de entradas y salidas del presente capítulo, se utilizará sólo los siguientes tipos de datos:

La elección correcta del diagrama de la figura 4 depende de los requerimientos que tiene que cumplir el programa. Si el programador está seguro que los usuarios siempre ingresarán valores enteros, el primer diagrama será más que suficiente. No se considera el diagrama cuya entrada sea un número decimal (float Lado) y su salida sea un número entero (int Area), ya que pasar de decimales a enteros implica una pérdida de datos. Por ejemplo: si el valor decimal del Lado es 3.2454, entonces al calcular el Área como número entero daría como resultado 10 (lo cual, desde luego, es incorrecto). Ahora bien, los ejemplos de las figuras 5, 6 y 7 ilustran mejor lo anterior expuesto:


La identificación del Espacio del Problema y la elaboración de los Diagramas de Entradas y Salidas como mecanismos prácticos para comen zar la implementación de algoritmos

Figura 5. Diagrama de Entradas y Salidas para el cálculo del área de un triangulo.

4

BIBLIOGRAFÍA [1] AHO, Alfred; HOPCROFT, John; ULLMAN, Jeffrey. Estructuras de Datos y Algoritmos. México: ADISSON-WESLEY LONGMAN, 1998. [2] BARCO, Luiz. Viajes Seguros. Revista Muy Interesante. Edición Especial: Juegos. Número 2. Colombia: EDITORA CINCO, 1991. [3] JOYANES AGUILAR, Luís. Fundamentos de Programación, Algoritmos y Estructura de Datos. España: MC GRAW HILL / INTERAMERICANA, 1996. [4] MAYER, Richard. Pensamiento, Resolución de Problemas y Cognición. España: EDICIONES PAIDÓS, 1986.

Figura 6. Diagrama de Entradas y Salidas para determinar s i un triángulo es equilátero, isósceles o escaleno, dadas las longitudes de sus lados.

Figura 7. Diagrama de Entradas y Salidas para el cálculo del área de una cara de un cubo y su volumen.

[5] NÁPOLES VALDÉS, Juan. Aventuras, venturas y desventuras de la resolución de problemas en la escuela. Universidad Tecnológica Nacional. Argentina: EDITORIAL UNIVERSITARIA UTN, 2005. [6] PERELMANN, Y. El Divertido Juego de las Matemáticas. Colombia: EDICIONES MARTINEZ ROCA, 1968. [7] TREJOS BURITICÁ, Omar Iván. La Esencia de la Lógica de Programación. Colombia: EDITORIAL PAPIRO, 1999.

CONCLUSIONES Un problema no puede ser resuelto sin primero entender clara y minuciosamente en qué consiste, pero también se necesita un impulso que anime y motive a solucionarlo. Toda la teoría aquí expuesta fue aplicada en los cursos de algoritmia del autor del presente documento, obteniendo como resultado mejoras en el desempeño, concepción y desarrollo de algoritmos por parte de los estudiantes. La cuestión es facilitar y ayudar a encontrar la belleza y lo divertido en el arte de organizar la complejidad. De todas formas, la metodología para la enseñanza y aprendizaje de la algoritmia debe regirse, en últimas y sin concesiones, a lo planteado por Luís Joyanes Aguilar: “Todos los cursos de programación deben apoyarse en la resolución de gran número de problemas que permitan al alumno adquirir práctica que le facilite el aprendizaje”.

Datos del Autor: Ing. Diego Darío López Mera Ingeniero de sistemas de la Universidad del Valle Email: diegodario arroba colombia punto com Docente de la Institución Universitaria Antonio José Camacho, Cali-Colombia http://www.uniajc.edu.co

Este artículo fue publicado en la revista SAPIENTIA de la Institución Universitaria Antonio José Camacho. LÓPEZ MERA, Diego Darío. La identificación del espacio del problema y la elaboración de los diagramas de entradas y salidas como mecanismos prácticos para comenzar la implementación de algoritmos. Revista Científica y Tecnológica SAPIENTIA. Mayo 2007. Volumen 2. Número 3. ISSN 1909-0811. Colombia: Institución Universitaria Antonio José Camacho, pag. 33-36. 2007.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.