Está en la página 1de 9

Módulo 1.

Problemas y Algoritmos

Resolución de problemas

La Informática es la ciencia que estudia el análisis y resolución de problemas utilizando


computadoras.
La resolución de problemas mediante una computadora consiste en dar una adecuada
formulación de pasos precisos a seguir para indicar a la máquina lo que debe llevarse a
cabo.
Si pensamos en la forma en que una persona indica a otra como resolver un problema o
cómo realizar una tarea, habitualmente es difícil transmitir el mensaje y con mucha
frecuencia se malinterpretan las instrucciones. Por lo tanto, se ejecuta incorrectamente la
solución obteniéndose errores.
Cuando se trata de una computadora, no pueden utilizarse indicaciones ambiguas. Ante
cada orden resulta fundamental tener una única interpretación de lo que hay que
realizar. Una máquina no posee la capacidad de decisión del ser humano para resolver
situaciones no previstas. La computadora no razona ni crea soluciones, sino que ejecuta
una serie de órdenes que le proporciona el ser humano. Si al dar una orden a la
computadora se produce una situación no contemplada, será necesario cancelar esa
tarea y reformular todo el procedimiento nuevamente.
Además, para poder indicar a la computadora las órdenes que debe realizar es necesario
previamente entender exactamente lo que se quiere hacer. Por tal motivo, hay distintas
etapas que deben seguirse para poder llegar a resolver un problema utilizando una
computadora como herramienta.

Etapas en la resolución de problemas con computadora

Resolver problemas utilizando como herramienta una computadora no se resume


únicamente en la escritura de un programa, sino que se trata de una tarea más compleja.
El proceso abarca todos los aspectos que van desde interpretar las necesidades del
problema a resolver hasta verificar que la solución obtenida es correcta. Las etapas son
las siguientes:

Análisis del problema


En esta primera etapa, se analiza el problema en su contexto del mundo real. Deben
obtenerse los requerimientos (funcionalidades). El resultado de este análisis es un
modelo preciso del alcance del problema y del objetivo a resolver.

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:

Problema A: Indique la manera de sanitizar un litro de agua.


Algoritmo A.1: Ponerle algo de lavandina al litro de agua.
Algoritmo A.2: Agregarle una cucharadita de lavandina al litro de agua.
Algoritmo A.3: Agregarle una cucharadita o 5 gotas de lavandina al litro de agua.

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.

Problema B: Determinar si el número 12 es par.


Algoritmo B.1: Divida el número 12.
Algoritmo B.2: Divida el número 12 por 2.
Algoritmo B.3: Divida el número 12 por 2. Si la división es exacta, la respuesta es
si. Si no es así, la respuesta es no.

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.

Problema C: Determinar la suma de todos los números.


En este caso no se puede determinar un algoritmo para resolver este problema si
el conjunto de instrucciones no logra una terminación.
Un algoritmo debe alcanzar la solución en un tiempo finito, situación que no se
cumplirá en el ejemplo ya que los números son infinitos y por lo tanto dicho
conjunto de instrucciones no conformarían un algoritmo.
Además de no ser ambiguo, un algoritmo debe detenerse.

Problema D: Hacer 5 ejercicios de barra de dominadas.


Algoritmo D.1: Agarrar la barra de dominadas. Subir, bajar. Subir, bajar. Subir,
bajar. Subir, bajar. Subir, bajar. Dejar la barra de dominadas.
Algoritmo D.2: Agarrar la barra de dominadas. Repetir 5 veces: subir, bajar. Dejar
la barra de dominadas.

Ambos algoritmos presentan una solución con instrucciones específicas al problema y no


ambiguas. Pero en particular, el algoritmo D.2 presenta una solución más legible y
reducida al problema.

Problema E: Descargar un camión de tierra con una pala.


Algoritmo E.1: Agarrar la pala. Mientras haya tierra en la caja del camión, cargue
la pala con tierra y vuélquela en el suelo. Dejar la pala.

Este algoritmo es muy simple y no ambiguo. No se sabe cuántas paladas se requerirán


peros si se sabe que en algún momento parará.
¿Se podría haber planteado una solución similar a la de los algoritmos del problema D?

Un algoritmo puede definirse como una secuencia ordenada de instrucciones, exenta de


ambigüedades, que lleva a la solución de un problema dado en un tiempo finito.

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

A través de la selección se incorpora la capacidad de decisión en el algortimo. De esta


forma será posible seleccionar que instrucciones realizar durante la ejecución del
algoritmo. En la imagen detallada se realizará la Instrucción A o la instrucción B de
acuerdo a si la condición a evaluar es Verdadera o Falsa respectivamente.
Esto quiere decir que:
SI la condición es Verdadera, se ejecuta Instrucción A. SINO, se ejecuta Instrucción
B.
Cabe destacar, que no se van a ejecutar ambas, es una o la otra.

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)

El esquema anterior representa que en caso de que la condición a evaluar resulte


verdadera se ejecutarán las acciones de (A) y NO se ejecutarán las de (B). En caso
contrario, es decir, si la condición resulta ser falsa, solo se ejecutarán las acciones de (B).

Seguimos entre todos!!


Implementar un algoritmo para sacar una lata de gaseosa de la heladera y servirla
en un vaso. Sólo debemos abrirla y servirla si está fría, sino debemos volver a dejarla
en la heladera.

ipap.gba.gob.ar 6
Repetición

Hacerlo
X veces

Instrucción A

La repetición es la estructura de control que permite al algoritmo ejecutar un conjunto de


instrucciones un número de veces fijo y conocido de antemano.

La notación a utilizar es la siguiente:

repetir X
Acción o acciones a realizar X veces.

Si.. entre todos!!


Implementar un algoritmo para sacar 6 latas de gaseosa de la heladera y servirlas en una
jarra.

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.

Las acciones contenidas en la iteración serán ejecutadas mientras la condición sea


verdadera. Es importante notar que, la primera vez, antes de ejecutar alguna de las
acciones de la iteración, lo primero que se realiza es la evaluación de la condición. Sólo
luego de comprobar que es verdadera se procede a ejecutar el conjunto de acciones
pertenecientes al mientras.

Si inicialmente la condición resultara falsa, el contenido del mientras no se ejecutará ni


siquiera una sola vez.

El último entre todos!!


Implementar un algoritmo para sacar todas latas de gaseosa de la heladera y
servirlas en vasos.

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

También podría gustarte