0% encontró este documento útil (0 votos)
32 vistas14 páginas

Introducción a la Programación Lógica

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas14 páginas

Introducción a la Programación Lógica

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación Lógica

“La programación lógica es el ARTE de organizar una


sucesión de actividades para obtener un fin deseado”

Introducción a los Algoritmos:


“Un algoritmo es una secuencia de pasos a seguir, no ambiguos, finitos y
determinísticos, que llevan a la solución de un problema”

Se denomina algoritmo a un grupo finito de operaciones organizadas de


manera lógica y ordenada que permite hallar la solución de un determinado
problema. Se trata de un conjunto de instrucciones o reglas bien definidas,
ordenadas y finitas que por medio de una sucesión de pasos, permiten llevar a
cabo una actividad. Las instrucciones deben ser claras a fin de no generar
dudas a quien las ejecuta.

Cuando la secuencia de instrucciones de un algoritmo las traducimos a alguno


de los lenguajes que una computadora puede entender nos encontramos en
presencia de un programa.

Debe quedar claro que un algoritmo es una secuencia de pasos. Esto significa
que es una lista de actividades que se deben llevar a cabo para resolver un
problema. Esta lista de actividades a realizar tiene ciertas características
significativas:

● La secuencia debe tener tiene inicio y fin. No interesa cuan larga sea la
secuencia de pasos, en un momento se inicia y en algún momento debe
terminar.
● Los pasos no debe ser ambiguos, o sea que no deben dar lugar a
distintas interpretaciones. La secuencia de pasos debe ser clara y
entendible.
● Los pasos deben ser determinísticos. Ante los mismos datos de entrada
los resultados de salida deben ser los mismos. Debe ser estable y tener
un camino definido. (Si se sigue un algoritmo dos veces, se debe llegar
al mismo resultado cada vez.)
● Un algoritmo debe ser preciso e indicar el orden de realización de cada
paso.

Existen muchos ejemplos de algoritmos utilizados para resolver problemas de


la vida cotidiana:
● Manuales de usuario, que muestran algoritmos para usar un aparato,
● Las instrucciones que recibe un trabajador de su jefe para ejecutar su
tarea.
● Una receta de comida.

Para ejemplificar mejor desarrollaremos un algoritmo para hervir un huevo:

INICIO
1. Llenar una olla con agua.
2. Colocar el huevo en el agua
3. Encender el fuego de la hornalla
4. Poner la olla en el fuego
5. Esperar que hierva el agua
6. Esperar 5 minutos
7. Apagar el fuego
8. Tirar el agua caliente
9. Llenar la olla con agua fría
10. Esperar 5 minutos
11. Sacar el huevo de la olla
12. Pelar el huevo
FIN
Algunos ejemplos en el ámbito matemático:

● El algoritmo de multiplicación para calcular el producto.


● El algoritmo de la división para calcular el cociente entre un par de
dígitos.

Notaciones
Existen diversas formas de escribir un algoritmo y le elección de la misma
depende del uso para el que se desarrolla el mismo.

Algunas notaciones son:

● Descripción narrada:
Es una descripción narrada oral o escrita con detalle de un proceso
determinado. Esta forma es utilizada desde hace siglos.
Un ejemplo de la misma sería la receta de cocina que puede pasarse en
forma oral (de persona a persona) o en forma escrita (libros de cocina)
Se utiliza lenguaje natural, o sea que es fácil de entender y trasmitir y no
necesita de reglas complicadas.

Esto es también su principal desventaja ya que el lenguaje natural da pie a


ambigüedades y muchas veces necesita del contexto para interpretarse.

Copio una buena ilustración de la descripción algoritmo narrado que


encontramos:
Tomado de: [Link]

Descripción de Algoritmo Narrado

● Notación Matemática:
La clásica notación matemática es también una forma de expresar
algoritmos ya que indican cómo calcular algo. Una fórmula muestra los
pasos a seguir para resolver algo.
X=2a *4 / b
Tiene varias ventajas en comparación a la versión narrada, pero no todos los
problemas pueden resolverse con fórmulas matemáticas (copio la
ilustración de la descripción Matemática)

Tomado de: [Link]


Descripción algoritmo con fórmula matemática

● Diagrama de flujo:
Se utilizan símbolos gráficos que representan los pasos de un
algoritmo.
Son muy utilizados para describir programas y procedimientos en el
ámbito de la computación y también son muy utilizados en el ámbito
industrial.
Actualmente se utilizan menos que hace unos años debido a la aparición
de los lenguajes de tercera generación.

Como ventajas señalaremos que al ser muy visuales resulta muy fácil
comprender los procesos y su secuencia.

Se dice que sirve para enseñar a programar dado que el cerebro asocia
más rápido lo que dibuja que lo que escucha, y ayuda a organizar los
pensamientos.

La mayor desventaja es que si el problema es muy complicado el


diagrama de flujo puede ser muy grande y por lo tanto tedioso de seguir.

Algunos consejos a seguir cuando se hace un diagrama de flujo serian


que el

mismo debe ser lo más sencillo posible escribiendo lo menos posible


dentro de los símbolos, conservar la verticalidad, y por supuesto utilizar
los símbolos adecuados para cada operación.

Se incluyen algunos de los símbolos más conocidos.


Tomado de: [Link]

Principales símbolos del diagrama de flujo

También podemos encontrarlos representados como:

Símbolo Significado
Inicio del programa

Fin del programa

Proceso

Decisión o
bifurcación
Ciclos indefinidos

Ciclos definidos

Entrada de
información

Salida de
información

Conector

● Pseudocódigo:
Es un lenguaje informal para describir algoritmos. Una notación que
toma características de un lenguaje de programación y de procesos
matemáticos para

detallar procesos.

Según Wikipedia : una descripción de alto nivel compacta e informal del


principio operativo de un programa informático u otro algoritmo. Si bien
utiliza convenciones de un lenguaje de programación es independiente
de un lenguaje específico. Como ventajas señalaremos que; ocupa
menos espacio de papel, es más fácil escribir estructuras de control
anidadas, el proceso de codificación es más sencillo y natural, usando la
indentación es muy fácil de leer.
Y para quien sabe leer pseudocódigo es fácil leer código.

En el caso de algoritmos para computación es muy importante escribir un


algoritmo antes de comenzar a codificar ya que esto te permitirá tener una
visión previa de las acciones a seguir para resolver un problema.

Es el primer nivel de abstracción que se hace del proceso necesario para


resolver el todo. Contribuyen con el proceso de creación de la solución. Son
parte importante de la documentación.

Escribir el algoritmo ayuda no solo a diseñar la solución si no a entender el


problema.

Como crear un algoritmo:


1. Especifique lo que desea lograr (objetivo final)
2. Haga una lista de las acciones que serán necesarias
3. Indique las acciones que necesitan que otras terminen primero
4. Encuentre si será preciso repetir alguna tarea varias veces
5. Encuentre los puntos en los que habrá que tomar decisiones
6. Ordene temporalmente la lista de acciones
7. Vuelque a un diagrama de flujo la secuencia de acciones, ciclos y
decisiones.

Y si luego quiere convertirlo en un programa:


1. Seleccione el lenguaje de programación
2. Convierta las acciones, ciclos y decisiones al lenguaje seleccionado

Ejemplo 1:
Preparar mate:

1. Especificación del objetivo:


Quiero tener el mate con yerba hasta el 65% del volumen, un termo con
un litro de agua caliente (90 grados de temperatura)
2. Acciones necesarias:
Llenar el mate con yerba.
Calentar agua.
Llenar termo
Introducir bombilla
Llenar el mate con agua caliente del termo.

3. Precedencias temporales
Necesito calentar el agua primero y llenar el termo después.
No necesito la yerba en el mate para calentar el agua o el agua caliente
para llenar el mate.
Para introducir la bombilla necesito que haya yerba en el mate.
Para introducir el agua caliente necesito el agua caliente y que estén ya la
yerba y la bombilla (algunos puristas disputan esta parte de la secuencia
pero ese es un tema para un curso sobre mate, no sobre programación
lógica)

4. Ciclos o repeticiones
No se detectan por ahora

5. Decisiones
No se detectan por ahora

6. Secuencia temporal
Lleno el mate con yerba
Caliento agua
Lleno el termo
Introduzco bombilla
Cargo el agua caliente

7. Diagrama de flujo
Inicio

Lleno el mate con yerba

Caliento el agua

Lleno el termo

Introduzco la bombilla

Cargo el agua caliente

Fin

Muy bien!

Hemos conseguido nuestro primer diagrama de flujo.

Ejemplo 2:

Llenar el mate con yerba

1. Especificación del objetivo:


Quiero tener el mate con yerba hasta el 65% del volumen agregando
cucharada por cucharada de yerba.

2. Acciones necesarias:
Cargar cucharada con yerba.
Volcar cucharada con yerba en el mate.
Medir el nivel de llenado del mate
Comparar la medición con el nivel del 65%

3. Precedencias temporales
Para volcar la cucharada necesito haberla cargado con yerba previamente
Para comparar la medición necesito haberla hecho previamente
4. Ciclos o repeticiones
Vamos a necesitar ir cargando cucharada por cucharada hasta llenar el
mate al 65%

5. Decisiones
En algún momento vamos a tener que decidir si llegamos al 65% y ya con
eso hemos alcanzado el objetivo o si todavía debemos seguir cargando.

6. Secuencia temporal
Cargar cuchara con yerba
Volcar cuchara dentro del mate
Medir nivel de yerba en el mate
Comparar con el nivel del 65%
Si no alcance repetir desde cargar la cuchara

7. Diagrama de flujo

Inicio

Cargar cuchara con yerba

Volcar cuchara dentro del mate

Medir nivel de yerba en el mate

Comparar nivel de yerba con el 65%

Nivel mayor o igual al 65%


NO
SI

Fin
Ejemplo 3:

Preparar café

1. Especificación del objetivo:


Quiero llenar la cafetera con el nivel de agua indicado y con tres cucharas
de café, luego encender la cafetera, esperar 15 minutos y apgarla.

2. Acciones necesarias:
Cargar el agua.
Comparar el nivel del agua con e indicado.
Cargar 3 cucharadas de café.
Encender cafetera.
Esperar 15 minutos.
Apagar cafetera.

3. Precedencias temporales
El agua y el café pueden cargarse en cualquier orden.
Antes de encender la cafetera tanto el agua como el café deben estar
cargados.
Antes de contar los 15 minutos la cafetera debe estar encendida.
Antes de apagar la cafetera deben haber transcurrido los 15 minutos.

4. Ciclos o repeticiones
Vamos a repetir la carga de la cucharada de café 3 veces.

5. Decisiones
Vamos a necesitar decidir si el nivel del agua alcanzó el deseado.
Vamos a necesitar decidir si ya pasaron los 15 minutos..

6. Secuencia temporal
Cargar cucharada de café 3 veces.
Cargar agua hasta alcanzar el nivel
Encender cafetera
Esperar 15 minutos.
Apagar cafetera

7. Diagrama de flujo:
Utilizamos los rectángulos para reflejar tareas que se repiten (ciclos).
En el borde superior izquierdo del rectángulo del ciclo indicamos el criterio
que rige la repetición. Puede tratarse de una cantidad de veces como el
caso de las cucharadas de café o de esperar a que se cumpla una
condición mientras se va realizando una tarea como cuando se agrega
agua.

Cuando nos vemos obligados a separar nuestro diagrama en dos bloques


indicamos con círculos con el mismo nombre (en este caso C 1) el punto
donde el segundo esquema retoma la marcha del primero.

Inicio

Repetir 3 veces

Pongo cucharada de cafe

Hasta alcanzar el
nivel del agua

Agrego agua

C1

En el segundo bloque notamos que mientras esperamos el paso del


tiempo no hacemos tarea alguna. Por ese motivo la caja que simboliza al
ciclo aparece vacía.

C1

Encender la cafetera

Esperar 15
minutos

Apagar la cafetera

Fin

También podría gustarte