¿Quieres que te demuestre que aunque a penas comienzas este post, ya estas casi listo para escribir programas para computadoras?
Imagina la siguiente
situación: Hace un calor terrible y has estado todo el día fuera de casa. Llegas, y lo primero que se te ocurre es
tomar un jugo muy frío, de la fruta que prefieras. Por ejemplo, jugo de limón. Ahora
piensa en cuales son los pasos, uno a uno, que debes dar para preparar el jugo.
¿Listo? Entonces, toma
lápiz y papel y escribe cada uno de esos pasos, por separado, en cada línea de
la hoja de papel (como si estuvieras escribiendo una receta).
Anda… ¡Atrévete a hacerlo!, escríbelo. Estarás haciendo un algoritmo! (Haz clic en play para conocer su definición)
Excelente. Ahora pensemos
en otra situación. Antes de llegar a casa. Antes de preparar la limonada. Podríamos
preguntarnos, ¿cómo hacer para llegar lo antes posible a la esquina de nuestra
casa?
Escribe nuevamente, en una
hoja distinta esos pasos.
(Ten cerca las hojas donde
escribiste los pasos para llegar a casa y como hacer una limonada, luego verás
por qué te pedí que hicieras eso. Antes de continuar, es necesario comentar lo
siguiente.)
Dependiendo
de la situación, el sitio y circunstancia en la que nos encontremos, hay una
serie de pasos que tendríamos que dar, o quizás acciones que tendríamos que
realizar.
Esas acciones también
dependen del enfoque que le demos. Un físico tal vez considere la distancia que
hay entre la persona y la esquina, y calcule la velocidad, la aceleración, etc.
Un psicólogo tal vez se enfoque en qué tipo de pensamientos podría llevar a la
persona a reaccionar de una o tal manera. Un biólogo podría considerar aspectos
celulares. Un químico podría explicarlo con sucesos moleculares dentro de la
persona. Una persona cualquiera podría pensar en que, con correr lo más rápido
posible está más que bien, y que seguramente es lo más rápido de hacer antes
que andar pensando en cómo se llega y qué pasa mientras lo está haciendo.
De cualquier manera e
independientemente de cualquier enfoque que se le dé a dicha situación, al
final, son los pasos o acciones que
realizamos, los que nos permitirán llegar lo antes posible a la esquina de
nuestra casa, por más que no lo pensemos conscientemente.
Veamos
como el concepto anterior es cierto. ¿Recuerdas la hoja de papel con la receta
para hacer una limonada? Pues tómala y examina la siguiente situación: mientras
estas tratando de llegar a casa, telefoneas y pides por favor que tomen tus instrucciones
escritas en el papel para que preparen el jugo, exactamente como dice la
receta. Recuerda que esa receta describe
por pasos un conjunto de instrucciones
que permiten realizar dicha actividad.
Estas instrucciones deben ser precisas y deben estar ordenadas para no
generar ningún tipo de dudas a quien haga la limonada. (¡Sería
terrorífico tomar un jugo de limón en el cual se le haya colocado sal en vez de
azúcar por no tener claras las instrucciones para hacerla correctamente!)
Desde la simplicidad de preparar una ensalada o
un jugo de limón, a la posibilidad de resolver un problema complejo que nos
preocupa, los algoritmos son de inestimable ayuda. Sin embargo, los algoritmos
solo muestran su eficiencia estratégica a quienes practican su desarrollo,
cuando se nos presentan situaciones no rutinarias o cuando recurrimos a los
numerosos algoritmos disponibles para situaciones más complejas.
Hoy en día, un algoritmo es un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.
Extracto del Experto en C++ de nuestros Cursos de Programación
Siguenos en Google+ de Aprender21 y en Facebook
No hay comentarios:
Publicar un comentario