Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problemas y Algoritmos
Resolución de problemas
ipap.gba.gob.ar 1
Diseño de una solución
La resolución de un problema como un todo suele ser una tarea muy compleja. Una
técnica de diseño consiste en la descomposición funcional del problema en subproblemas
(divide y vencerás). Cada uno de estos subproblemas, debe resolver una parte del
problema original. La integración de las soluciones de los subproblemas es lo que
permitirá obtener la solución buscada. Nos ayudará a reducir la complejidad y a distribuir
el trabajo.
Implementación
En la etapa de implementación traducimos el diseño anterior al código. Se programan los
requisitos que se han especificado anteriormente, realizando los algoritmos necesarios.
Verificación
Una vez que se tiene un programa escrito en un lenguaje de programación se debe
verificar que su ejecución responde correctamente a las tareas que hemos especificado,
cumpliendo así con los requisitos de la primera etapa.
También nos ayuda a obtener información, así como a encontrar defectos, refinar el
código y depurar errores de funcionamiento del programa conduciendo a una mejor
calidad del sistema.
En cada una de las etapas vistas se pueden detectar errores lo cual lleva a revisar
aspectos de la solución analizados previamente.
ipap.gba.gob.ar 2
Ejercitación a resolver entre todos.
Siguiendo las etapas de resolución de problemas, plantee resolver el problema:
“Llevar los chicos al colegio”.
Para este curso en particular, la primera etapa (análisis) correspondiente al análisis del
problema, sólo se verá reflejada en la interpretación del enunciado a resolver. Con
respecto a la segunda etapa (diseño), se comenzará a trabajar con problemas simples que
no requieren ser descompuestos en subproblemas.
Algoritmo
La palabra algoritmo deriva del nombre de un matemático árabe del siglo IX, llamado Al-
Khuwarizmi, quien estaba interesado en resolver ciertos problemas de aritmética y
describió varios métodos para resolverlos. Estos métodos fueron presentados como una
lista de instrucciones específicas (como una receta de cocina) y su nombre es utilizado
para referirse a dichos métodos.
Un algoritmo es una receta, un conjunto de instrucciones o de especificaciones, una serie
de pasos a seguir para llegar a un resultado. Un algoritmo NO debe ser ambiguo, o sea,
cada instrucción o paso del algoritmo debe significar sólo una cosa.
Algunos ejemplos:
El algoritmo A.1 presenta una solución ambigua al problema planteado. No se sabe cuál
es la medida de “algo de lavandina”.
Los algoritmos A.2 y A.3 presentan una solución correcta al problema.
El algoritmo B.1 no especifica claramente el valor por el cual dividir al número 12, por lo
que resulta ambiguo.
El algoritmo B.2 especifica claramente el valor por el cual dividir al número 12, pero faltan
instrucciones, pasos para brindar una solución al problema.
ipap.gba.gob.ar 3
El algoritmo B.3 presenta una solución no ambigua y completa para este problema.
Elementos de un Algoritmo
El uso de algoritmos permite expresar, de una forma clara, la manera en que un problema
debe ser resuelto. Los elementos que lo componen son esenciales para la resolución de
problemas con computadora. Resulta fundamental alcanzar un total entendimiento del
funcionamiento de dichos elementos llamados estructuras de control.
ipap.gba.gob.ar 4
Secuencia de acciones
Una secuencia de acciones está formada por una serie de instrucciones que se ejecutan
una a continuación de la otra.
Instrucción A
Instrucción B
Instrucción C
Hasta ahora vimos ejemplos en donde los algoritmos se ejecutan siguiendo un orden
secuencial para resolver los problemas, es decir, que los pasos o instrucciones se realizan
uno a uno desde el primero hasta el último.
Sin embargo, debemos contemplar los casos donde los problemas son más complejos y es
necesario que se altere la ejecución secuencial de los pasos del algoritmo.
Para representar estos casos aparecen unas construcciones algorítmicas que permiten
ejecutar en un determinado sentido un grupo de instrucciones o repetir
automáticamente un grupo de instrucciones. Llamadas estructuras de control (selección,
repetición e iteración).
Entre todos!!
Implementar un algoritmo para sacar una lata de gaseosa de la heladera y servirla en un
vaso.
ipap.gba.gob.ar 5
Selección
Si / Verdadero No / Falso
Condición
Instrucción A Instrucción B
Por lo tanto, el algoritmo debe considerar las dos alternativas, es decir, qué hacer en cada
uno de los casos. La selección se notará de la siguiente forma:
si (condición)
acción/acciones a realizar si la condición es verdadera (A)
sino
acción/acciones a realizar si la condición es falsa (B)
ipap.gba.gob.ar 6
Repetición
Hacerlo
X veces
Instrucción A
repetir X
Acción o acciones a realizar X veces.
ipap.gba.gob.ar 7
Iteración
Si / Verdadero No / Falso
Condición
Instrucción A
Existen situaciones en las que se desconoce el número de veces que debe repetirse un
conjunto de acciones o instrucciones. Por ejemplo, si se quiere realizar como actividad
física hacer 10 saltos en el lugar. Puede utilizar repetir 10 -> saltar. Sin embargo, si quiero
saltar hasta que me canse será difícil indicar exactamente cuántos saltos debo realizar.
La iteración es una estructura de control que permite al algoritmo ejecutar en forma
repetitiva un conjunto de acciones utilizando una condición para indicar su finalización.
Por lo tanto, dentro de una iteración, además de las acciones/instrucciones que se
repiten, es necesario contar con un mecanismo que lo detenga (la condición).
La notación es de la forma:
mientras (condición)
Acción o acciones a realizar en caso de que la condición sea
verdadera.
ipap.gba.gob.ar 8
Si alguien está interesado en profundizar un poco más sobre las condiciones en las
estructuras de control puede investigar Lógica Proposicional y Tablas de Verdad.
Puntualmente los operadores lógicos AND, OR y NOT (Conjunción, Disyunción y
Negación).
ipap.gba.gob.ar 9