En otras entradas, vimos las partes que debe tener nuestro algoritmo en pseudocódigo y las estructuras que utilizaremos para resolverlo. Ahora llega el turno de implementar todo en conjunto para dar origen a nuestra creación.
Pero ¿cómo resolvemos un problema así? Para hacerlo, utilizaremos lo que llamamos refinamientos sucesivos. Este concepto consiste en dividir el problema en subproblemas más pequeños y a estos, a su vez, en otros más pequeños; y así sucesivamente hasta que la solución de los últimos sea trivial, sencillo de resolver. Luego usaremos todas las soluciones obtenidas para armar la solución de nuestro problema mayor.
Este principio, tiene base en parte de la técnica divide and conquer (dependiendo de la traducción: "divide y vencerás") que es una de las muchas técnicas de resolución de algoritmos existentes.
Como vemos, al dividir el problema en otros más pequeños y más fáciles de resolver, podemos pasar de un problema complicado a uno cuya solución es mucho más simple.
A la hora de plantearlo, usaremos el modelo top-down, es decir que resolveremos el algoritmo de manera secuencial, paso por paso desde arriba hacia abajo (un paso después de otro).
Teniendo en cuenta todos estos conceptos, llegó la hora de escribir nuestros primeros algoritmos.
EJEMPLOS:
Como primer ejercicio típico al iniciar con lenguajes de programación, el "Hola mundo" consiste simplemente en mostrar dicha frase por pantalla. Aunque aquí sólo estamos haciendo un algoritmo en pseudocódigo, también se me ocurrió hacerlo.
Como vemos, es un algoritmo muy simple que se resuelve de forma secuencial. Es un ejemplo básico para mostrar cómo se leen las entradas y cómo se asigna un resultado a una variable.
Pero ¿cómo resolvemos un problema así? Para hacerlo, utilizaremos lo que llamamos refinamientos sucesivos. Este concepto consiste en dividir el problema en subproblemas más pequeños y a estos, a su vez, en otros más pequeños; y así sucesivamente hasta que la solución de los últimos sea trivial, sencillo de resolver. Luego usaremos todas las soluciones obtenidas para armar la solución de nuestro problema mayor.
Este principio, tiene base en parte de la técnica divide and conquer (dependiendo de la traducción: "divide y vencerás") que es una de las muchas técnicas de resolución de algoritmos existentes.
Como vemos, al dividir el problema en otros más pequeños y más fáciles de resolver, podemos pasar de un problema complicado a uno cuya solución es mucho más simple.
A la hora de plantearlo, usaremos el modelo top-down, es decir que resolveremos el algoritmo de manera secuencial, paso por paso desde arriba hacia abajo (un paso después de otro).
*NOTA1: Hay que recordar que al hacer un algoritmo, es mejor hacerlo de manera general para que tenga utilidad.
*NOTA2: Es recomendable identar nuestro algoritmo al escribirlo (dejar una sangría) para que se entienda mejor y se puedan visualizar cada uno de los niveles. Si no cuando hay estructuras anidadas o la solución es extensa, se dificulta la lectura, análisis y comprensión del mismo.
Teniendo en cuenta todos estos conceptos, llegó la hora de escribir nuestros primeros algoritmos.
EJEMPLOS:
- "Hola mundo" en pseudocódigo:
Como primer ejercicio típico al iniciar con lenguajes de programación, el "Hola mundo" consiste simplemente en mostrar dicha frase por pantalla. Aunque aquí sólo estamos haciendo un algoritmo en pseudocódigo, también se me ocurrió hacerlo.
- Sumar dos números reales y mostrar el resultado:
Como vemos, es un algoritmo muy simple que se resuelve de forma secuencial. Es un ejemplo básico para mostrar cómo se leen las entradas y cómo se asigna un resultado a una variable.
- Con la cuota, dinero apostado y resultado de una apuesta, calcular cuánto debe pagarle la casa al apostador.
En este caso, realizamos los mismos pasos que en el ejemplo anterior, pero dentro de nuestro segundo nivel de refinamiento usamos una estructura de selección para evaluar nuestra condición. Si el apostador ganó la apuesta (resultado verdadero) entonces la casa le paga la cantidad equivalente al dinero apostado por la cuota aceptada, mientras que si pierde la apuesta, no paga nada.
- Ingresar una secuencia de números reales positivos, con marca final '.' y contar cuántos de ellos son mayores que 30. Mostrar el resultado en pantalla.
En este último ejemplo vemos que la condición del mientras es nuestra marca final, mientras no se cumpla ese caso realizaremos las instrucciones dentro de dicha estructura.Tal instrucción es realizar la selección, si el número es mayor que 30, entonces lo contamos (inicializamos la cantidad en 0 para poder contar, si no la inicializamos "cantidad" tiene lo que llamamos basura, es decir que puede tener cualquier valor dentro). Y luego volvemos a leer otro número para no salir del bucle.
Comentarios
Publicar un comentario