You are on page 1of 24

Metodologa para la solucin de Problemas

Algoritmia y programacin EISC- Universidad del Valle Febrero 8 de 2010

Contenido
Introduccin: Problemas, algoritmos y programas. La algoritmia y la solucin de problemas. Estrategia para solucionar problemas.

Problemas
Todos nos hemos topado con acertijos como el siguiente: Organice dgitos del 1 al 9 en el recuadro siguiente, de manera que la suma de cada fila, cada columna y las dos diagonales d el mismo resultado

Este acertijo se denomina construccin de un cuadrado mgico.

Solucin de problemas
Supongamos que dar solucin al cuadrado mgico es el Problema que se desea solucionar. Los problemas pueden tener varias soluciones, por ejemplo, veamos la siguiente:

Es una solucin porque el cuadrado est lleno con dgitos de 1 al 9. Pero es incorrecta, verifique la suma de las columnas y las filas (las diagonales estn buenas).

Ejercicio No.1
Proponga una solucin para el problema del cuadrado mgico:

Ejercicio No. 1, parte 2


Teniendo en cuenta la solucin propuesta responda las siguientes preguntas:
Cul es la solucin que encontr? Es correcta su solucin? Cmo le demuestra a alguien que su solucin es correcta? Cul fue el proceso de solucin que llevo a cabo en su mente? Cmo le explicara a alguien el proceso de solucin que llev a cabo? Puede poner por escrito el proceso de solucin que llev a cabo? Escrbalo!!

Ejercicio No. 2
El problema ahora es: calcular el rea de un tringulo cualquiera (usted sabe hacerlo seguramente) Pero el problema real es: escribir los pasos para que otra persona (nio de 10 aos por ejemplo) calcule el rea de cualquier tringulo.
rea??

Ejercicio No. 2, parte 2


Ahora pdale a un compaero que siga las instrucciones que escribi. Qu situaciones pueden ocurrir? A diferencia del cuadrado mgico, en este problema es necesaria alguna informacin: base y altura del tringulo. No es muy clara la forma en que se relacionan los datos con las instrucciones. Usted tiene errores de ortografa o gramtica en las instrucciones. Esto dificulta, o impide la comprensin de las instrucciones. Su compaero entiende las instrucciones, pero el resultado es incorrecto.

Y qu tiene que ver todo esto con la programacin?


El proceso de programar es muy similar al del ejercicio No. 2 Diferencias: Quien sigue las instrucciones es el computador Las instrucciones se llaman programa Las instrucciones deben estar escritas en un lenguaje que el computador entienda: Lenguaje de programacin

Diseo de programas
Una de las habilidades necesarias para programar es resolver problemas . El objetivo es poder escribir un conjunto de instrucciones en forma de programas. A continuacin vamos a introducir la estrategia de diseo, que es una gua que se debe seguir para tener como resultado un programa. Aclaracin: en esta clase No vamos a escribir programas, nuestros diseos son un primer paso en la codificacin (traducir las instrucciones al lenguaje de programacin)

Problema
La profesora Mara, del curso tercero A de la escuela Colombia, le solicita a usted que le ayude a ensearle a los nios de su curso la forma adecuada para calcular el rea de un tringulo. Para ello usted deber escribir un conjunto de instrucciones que los nios de la clase deben seguir.

Preguntas
Despus de leer el problema anterior, y antes de escribir las instrucciones usted debe responderse algunas preguntas:
Qu datos del problema son irrelevantes? Qu informacin necesitan los nios para hacer la operacin? cul es el resultado producido por las instrucciones? Cules son los pasos a seguir? Los nios conocen las operaciones aritmticas que usted est usando? (saben dividir y multiplicar??) Cmo puede asegurarse usted de que las instrucciones que entrega sean correctas?

Estrategia de diseo
Es una secuencia de pasos que facilitan el diseo de programas, porque nos indican lo que se debe hacer y el orden que debemos seguir: Entender el problema: escribiendo un contrato y definiendo un objetivo. Proponer Ejemplos: para entender la relacin de los datos de entrada con la salida. Escribir las instrucciones (programa) Realizar pruebas: usted debe seguir las instrucciones que propuso y observar si obtiene el dato esperado. Apliquemos la estrategia en el programa de ejemplo!

Estrategia de diseo: paso 1


Retomemos el enunciado, resaltando la informacin relevante y entendiendo en qu consiste el problema
La profesora Mara del curso tercero A de la escuela Colombia, le solicita a usted que le ayude a ensearle a los nios de su curso la forma adecuada para calcular el rea de un tringulo. Para ello usted deber escribir un conjunto de instrucciones que los nios de la clase deben seguir. El rea se calcula as: rea= (base * altura) / 2. Los nios deben conocer previamente la base y la altura. El resultado es un nmero: el rea del tringulo.

Estrategia de diseo: contrato y objetivo


Con la informacin anterior escribimos el contrato. Este es un comentario que lleva: El nombre: vamos a darle un nombre a la solucin Los datos: los datos necesarios (entradas) y los que se producen (salida) estos van separados por una flecha. El objetivo es una breve explicacin de lo que hacen las instrucciones. En nuestro ejemplo: area_triangulo: base altura rea objetivo: instrucciones que permiten calcular el rea de un tringulo

Estrategia de diseo: formulando ejemplos


Los ejemplos son importantes porque nos ayudan a aclara cuales son las operaciones que debemos aplicar o los pasos que seguimos para resolver un problema As ser ms fcil escribirlos para que otros los lleven a cabo. Para formular ejemplos es necesario tener datos necesarios y clcular los resultados. En nuestro ejemplo:
Si la base mide 10cm y la altura 15cm el rea es ?? Si la base mide 30cm y la altura 20cm el rea es??

Estrategia de diseo: escribiendo instrucciones


Hay tres tipos de problemas: Los simples: slo hay una forma de aplicar la frmula (base * altura)/2 Los que tienen alternativas: existen varias alternativas (rutas) para llegar desde la cafetera a la biblioteca Los que tienen repeticiones: cuando se quiere subir una escalera, hay que repetir varias veces la instruccin subir un escaln hasta que se llegue al fin de la escalera

Estrategia de diseo: escribiendo instrucciones


Tambin hay que tener en cuenta el rden de las instrucciones, no se puede empezar la instruccin subir un escaln sin haber llegado al principio de la escalera Es ideal enumerar cada una de las instrucciones, para dar a entender el orden en que deben ser ejecutadas.

Estrategia de diseo: escribiendo instrucciones


En nuestro ejemplo (recuerde que la base y la altura son datos que conocemos previamente): En la frmula: (base*altura )/2 reemplazar las variables base y altura por los valores de entrada Realizar las operaciones (multiplicacin y divisin) El resultado obtenido es el rea.

Estrategia de diseo: escribiendo instrucciones


Las instrucciones que presentan alternativas se escriben usando las palabras: s <condicin> entonces <instruccin> sino <instruccin> Ejemplo: s la nota de estudiante es mayor o igual a 3 entonces muestre el mensaje: el estudiante pas la materia sino muestre el mensaje: el estudiante perdi la materia

Estrategia de diseo: escribiendo instrucciones


Las instrucciones que presentan repeticiones se escriben usando las palabras: repita o mientras repita un nmero de veces <instruccion> mientras condicion haga <instruccion>

Estrategia de diseo: escribiendo instrucciones


Ejemplo 1: repita 10 veces haga subir al siguiente escaln Ejemplo 2: mientras no haya llegado al fin de la escalera haga subir al siguiente escaln Ejemplo 3: mientras no haya llegado a la biblioteca haga siga caminando

Estrategia de diseo: probando las instrucciones


La nica forma de saber que las instrucciones que escribo generan el resultado esperado es seguirlas usted mismo y observar que el resultado es correcto. Para esto nos apoyamos en los ejemplos, porque en ellos tenemos entradas y resultados esperados. Ejercicio: pruebe las instrucciones para clcular el rea de un tringulo con los datos de los ejemplos. Responda: son correctas las instrucciones?

Estrategia de diseo: Errores


Qu pasa cundo no tenemos el resultado deseado? Esto quiere decir que nos hemos equivocado y por tanto debemos corregir las instrucciones. En programacin esto se llama debugging y es una tarea muy comn. Lo que no deb hacerse es: Tratar de adivinar la solucin al problema. Lo que debe hacerse es: revisar las instrucciones, su rden, que estn correctamente escritas y que el flujo de la informacin es correcto. Por ejemplo que las entradas al problema del rea sean efectivamente dos nmeros y que correspondan a la base y la altura del tringulo.

You might also like