Lógica de programación
| ||||||
Lógica de Programación. Base sobre la cual se sustenta la programación en si.
Todo persona que pretenda construir un programa que de solución a determinada problemática, se enfrenta a dos grandes tareas:
- El QUÉ: acciones a realizar para poder resolver el problema. Esta tarea forma parte del trabajo de mesa previo a toda actividad de programación.
- El CÓMO: instrucciones de las que se va a valer para escribir el código que realice las acciones determinadas en el QUÉ, las cuales están determinadas por el lenguaje de programación seleccionado.
Muchas personas confunden la Programación con la Lógica de Programación, la primera involucra el conocimiento de técnicas e instrucciones de un determinado Lenguaje a través de los cuales se hace sencillo lograr que la Computadora obtenga unos resultados mucho mas rápidos que una persona. La segunda involucra, de una manera técnica y organizada, los conceptos que permiten diseñar en términos generales, la solución a problemas que pueden llegar a ser implementados a través de una computadora.
Sumario
Lógica
El estudio de la Lógica de Programación no exige ningún conocimiento previo de computadora ni de tecnología en general, tampoco exige la presencia de algún Lenguaje de Programación específico aunque no puede negarse que éste podría permitir, solo después que se manejen bien los conceptos de lógica de programación, implementar y ver convertida en realidad las soluciones lógicas a sus objetivos.
Definiciones
- Serie coherente de ideas y razonamientos.
- Ciencia que estudia la estructura, fundamentos y uso de las expresiones del conocimiento humano.
- Representación intelectual de un objeto, diferenciándose, de lo sentido, lo percibido, lo imaginado o lo recordado. Las propiedades de los conceptos son la comprensión y la extensión.
La Lógica es ciencia de relaciones porque estudia el pensamiento y, pensar es establecer relaciones. Pero se preocupa no tanto por establecer relaciones (esto es propios de las ciencias...) sino por el estudio de las relaciones mismas, por eso la lógica es una ciencia formal.
Programación
- Acción y efecto de programar. Este verbo tiene varios usos: se refiere a idear y ordenar las acciones que se realizarán en el marco de un proyecto; al anuncio de las partes que componen un acto o espectáculo; a la preparación de máquinas para cumplan con una cierta tarea en un momento determinado; a la elaboración de Programas para la resolución de problemas mediante computadoras.
- Proceso de toma de decisiones. Es establecer un conjunto de actividades en un contexto y tiempo determinado para enseñar los contenidos seleccionados en función de los objetivos establecidos. Es un proceso continuo, dinámico, no acabado ni rígido.
Algoritmo
De nuevo, cuándo podemos vislumbrar claramente el algoritmo..? Cuando el objetivo está realmente claro. Siempre que usted, en el desarrollo de la solución de un problema, vea que en algún momento no sabe por donde coger, no sabe qué hacer o se siente perdido, no busque mas simplemente quiere decir que realmente usted no tenía tan claro el objetivo como había pensado. Pero que es el algoritmo.
Qué es un Algoritmo...? Es un conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean pasos secuenciales significa que deben ser ejecutados uno después de otro y que sean pasos ordenados quiere decir que deben llevar un orden casi obligatorio. Como puede notar el algoritmo permite lograr un objetivo. O sea que éste es el camino que necesitamos para lograrlo.
Veamos un ejemplo de algoritmo
Algoritmo Adquisicion_de_un_Libro
Inicio
- Saber cuál es el libro que se quiere adquirir
- Desplazarnos hacia una biblioteca
- Preguntar si tienen el libro que necesitamos
- Si lo tienen adquirirlo y Parar allí (dentro de este Algoritmo) Si no lo tienen ir al paso 2 (a otra biblioteca)
Fin
Clasificación de los algoritmos
Algoritmos Informales Definidos como todos aquellos algoritmos que no son realizables a través de un computador o al menos no fácilmente. Son aquellos Algoritmos en donde el ejecutor real es el ser humano como el algoritmo para dar un beso, el algoritmo para fritar unos huevos o el algoritmo para conseguir un libro. Escribo que al menos no fácilmente porque la tecnología ha avanzado tanto que muchos algoritmos que en el pasado no eran implementables a través de un computador en la actualidad lo son y de manera mucho más sencilla como es el caso del algoritmo para conseguir un libro que anteriormente se pensaba en librerías y ahora se piensa en un concepto mas globalizado: Internet, con mas posibilidad de conseguirlo y con menos trabajo. De manera que vamos a considerar aquellos algoritmos informales como los que son preferiblemente realizables por el ser humano.
Algoritmos Computacionales Se consideran como tales todos aquellos Algoritmos que deben ser preferiblemente implementados en un computador para aprovechar su velocidad de procesamiento. Un ejemplo de estos puede ser el algoritmo que genere los primeros 100 números primos, recordando que un número primo es aquel que solo puede ser dividido exactamente entre la unidad y entre si mismo, que si bien podrían ser calculados utilizando un papel y un lápiz, la utilización de un computador en unión con el algoritmo adecuado nos va a dar un resultado mucho mas rápido y absolutamente confiable (de hecho depende de que el algoritmo igualmente sea muy confiable). Son precisamente estos algoritmos los que vamos a tratar de definir y poner en práctica en el desarrollo de este libro. En el desarrollo de los algoritmos computacionales, los cuales nos van a ocupar en lo sucesivo, la metodología para llegar a la solución final que permita lograr un objetivo (igualmente computacional) continúa con los siguientes pasos:
Estructura de un algoritmo Una estructura se define como un esquema que nos permite representar de manera simplificada alguna idea y que bajo condiciones normales es constante. Ello significa que si hablamos de este concepto en esta parte del Libro significará que de alguna manera el pensamiento del ser humano, en lo que se refiere a los algoritmos, está enmarcado en algún tipo de Estructuras que no solo le permiten tener un medio mas simplificado y a la mano para expresar las ideas sino que además permite “restringir” un poco el horizonte de la Lógica Algorítmica.
Algunas estructuras de algoritmo
Algoritmo Colocarnos_una_camisa
Inicio
- Dirigirnos a nuestro ropero.
- Si esta cerrado Abrirlo Tomar una camisa.
- Si está abrochada Desabrocharla.
- Abrir la camisa.
- Si está doblada Desdoblarla.
- Meter un brazo por una de sus mangas.
- Meter el otro brazo por la otra de sus mangas.
- Ajustar la camisa al tronco.
- Si es una camisa de botones Abotonarla (botón a botón) Ajustarla al cuerpo.
- Sino ajustarla de manera que quede bien puesta.
Fin
Diagramas de Flujo
Los Diagramas de Flujo parten de unos símbolos que permiten decir lo mismo que en los algoritmos pero de una manera gráfica y, por supuesto, un poco mas entendible. Los siguientes son algunos de los símbolos (y el significado de ellos) que se han acordado utilizar dentro de los Diagramas de Flujo o Flujogramas:
| Símbolo | Uso |
|---|---|
| Rrepresenta un proceso que no es más que una acción o una orden a ejecutarse de manera clara y concreta. Un ejemplo típico de proceso es la asignación de un valor a una variable. | |
| Permite representar una Decisión. En su interior puede escribirse la condición de la cual depende la decisión y por sus extremos derecho (o izquierdo) e inferior se pueden colocar las salidas para los casos en que la condición sea Falsa o Verdadera. | |
| Permite expresar un proceso de entrada o salida. - Entrada: proceso a través del cual se recibe información - Salida: proceso a través del cual se entrega información. | |
| Permite representar la escritura de un resultado o lo que técnicamente se conoce como una salida. | |
| Representa el Inicio ó el Fin de un Algoritmo. Solo hay que escribir la palabra Inicio o Fin y ubicarlo apropiadamente dentro del Diagrama de Flujo. | |
| Permite colocar en él los parámetros de inicio de un ciclo cuando se ajusta a una de las formas establecidas por las normas de programación. | |
| Representa una entrada de datos utilizando el teclado de la computadora. Debe escribirse en su interior el nombre de la variable (o las variables) en donde se almacenará el dato que entra por el teclado. | |
| Conectores lógicos. Permiten representar la continuación de un Diagrama de Flujo cuando éste es tan largo que no cabe en una sola hoja. | |
| Permite representar una lectura de datos. Representa una Tarjeta Perforada pues esta técnica fue establecida cuando aún se leían los datos a través de tarjetas perforadas. Actualmente este símbolo representa sencillamente una lectura. | |
| Genera una salida de datos. Representa una cinta perforada porque, al igual que el símbolo anterior, esta técnica fue establecida cuando aún se generaba la salida de datos a través de una tarjeta perforada. En la actualidad este símbolo representa sencillamente una salida o una escritura de datos. | |
| Representa una salida de datos hacia la pantalla. | |
|
Son los símbolos que permiten representar la forma de conexión entre los demás símbolos determinando igualmente el Flujo de ejecución o realización de acciones. |
Ventajas
- Permite visualizar gráficamente el camino que sigue la solución a un problema.
- Por ser tan simplificado es muy entendible.
- No se necesitan muchos conocimientos técnicos para utilizar esta técnica.
Desventajas
- Dado que los flujos (representados con flechas) pueden ir de cualquier lugar a cualquier lugar da espacio para que el diagrama llegue a ser casi inentendible
- Deben conocerse bien los símbolos que se van a utilizar
- No todos los símbolos están estandarizados
- Los ciclos deben ser reinterpretados para poder ser diagramados en esta técnica
- No siempre es muy entendible
- Algunas veces la analogía entre el diagrama y la codificación en el Lenguaje de Programación resulta ser compleja.
Fuentes
- Trejos Buriticá, Omar Ivan, La Esencia de la Lógica de Programación – Básico / Omar Ivan Trejos Buriticá. Obra de Editorial Papiro en formato de 21 x 28 cm. – Pereira : Papiro, 1999 325 p.
- Remedios Prado, Midel A. Alternativa metodológica para introducirla Lógica de Programación en los Joven Club de Computación y Electrónica a través de una Hipermedia. Tesis de Maestría. Camaguey, 2007.
- http://www.monografias.com/concepto-logica/concepto-logica.shtml
*http://html.rincondelvago.com/logica_10.html - http://www.zonaeconomica.com/concepto-programacion











