Diferencia entre revisiones de «Lógica de programación»

(Etiqueta: nuestro-nuestra)
m (Rosarino trasladó la página Lógica de Programación a Lógica de programación: corrijo mayúscula)
 
(No se muestran 33 ediciones intermedias de 11 usuarios)
Línea 1: Línea 1:
{{Aplicación|nombre=Lógica de Programación|logo=Programacion_Logica.png|descripcion=|creador=|fecha_de_creacion=|sitio_web=http://html.rincondelvago.com/logica_10.html}}'''Lógica de Programación''' durante muchos años se ha dedicado gran parte del tiempo no solo a la enseñanza de la Lógica de [[Programación]] sino al análisis de la enseñanza de dicha lógica debido precisamente a que me he encontrado con que 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 de Programación|Lenguaje]] a través de los cuales se nos hace sencillo lograr que el [[Computadora|computador]] obtenga unos resultados mucho mas rápido que nosotros. La segunda involucra, de una manera técnica y organizada, los conceptos que nos permiten diseñar en términos generales, la solución a problemas que pueden llegar a ser implementados a través de un computador.  
+
<div align="justify">
+
{{Definición
== Lógica  ==
+
|nombre=Lógica de Programación
 +
|imagen=LenguajeProgramacion.jpeg
 +
|tamaño=
 +
|concepto=Base sobre la cual se sustenta la programación en si.
 +
}}
 +
'''Lógica de Programación'''. Base sobre la cual se sustenta la programación en si.  
  
El estudio de la '''Lógica de Programación''' no exige ningún conocimiento previo de Computadora|computador]] ni de tecnología en general, tampoco exige la presencia de algún [[Lenguaje de Programación|Lenguaje de Programación]] específico aunque no puedo negarle que éste podría permitirle, solo después que usted maneje bien los conceptos de lógica de programación, implementar y ver convertida en realidad las soluciones lógicas a sus objetivos.  
+
== Problemas al constriur un programa  ==
 +
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 de Programación|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.
  
Cuando era niño, alguna vez me abroché mal la camisa, en un instante en que toda mi familia estaba de afán para salir. Una tía me vio con la camisa mal abrochada y me abordó fuertemente diciéndome que porqué me había abrochado mal la camisa, que si era que yo no tenía Lógica.... Luego de acomodarme adecuadamente la camisa, es decir, organizándome de manera que cada botón coincidiera con su correspondiente ojal empecé a pensar que realmente era posible que no tuviera lógica porque me parecía increíble que yo no hubiera detectado que para que la camisa quedara colocada correctamente solo había un camino (y que además era muy sencillo) y era hacer coincidir cada par botón-ojal. Además de esta conclusión (tan obvia) también llegué a otra (no tan obvia) y era el hecho de que es más difícil ponerse mal una camisa que ponérsela bien o, dicho en otras palabras, es muy muy muy fácil colocarse correctamente una camisa, al menos en lo que a botones y ojales corresponde.  
+
== 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.  
  
'''Algunos conceptos de Lógica'''
+
===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.
  
#Le pregunte a alguien, un transeúnte, un desconocido qué era la Lógica y su respuesta desprevenida y silvestre me gustó porque pude entenderla fácilmente yo considero la lógica como una serie coherente de ideas y razonamientos. Compartí con él dicha definición y me pareció acertada. Además que en todo mi entorno pude descubrir que todas las personas a quienes les preguntaban tenían, por lo menos, muy claro el concepto de lo que era la Lógica así en algunos casos no la pudieran definir de una manera clara.
+
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 [[ciencia]]s...) sino por el estudio de las relaciones mismas, por eso la lógica es una ciencia ''formal''.
#Algunos libros citan que la base para la solución de problemas a través del [[Computadora|computador]] es tener muy buena lógica. Yo iría más allá. Considero que la base para ello es, sencillamente, ser muy lógicos o sea poder vislumbrar el camino mas obvio y más fácil para lograr un objetivo. Precisamente, este libro busca orientar su lógica humana de manera que se le haga exageradamente sencillo hablar de la lógica computacional.
 
#Es la Ciencia que estudia la estructura, fundamentos y uso de las expresiones del conocimiento humano.
 
#El la representación intelectual de un objeto, diferenciándose, pues, 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  ==
 
== 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 [[Software|Programas]] para la resolución de problemas mediante [[computadora]]s.  
#Es la 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 [[Software|Programas]] para la resolución de problemas mediante [[Computadoras|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.
#Programar es un 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.
 
 
 
== Lógica de Programación  ==
 
 
 
'''Metodología para Solucionar un Problema'''
 
 
 
Siempre que vamos a resolver un problema nos enfrentamos con la dificultad de tener que encontrar precisamente eso: Una Solución. Pocas veces nos detenemos a pensar que existe un camino estructural que nos permite resolver cualquier problema (en términos generales) teniendo, como es obvio, que entrar en la minucia del detalle dependiendo del problema.
 
 
 
Cuál es el primer paso que debemos dar cuando nos enfrentamos a un problema...? Lo primero que debemos tener muy pero muy muy claro es cual es el problema. Es evidente que no podemos avanzar hacia la casa de un amigo nuestro que no sabemos en donde vive porque las posibilidades de que lleguemos son casi nulas.
 
 
 
En nuestro caso, y mas que nunca, podemos decir que para llegar a la solución de un problema la clave de ello está en Tener muy claro cuál es el objetivo y No perderlo nunca de Vista. Tal vez usted tendrá alguna inquietud en cuanto a la insistencia de este tópico pero la realidad es que muchas veces creemos tener claro el objetivo y solo cuando nos empeñamos en lograrlo vemos que no era así.
 
 
 
Tener claro el objetivo nos permite algo adicional. Aquí voy a utilizar una frase que, aunque un poco romántica, nos va a ilustrar a que me refiero: El objetivo es el faro que solo cuando está bien claro nos ilumina el camino para lograrlo. Cuando el objetivo está suficientemente claro podemos vislumbrar un camino lógico para llegar hasta él. Ese camino lógico va a tener un nombre dado la orientación de este libro y ese nombre es [[Algoritmo]]
 
  
 
== Algoritmo  ==
 
== Algoritmo  ==
 +
Cuando el objetivo está realmente claro. Siempre que en el desarrollo de la solución de un problema, en algún momento no sabe por donde coger, no sabe qué hacer o se siente perdido, no busque más, quiere decir simplemente que realmente usted no tenía tan claro el objetivo como había pensado.
  
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.
+
'''Algoritmo:''' Conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean ''secuenciales'' significa que deben ser ejecutados uno después de otro y que sean ''ordenados'' quiere decir que deben llevar un orden casi obligatorio. El algoritmo es el que permite lograr el objetivo propuesto.  
 
 
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''' <br>
 
 
 
'''Inicio '''<br>
 
 
 
#Saber cuál es el libro que se quiere adquirir <br>
 
#Desplazarnos hacia una [[Biblioteca Digital|biblioteca]] <br>
 
#Preguntar si tienen el libro que necesitamos <br>
 
#Si lo tienen adquirirlo y Parar allí (dentro de este [[Algoritmo]]) Si no lo tienen ir al paso 2 (a otra biblioteca) <br>
 
 
 
'''Fin'''<br>
 
 
 
== Clasificación de los algoritmos  ==
 
 
 
'''Algoritmos Informales''' Definidos como todos aquellos algoritmos que no son realizables a través de un [[Computadora|computador]] o al menos no fácilmente. Son aquellos [[Los Algoritmos|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|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 [[Los Algoritmos|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''' <br>
 
 
 
'''Inicio '''<br>
 
 
 
#Dirigirnos a nuestro ropero.<br>
 
#Si esta cerrado Abrirlo Tomar una camisa.<br>
 
#Si está abrochada Desabrocharla.<br>
 
#Abrir la camisa.<br>
 
#Si está doblada Desdoblarla.<br>
 
#Meter un brazo por una de sus mangas.<br>
 
#Meter el otro brazo por la otra de sus mangas.<br>
 
#Ajustar la camisa al tronco.<br>
 
#Si es una camisa de botones Abotonarla (botón a botón) Ajustarla al cuerpo.
 
#Sino ajustarla de manera que quede bien puesta.
 
 
 
'''Fin'''
 
 
 
== Técnicas para representar Algoritmos  ==
 
 
 
Los Diagramas de Flujo parte de unos símbolos que nos permiten decirlo mismo que dijimos hace un momento 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 son los siguientes
 
 
 
[[Image:Valor auna variable.jpg|thumb|left|Valor auna variable.jpg]]
 
 
 
<br>
 
  
Un rectángulo representa un proceso que no es mas que una acción ó 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.  
+
===Algoritmos Informales===
 +
Definidos como todos aquellos algoritmos que no son realizables a través de una [[Computadora]] o al menos no fácilmente. Son aquellos [[Algoritmo]]s donde el ejecutor real es el [[ser humano]], como el algoritmo para dar un [[beso]], el algoritmo para freir unos [[huevo]]s o el algoritmo para conseguir un [[libro]].  
  
[[Image:Falso y verdadero.jpg|thumb|right|Falso y verdadero.jpg]]  
+
''Ejemplo:'' 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'''
  
<br>
+
La [[tecnología]] ha avanzado tanto que, muchos algoritmos que en el pasado no eran implementables a través de una computadora, 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 más posibilidad de conseguirlo y con menos trabajo.
  
Este símbolo nos permite representar una Decisión. En su interior podemos escribir 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 sea Verdadera.  
+
===Algoritmos Computacionales===
 +
Se consideran como tales todos aquellos [[Algoritmo]]s que deben ser preferiblemente implementados en una computadora 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 una computadora en unión con el algoritmo adecuado ofrece un resultado mucho mas rápido y absolutamente confiable (de hecho depende de que el algoritmo igualmente sea muy confiable).  
  
[[Image:Entrega de informacion.jpg|thumb|left]]
+
''Ejemplo:'' Algoritmo '''Colocarnos_una_camisa''' 
 +
:'''Inicio '''
 +
:#Dirigirnos a nuestro ropero.
 +
:#Si esta cerrado: Abrirlo y Coger 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) y :Ajustarla al cuerpo.
 +
:#Sino ajustarla de manera que quede bien puesta.
 +
:'''Fin'''
  
<br>  
+
== Diagramas de Flujo  ==
 +
Los [[Diagrama de Flujo |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:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Símbolo
 +
! Explicación
 +
|-
 +
| [[Image:Valor auna variable.jpg|thumb|center]]
 +
| Representa 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''.
 +
|-
 +
| [[Image:Falso y verdadero.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:Entrega de informacion.jpg|thumb|center]]
 +
| Permite expresar un proceso de entrada o salida.<br> - Entrada: proceso a través del cual se recibe [[información]]<br>- Salida: proceso a través del cual se entrega información.
 +
|-
 +
| [[Image:Salida de informacion.jpg|thumb|center]]
 +
| Permite representar la escritura de un resultado o lo que técnicamente se conoce como una salida.
 +
|-
 +
| [[Image:DiagramaFlujo.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:Definision.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:TecladoProgramacion.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:ContinuacionDiagrama.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:LecturaDiagrama.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:EscrituraDiagrama.jpg|thumb|center]]
 +
| 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.
 +
|-
 +
| [[Image:PantallaDiagrama.jpg|thumb|center]]
 +
| Representa una salida de datos hacia la pantalla. 
 +
|-
 +
| [[Image:AccionesDiagrama.jpg|center]]
 +
| 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.
 +
|}
  
Este símbolo nos permite expresar un proceso de entrada o salida, teniendo en cuenta que una entrada en un algoritmo se concibe como el proceso a través del cual se recibe información y una salida es el proceso a través del cual se entrega información.  
+
===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.
  
<br>
+
===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  
[[Image:Salida de informacion.jpg|thumb|right]]Este símbolo permite representar la escritura de un resultado o lo que técnicamente se conoce como una salida.
+
*Deben conocerse bien los símbolos que se van a utilizar  
 
+
*No todos los símbolos están estandarizados  
<br>
+
*Los ciclos deben ser reinterpretados para poder ser diagramados en esta técnica  
 
+
*No siempre es muy entendible  
[[Image:DiagramaFlujo.jpg|thumb|left]]
+
*Algunas veces la analogía entre el diagrama y la codificación en el [[Lenguaje de Programación|Lenguaje de Programación]] resulta ser compleja.
 
 
<br>
 
 
 
Este símbolo representa el Inicio ó el Fin de un Algoritmo. Todo lo que se tiene que hacer es escribir la palabra Inicio o Fin y ubicarlo apropiadamente dentro del Diagrama de Flujo.
 
 
 
<br>
 
 
 
[[Image:Definision.jpg|thumb|right]]
 
 
 
Este símbolo permite que coloquemos 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. En el capítulo de Ciclos desglosaremos un poco mas esta definición.
 
 
 
<br>
 
 
 
[[Image:TecladoProgramacion.jpg|thumb|left]]
 
 
 
<br>
 
 
 
Este símbolo representa una entrada de datos utilizando el teclado del [[Computadora|computador]]. Todo lo que tenemos que escribir en su interior es el nombre de la variable (o las variables) en donde queremos que se almacene el dato que entra por el teclado.
 
 
 
<br>
 
 
 
[[Image:ContinuacionDiagrama.jpg|thumb|right|ContinuacionDiagrama.jpg]]
 
 
 
<br>
 
 
 
Estos símbolos se conocen como conectores lógicos. Nos permiten representar la continuación de un Diagrama de Flujo cuando éste es tan largo que no cabe en una sola hoja.
 
 
 
<br>
 
 
 
[[Image:LecturaDiagrama.jpg|thumb|left|LecturaDiagrama.jpg]]
 
 
 
<br>
 
 
 
Este símbolo 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.
 
 
 
<br>
 
 
 
[[Image:EscrituraDiagrama.jpg|thumb|right|EscrituraDiagrama.jpg]]
 
 
 
<br>
 
 
 
Este símbolo 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.
 
 
 
<br>
 
 
 
[[Image:PantallaDiagrama.jpg|thumb|left|PantallaDiagrama.jpg]]
 
 
 
<br>
 
 
 
Este símbolo representa una salida de datos pero escrita en la pantalla del computador. Es un símbolo un poco más moderno para efectos de los diagramas de flujo.
 
 
 
<br>
 
 
 
[[Image:AccionesDiagrama.jpg|thumb|right]]
 
 
 
<br>
 
 
 
Las flechas son los símbolos que nos van a permitir representar la forma de conexión entre los demás símbolos determinando igualmente el Flujo de ejecución o realización de acciones.
 
 
 
<br>
 
 
 
'''Ventajas y desventajas de los diagramas de flujos'''
 
 
 
'''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|Lenguaje de Programación]] resulta ser compleja.
 
 
 
<br>
 
  
 
== Fuentes  ==
 
== 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&nbsp;: Papiro, 1999 325 p.
 +
*[[usuario:midel|Remedios Prado, Midel A]]. Alternativa metodológica para introducir la 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/trabajos98/acercamiento-logica-programacion/acercamiento-logica-programacion.shtml Acercamiento a la Lógica de Programación]
 +
*[http://html.rincondelvago.com/logica_10.html Lógica]
 +
*[http://www.zonaeconomica.com/concepto-programacion Concepto de Programación]
 +
</div>
  
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&nbsp;: Papiro, 1999 325 p.
+
[[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]] [[Category:Programación]] [[Category:Algoritmos]]
 
 
http://www.monografias.com/concepto-logica/concepto-logica.shtml<br> http://html.rincondelvago.com/logica_10.html
 
 
 
http://www.zonaeconomica.com/concepto-programacion
 
</div>
 
[[Category:Ciencias_Aplicadas_y_Tecnologías]] [[Category:Ciencias_informáticas_y_Telecomunicaciones]] [[Category:Ciencias_informáticas]] [[Category:Programación]] [[Category:Algoritmos]]
 

última versión al 14:36 7 jul 2020

Lógica de Programación
Información sobre la plantilla
LenguajeProgramacion.jpeg
Concepto:Base sobre la cual se sustenta la programación en si.

Lógica de Programación. Base sobre la cual se sustenta la programación en si.

Problemas al constriur un programa

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.

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

  1. Serie coherente de ideas y razonamientos.
  2. Ciencia que estudia la estructura, fundamentos y uso de las expresiones del conocimiento humano.
  3. 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

Cuando el objetivo está realmente claro. Siempre que en el desarrollo de la solución de un problema, en algún momento no sabe por donde coger, no sabe qué hacer o se siente perdido, no busque más, quiere decir simplemente que realmente usted no tenía tan claro el objetivo como había pensado.

Algoritmo: Conjunto de pasos secuenciales y ordenados que permiten lograr un objetivo. Que sean secuenciales significa que deben ser ejecutados uno después de otro y que sean ordenados quiere decir que deben llevar un orden casi obligatorio. El algoritmo es el que permite lograr el objetivo propuesto.

Algoritmos Informales

Definidos como todos aquellos algoritmos que no son realizables a través de una Computadora o al menos no fácilmente. Son aquellos Algoritmos donde el ejecutor real es el ser humano, como el algoritmo para dar un beso, el algoritmo para freir unos huevos o el algoritmo para conseguir un libro.

Ejemplo: Algoritmo Adquisicion_de_un_Libro

Inicio
  1. Saber cuál es el libro que se quiere adquirir
  2. Desplazarnos hacia una biblioteca
  3. Preguntar si tienen el libro que necesitamos
  4. Si lo tienen adquirirlo y Parar allí (dentro de este Algoritmo). Si no lo tienen ir al paso 2 (a otra biblioteca)
Fin

La tecnología ha avanzado tanto que, muchos algoritmos que en el pasado no eran implementables a través de una computadora, 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 más posibilidad de conseguirlo y con menos trabajo.

Algoritmos Computacionales

Se consideran como tales todos aquellos Algoritmos que deben ser preferiblemente implementados en una computadora 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 una computadora en unión con el algoritmo adecuado ofrece un resultado mucho mas rápido y absolutamente confiable (de hecho depende de que el algoritmo igualmente sea muy confiable).

Ejemplo: Algoritmo Colocarnos_una_camisa

Inicio
  1. Dirigirnos a nuestro ropero.
  2. Si esta cerrado: Abrirlo y Coger una camisa.
  3. Si está abrochada: Desabrocharla.
  4. Abrir la camisa.
  5. Si está doblada: Desdoblarla.
  6. Meter un brazo por una de sus mangas.
  7. Meter el otro brazo por la otra de sus mangas.
  8. Ajustar la camisa al tronco.
  9. Si es una camisa de botones: Abotonarla (botón a botón) y :Ajustarla al cuerpo.
  10. 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 Explicación
Valor auna variable.jpg
Representa 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.
Falso y verdadero.jpg
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.
Entrega de informacion.jpg
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.
Salida de informacion.jpg
Permite representar la escritura de un resultado o lo que técnicamente se conoce como una salida.
DiagramaFlujo.jpg
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.
Definision.jpg
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.
TecladoProgramacion.jpg
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.
ContinuacionDiagrama.jpg
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.
LecturaDiagrama.jpg
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.
EscrituraDiagrama.jpg
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.
PantallaDiagrama.jpg
Representa una salida de datos hacia la pantalla.
AccionesDiagrama.jpg
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