Acerca de las Estructuras Básicas
En el tiempo que me he desempeñado como programador y como profesor de Lógica de Programación he notado que realmente la solución de ningún problema se sale de estas tres estructuras. Sé que es un poco arriesgado asegurarlo y puedo garantizarle que el acertado manejo de estas tres estructuras es realmente la esencia en mención.
La estructura de secuencias no es mas que la aceptación del principio mínimo de trabajo de los algoritmos es decir el hecho de que cada orden se ejecuta después de la anterior y antes de la posterior. Además que todas las órdenes se van a ejecutar secuencialmente es decir desde el principio hasta el fin. Podríamos decir que esta estructura es la que gobierna todo el concepto general de la programación y a la vez permite mantener el hilo lógico conceptual del diseño de algoritmos.
La segunda estructura está formada por las decisiones. Ya hemos definido que no es mas que la escogencia de uno de entre dos ramales lógicos que dependen de una condición. Una decisión está formada por una formulación de una condición, si ésta es Verdadera entonces se ejecutarán las órdenes correspondientes si no lo es entonces se ejecutarán las otras órdenes. Es muy importante que usted sepa que las órdenes a ejecutar en caso de que la condición sea Verdadera estarán escritas entre la formulación de la condición y la palabra clave Sino (en caso de que se considere la parte falsa de la condición) ó la palabra Fin_Si (que finaliza la decisión).
Las órdenes a ejecutar en el caso de que la condición sea Falsa estarán comprendidas entre la palabra clave Sino y el fin de la condición o sea el Fin_Si correspondiente. Para ello tenga en cuenta que el planteamiento de una condición no necesariamente involucra un Sino correspondiente ya que existen decisiones en donde si su condición no se cumple no nos interesa ejecutar alguna orden determinada.
Utilice apropiadamente los operadores relacionales y los operadores booleanos, para ello recuerde que un operador relacional permite obtener una respuesta de Verdadero o Falso y un operador Booleano permite conectar expresiones relacionales.
La notación tanto para operadores relacionales como para operadores booleanos no es standard razón por la cual usted deberá saber cómo se expresa cada en el lenguaje de programación con el cual va a codificar sus algoritmos. Incluso puede utilizar esa notación en el desarrollo de sus algoritmos ya que de una vez se va acostumbrando a la notación propia del lenguaje de programación que va a utilizar.
Algunos lenguajes también permiten realizar operaciones de asignación en medio de una expresión lógica y por lo tanto mas de una vez van a facilitar el logro de un determinado objetivo. Como usted puede ver aunque no se desmiente que el algoritmo es el soporte lógico para lograr un objetivo tampoco se puede negar la inmensa importancia del conocimiento del lenguaje de programación con el cual se van a convertir en programas lo que en el momento solo sean algoritmos expresados en seudocódigo. Normalmente cada lenguaje cuenta con recursos y elementos que van a facilitar la construcción de unos algoritmos y por lo tanto el logro de unos objetivos, aunque dificulten un poco el logro de otros. Eso es lo que justifica precisamente la existencia de tantos lenguajes de programación en el medio informático.
Como se pudo ver, para la toma de decisiones también se cuenta con una estructura que nos permite escoger uno de entre varios ramales lógicos (me refiero a la estructura Casos). Cada lenguaje de programación tiene una implementación propia de esta estructura de decisión pero en esencia la lógica es la misma o sea que vamos a encontrar una equivalencia entre lo que nosotros programemos y la correspondiente codificación. Siempre tenga en cuenta que para que el computador tome una decisión, ésta tendrá que expresarse en términos de variables, constantes y operadores (tanto relacional es como booleanos).
Procure revisar bien sus algoritmos para que verifique si todas las decisiones son absolutamente necesarias dado que una de las órdenes que mas le toma tiempo al computador es tomar una decisión. Obviamente que hablo en términos del mismo computador pues el trabaja en millonésimas de segundo y por lo tanto lo que para nosotros pudiera parecer muy veloz para él pudiera parecer muy lento. Si un computador demora un segundo en resolver una decisión estará demorando demasiado ya que en es e mismo lapso de tiempo podrá realizar millones de operaciones. Por este motivo es muy importante que usted tenga en cuenta que uno de los factores que permiten medir la eficiencia de un programa es la cantidad de decisiones que el mismo involucre.
Muchas veces colocamos decisiones en nuestros algoritmos, a diestra y siniestra, desconociendo que este factor va en detrimento de la misma solución lógica del algoritmo. Por lo tanto siempre que usted haya terminado de desarrollar un algoritmo y lo haya probad o y vea que cumple plenamente con el objetivo, tómese un tiempito para revisar cuáles decisiones pueden estar convirtiendo su solución en algoritmo ineficiente lo cual no contradice el logro del objetivo pues usted puede llegar hasta la plaza de su pueblo recorriendo todas las calles o recorriendo solo aquellas que lo llevan allá en línea recta.
Los ciclos son la tercera estructura y con ellos podemos, normalmente, lograr desarrollar algoritmos mucho mas genéricos, es decir, sin las restricciones que sí se necesitan cuando no se tiene esta estructura a disposición. Los ciclos no son mas que esquemas que nos permiten, en cualquier lenguaje de programación, repetir conjuntos de instrucciones una cantidad finita de veces de tal forma que, acorde con un manejo correcto de variables, se pueda lograr mas de un objetivo de manera absolutamente genérica y sin tener que estar atado a condiciones especiales.
Con los ciclos todo lo que tenemos que hacer es tener mucho cuidado de que las condiciones sean coherentes con el cuerpo de los mismos de manera que se cumpla que el conjunto de instrucciones a repetir se itere una cantidad definida de pasos. Es muy útil recordar que la buena utilización de operadores relacionales y operadores booleanos es lo que nos permite lograr unos ciclos eficientes y ante todo muy funcionales.
La estructura de secuencias no es mas que la aceptación del principio mínimo de trabajo de los algoritmos es decir el hecho de que cada orden se ejecuta después de la anterior y antes de la posterior. Además que todas las órdenes se van a ejecutar secuencialmente es decir desde el principio hasta el fin. Podríamos decir que esta estructura es la que gobierna todo el concepto general de la programación y a la vez permite mantener el hilo lógico conceptual del diseño de algoritmos.
La segunda estructura está formada por las decisiones. Ya hemos definido que no es mas que la escogencia de uno de entre dos ramales lógicos que dependen de una condición. Una decisión está formada por una formulación de una condición, si ésta es Verdadera entonces se ejecutarán las órdenes correspondientes si no lo es entonces se ejecutarán las otras órdenes. Es muy importante que usted sepa que las órdenes a ejecutar en caso de que la condición sea Verdadera estarán escritas entre la formulación de la condición y la palabra clave Sino (en caso de que se considere la parte falsa de la condición) ó la palabra Fin_Si (que finaliza la decisión).
Las órdenes a ejecutar en el caso de que la condición sea Falsa estarán comprendidas entre la palabra clave Sino y el fin de la condición o sea el Fin_Si correspondiente. Para ello tenga en cuenta que el planteamiento de una condición no necesariamente involucra un Sino correspondiente ya que existen decisiones en donde si su condición no se cumple no nos interesa ejecutar alguna orden determinada.
Utilice apropiadamente los operadores relacionales y los operadores booleanos, para ello recuerde que un operador relacional permite obtener una respuesta de Verdadero o Falso y un operador Booleano permite conectar expresiones relacionales.
La notación tanto para operadores relacionales como para operadores booleanos no es standard razón por la cual usted deberá saber cómo se expresa cada en el lenguaje de programación con el cual va a codificar sus algoritmos. Incluso puede utilizar esa notación en el desarrollo de sus algoritmos ya que de una vez se va acostumbrando a la notación propia del lenguaje de programación que va a utilizar.
Algunos lenguajes también permiten realizar operaciones de asignación en medio de una expresión lógica y por lo tanto mas de una vez van a facilitar el logro de un determinado objetivo. Como usted puede ver aunque no se desmiente que el algoritmo es el soporte lógico para lograr un objetivo tampoco se puede negar la inmensa importancia del conocimiento del lenguaje de programación con el cual se van a convertir en programas lo que en el momento solo sean algoritmos expresados en seudocódigo. Normalmente cada lenguaje cuenta con recursos y elementos que van a facilitar la construcción de unos algoritmos y por lo tanto el logro de unos objetivos, aunque dificulten un poco el logro de otros. Eso es lo que justifica precisamente la existencia de tantos lenguajes de programación en el medio informático.
Como se pudo ver, para la toma de decisiones también se cuenta con una estructura que nos permite escoger uno de entre varios ramales lógicos (me refiero a la estructura Casos). Cada lenguaje de programación tiene una implementación propia de esta estructura de decisión pero en esencia la lógica es la misma o sea que vamos a encontrar una equivalencia entre lo que nosotros programemos y la correspondiente codificación. Siempre tenga en cuenta que para que el computador tome una decisión, ésta tendrá que expresarse en términos de variables, constantes y operadores (tanto relacional es como booleanos).
Procure revisar bien sus algoritmos para que verifique si todas las decisiones son absolutamente necesarias dado que una de las órdenes que mas le toma tiempo al computador es tomar una decisión. Obviamente que hablo en términos del mismo computador pues el trabaja en millonésimas de segundo y por lo tanto lo que para nosotros pudiera parecer muy veloz para él pudiera parecer muy lento. Si un computador demora un segundo en resolver una decisión estará demorando demasiado ya que en es e mismo lapso de tiempo podrá realizar millones de operaciones. Por este motivo es muy importante que usted tenga en cuenta que uno de los factores que permiten medir la eficiencia de un programa es la cantidad de decisiones que el mismo involucre.
Muchas veces colocamos decisiones en nuestros algoritmos, a diestra y siniestra, desconociendo que este factor va en detrimento de la misma solución lógica del algoritmo. Por lo tanto siempre que usted haya terminado de desarrollar un algoritmo y lo haya probad o y vea que cumple plenamente con el objetivo, tómese un tiempito para revisar cuáles decisiones pueden estar convirtiendo su solución en algoritmo ineficiente lo cual no contradice el logro del objetivo pues usted puede llegar hasta la plaza de su pueblo recorriendo todas las calles o recorriendo solo aquellas que lo llevan allá en línea recta.
Los ciclos son la tercera estructura y con ellos podemos, normalmente, lograr desarrollar algoritmos mucho mas genéricos, es decir, sin las restricciones que sí se necesitan cuando no se tiene esta estructura a disposición. Los ciclos no son mas que esquemas que nos permiten, en cualquier lenguaje de programación, repetir conjuntos de instrucciones una cantidad finita de veces de tal forma que, acorde con un manejo correcto de variables, se pueda lograr mas de un objetivo de manera absolutamente genérica y sin tener que estar atado a condiciones especiales.
Con los ciclos todo lo que tenemos que hacer es tener mucho cuidado de que las condiciones sean coherentes con el cuerpo de los mismos de manera que se cumpla que el conjunto de instrucciones a repetir se itere una cantidad definida de pasos. Es muy útil recordar que la buena utilización de operadores relacionales y operadores booleanos es lo que nos permite lograr unos ciclos eficientes y ante todo muy funcionales.
Comentarios
Publicar un comentario