Saltar la navegación

3.1. Algoritmos y diagramas de flujo

 

Glosario

Condiciones adversas [meteorología]

Condiciones metereológicas

Definición

Situaciones atmosféricas que pueden ser peligrosas o incómodas para las personas y que pueden afectar negativamente diversas actividades.

Ejemplo

Suspendieron el partido por condiciones meteorológicas adversas.

Estándar

Copiar un símbolo

Definición

Norma establecida que se utiliza como referencia o modelo. Aplicado a simbología se refiere al uso común de los símbolos para representar lo mismo.

Ejemplo

Los diagramas de flujo utilizan una simbología estándar.

Pronóstico [del tiempo]

Mapa con predicción meteorológica

Definición

Predicción de las condiciones meteorológicas en una determinada área durante un tiempo determinado.

Ejemplo

Dieron sol para mañana en el pronóstico del tiempo.

Reflectante

Chaleco reflectante

Definición

Cualidad que posee un objeto o material que refleja la luz que incide sobre él, haciendo que se vea brillante o visible en condiciones de poca luz.

Ejemplo

Llevar ropa reflectante es necesario si andas en bicicleta por la noche.

Sensor

Órganos de los sentidos

Definición

Dispositivo que registra las variaciones de una magnitud. Para un sistema informático se comportaría de manera parecida a los órganos de los sentidos de un sistema biológico.

Ejemplo

El sensor de temperatura detectó que es preciso encender la calefacción.

Algoritmos y programación

Algoritmos

Un algoritmo es como una receta. Es un conjunto de pasos que te dice exactamente qué hacer para resolver un problema.

Piensa en un algoritmo como las instrucciones paso a paso para hacer una tarea, como seguir un mapa para llegar a un lugar.

Programar es diseñar algoritmos para decirle a una máquina que es lo que debe hacer en cada momento.

Ejemplo

Por ejemplo, quieres ir en bici desde tu casa hasta el instituto. El hecho de planificar la ruta para poder llegar a tiempo a primera hora es un algoritmo. Debes:

La imagen representa a una persona montando en bicicleta
  1. Comprobar la bicicleta. Revisa si las ruedas están bien infladas y que los frenos responden.
  2. Planificar la ruta: puedes usar una aplicación de mapas para encontrar la mejor ruta, priorizando las calles con carril bici u otros caminos seguros.
  3. Revisar el tiempo: consulta el pronóstico del tiempo para asegurarte de que no habrá condiciones adversas como lluvia intensa o vientos fuertes.
  4. Preparar el equipo de seguridad: ponte casco y asegúrate de llevar ropa visible o algo reflectante en la ropa.
  5. Emprender el viaje: sigue la ruta planificada, respeta las señales de tráfico y las normas de seguridad vial.
  6. Evaluar la experiencia: al llegar al instituto, reflexiona y piensa posibles mejoras a la hora de repetir el viaje.

Múltiples soluciones

Dado un mismo problema, puede ser resuelto por varios algoritmos diferentes. Por ejemplo, hay varias rutas posibles para ir desde casa al instituto.

Mapa con varias rutas posibles para ir desde un punto hasta el instituto.

Una receta de cocina

Piensa, por ejemplo, en este otro algoritmo. Esta mañana te has sentido original en la cocina y decides hacerte un bocadillo de crema de cacao con nata para desayunar.

Tu familia ha dejado instrucciones escritas en un papel sujetas con un imán de nevera. Lees las instrucciones.

  1. Corta dos rebanadas de pan
  2. Ponlas en un plato.
  3. Abre el frasco de crema de cacao.
  4. Usa una cuchara para coger un poco de crema de cacao
  5. Extiende la crema en una de las rebanadas de pan.
  6. Limpia la cuchara.
  7. Abre el bote de nata.
  8. Agita bien el bote de nata.
  9. Vierte un poco de nata sobre la crema de cacao extendida en la rebanada de pan.
  10. Coloca la otra rebanada de pan encima para cerrar el bocadillo.

Haces el bocadillo. ¿Todo bien? ¿Hay algo que no ha funcionado como debía?

Todos cometemos errores

Posible error: el bote de nata se agita antes de abrir.

Sí, que pena, no ha quedado el bocadillo como esperabas. Diseñar un algoritmo no es una tarea sencilla.

Todas las personas cometemos errores programando. Equivocarse no está mal, es una forma de aprender y mejorar.

En programación va a ser inevitable equivocarnos a veces, pero también va a ser imprescindible detectar los posibles errores y depurarlos. 

Lectura facilitada

Algoritmos

Un algoritmo es un conjunto de pasos para resolver un problema.

Son las instrucciones necesarias que debes realizar paso a paso para hacer una tarea.

Por ejemplo, un algoritmo:

  • Son los pasos necesarios y ordenados para hacer una receta de cocina.
  • Son los caminos que debes seguir en un mapa para llegar a un lugar.

Programar es diseñar algoritmos para decirle a una máquina que debe hacer en cada momento.

Ejemplo

Imagina que quieres ir en bici desde tu casa hasta el instituto.

El proceso de planificar la ruta para llegar a tiempo es un algoritmo.

Los pasos de este algoritmo pueden ser:

  1. Comprobar la bicicleta. 
  2. Planificar la ruta: puedes usar una aplicación de mapas.
  3. Revisar el tiempo: asegúrate de que no habrá condiciones como lluvia intensa... 
  4. Preparar el equipo de seguridad: ponte casco y ropa visible.
  5. Emprender el viaje:
    Sigue la ruta,
    respeta las señales de tráfico
    y las normas de seguridad vial.
  6. Evaluar la experiencia.
    Piensa posibles mejoras a la hora de repetir el viaje.

Múltiples soluciones

Puedes resolver un mismo problema con varios algoritmos diferentes.

Por ejemplo, en el anterior algoritmo hay varias rutas posibles para ir desde casa al instituto.

Mapa con varias rutas posibles para ir desde un punto hasta el instituto.

Una receta de cocina

Piensa en este algoritmo.

Vas a hacerte un bocadillo de crema de cacao con nata.

Las instrucciones que te dejó tu familia son:

  1. Debes cortar dos rebanadas de pan
  2. Tienes que poner las rebanadas de pan en un plato.
  3. Debes abrir el frasco de crema de cacao.
  4. Tienes que usar una cuchara para coger un poco de crema de cacao
  5. Debes extender la crema en una de las rebanadas de pan.
  6. Tienes que limpiar la cuchara.
  7. Tienes que abrir el bote de nata.
  8. Debes agitar bien el bote de nata.
  9. Debes poner un poco de nata sobre la crema de cacao extendida en la rebanada de pan.
  10. Al final, colocas la otra rebanada de pan encima para cerrar el bocadillo.

Ya erminaste de hacer el bocadillo.

¿Todo ha salido bien?

¿Algo no ha funcionado como debía?

Todos cometemos errores

Posible error: El bote de nata se agita antes de abrirlo.

Diseñar un algoritmo no es fácil.

Todas las personas cometemos errores programando.
Equivocarse no está mal y recuerda que es una forma de aprender y mejorar.

En programación es normal cometer algún error.
Por eso uno de los pasos necesarios será detectar los posibles errores y depurarlos. 

La representación de algoritmos. Los diagramas de flujo.

Ejemplo de diagrama de flujoUn algoritmo es una secuencia de pasos. Pero escribirlo en forma de lista no ayuda demasiado. Y si hubiera alguna forma para esquematizarlos de forma más gráfica.

El diagrama de flujo es la representación gráfica de un algoritmo. En un diagrama de flujo representamos simbólicamente los procesos a realizar y los unimos mediante flechas.

Los diagramas de flujo tienen una simbología estándar con la que se evita el uso de símbolos diferentes para los mismos procesos. 

Los principales símbolos que se emplean en los diagramas de flujo son:

Inicio/Final

Símbolo inicio fin

Se usa para indicar el inicio y el final del algoritmo. Del inicio solo puede salir una línea y al final solo puede llegar una línea.

Proceso general

Símbolo de proceso

Indica una acción o paso sencillo del algoritmo.

Entrada de datos

Símbolo de entrada de datos

En general, indica la entrada de uno o más datos, por ejemplo, por el teclado, por un sensor,...

Decisión

Símbolo de decisión

Indica una comparación de dos datos o una pregunta. Dependiendo del resultado lógico: Sí o No, Verdadero o Falso, ... se toma la decisión de seguir un camino u otro en el diagrama de flujo.

Salida de datos

Símbolo de salida de datos

En general, indica la salida de uno o más datos, por ejemplo, por pantalla, por PDF, por impresora, ...

Función

Símbolo de función

A veces, para simplificar el código del algoritmo creamos pequeñas funciones o subprogramas que representan pequeños procesos.

Repetición o bucle.

Símbolo de repetición

Indica que una instrucción o conjunto de instrucciones deben repetirse. Puede ser por siempre, por un número determinado de veces o hasta que se cumpla una condición.

Lectura facilitada

Ejemplo de diagrama de flujoUn algoritmo es una secuencia de pasos.
¿Se pueden representar de forma gráfica?

El diagrama de flujo es la representación gráfica de un algoritmo.
En un diagrama de flujo representamos los pasos o procesos y los unimos mediante flechas.

Los diagramas de flujo tienen una simbología estándar con símbolos concretos para cada proceso.


Los principales símbolos de los diagramas de flujo son:

Inicio/Final

Símbolo inicio fin

Se usa para indicar el inicio y el final del algoritmo.
Del inicio solo puede salir una línea y al final solo puede llegar una línea.

Proceso general

Símbolo de proceso

Indica una acción o paso sencillo del algoritmo.

Entrada de datos

Símbolo de entrada de datos

En general, indica la entrada de uno o más datos.
Por ejemplo: a través de un teclado, con el ratón, mediante un sensor,...

Decisión

Símbolo de decisión

Indica una comparación de dos datos o una pregunta.
El resultado de la comparación es un valor lógico: Sí o No, Verdadero o Falso, ...
En función de este resultado se toma la decisión de seguir un camino u otro en el diagrama de flujo.

Salida de datos

Símbolo de salida de datos

En general, indica la salida de uno o más datos,
Por ejemplo: por la pantalla de un ordenador, en un fichero PDF, por impresora, ...

Función

Símbolo de función

A veces, para simplificar el código del algoritmo creamos pequeñas funciones o subprogramas.
Estas funciones son pequeños procesos que cumplen una función concreta.

Repetición o bucle.

Símbolo de repetición

Indica que una instrucción o conjunto de instrucciones deben repetirse.
Puede ser por siempre, por un número determinado de veces o hasta que se cumpla una condición.

Estructuras de programación

Las estructuras de programación se utilizan para crear algoritmos. Permiten organizar y controlar como se tiene que ejecutar el programa.

Estructura secuencial

Diagrama de flujo estructura secuencial

La imagen muestra la secuencia de pasos para inflar la rueda de una bicicleta.

La secuencia es la estructura de programación más básica. 

Consiste en un conjunto de pasos o instrucciones que se van ejecutando una detrás de otra.

Bucle o estructura repetitiva

Diagrama de flujo estructura repetitiva

La imagen muestra un ejemplo de programa. Un bucle como puede ser pedalear en una bicicleta hasta que se llegue a destino.

Los bucles consisten en la repetición de líneas de código. Instrucciones que se pueden repetir por siempre, un determinado número de veces o hasta que se cumpla una condición.

Estructura condicional

Diagrama de flujo de una estructura condicional

La imagen muestra un programa de una bicicleta que está parada en un semáforo. En función del estado del semáforo, el ciclista ejecutará una u otra orden.

Los condicionales permiten a los programas tomar decisiones. Dependiendo de si una condición se cumple o no el programa ejecutará un conjunto u otro de instrucciones.

Nota: los programas de Scratch de este apartado no están diseñados para funcionar. Son solo para ejemplificar una situación de la vida real como una estructura de programación.

Lectura facilitada

Las estructuras de programación se utilizan para crear algoritmos.
Permiten organizar y controlar como se tiene que ejecutar el programa.

Estructura secuencial

Diagrama de flujo estructura secuencial

La imagen muestra la secuencia de pasos para inflar la rueda de una bicicleta.

La secuencia es la estructura de programación más básica. 

Consiste en un conjunto de pasos o instrucciones que se van ejecutando una a continuación de la otra.

Bucle o estructura repetitiva

Diagrama de flujo estructura repetitiva

La imagen muestra un ejemplo de programa. Un bucle como puede ser pedalear en una bicicleta hasta que se llegue a destino.

Los bucles consisten en la repetición de un conjunto de instrucciones.
Estas instrucciones se pueden repetir:

  • Por siempre.
  • Un determinado número de veces
  • Hasta que se cumpla una condición.

Estructura condicional

Diagrama de flujo de una estructura condicional

La imagen muestra un programa de una bicicleta que está parada en un semáforo. En función del estado del semáforo, el ciclista ejecutará una u otra orden.

Las estructuras condicionales permiten a los programas tomar decisiones.
Dependiendo de si una condición se cumple o no
el programa ejecutará un conjunto u otro de instrucciones.

Nota: los programas de Scratch de este apartado no están diseñados para funcionar.
Son solo para ejemplificar una situación de la vida real como una estructura de programación.

Identifica la estructura de programación.

Identifica qué tipo de estructura de programación se representa en cada imagen.

{"typeGame":"FlipCards","author":"","randomCards":true,"instructions":"

Identifica qué tipo de estructura de programación se representa en cada imagen.

","showMinimize":true,"itinerary":{"showClue":false,"clueGame":"","percentageClue":40,"showCodeAccess":false,"codeAccess":"","messageCodeAccess":""},"cardsGame":[{"url":"resources/bucle_bici_ac.png","x":0.5077585680731411,"y":0.48458343505859375,"author":"","alt":"Montar en la bici, plegar caballete, repetir hasta que bicicleta está en destino, pedalear.","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Programa%20Scratch.%20Estructura%20repetitiva."},{"url":"resources/inflarueda_bici_ac.png","x":0.6761853448275862,"y":0.709835249802162,"author":"","alt":"Consigue un inflador, coloca la bici, busca la válvula de la rueda, conecta el inflador a la válvula, infla la rueda, comprueba la presión, retira el inflador de la válvula, pon el tapón de la válvula.","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Programa%20Scratch.%20Estructura%20secuencial."},{"url":"resources/semafor_bici_ac.png","x":0.6761853448275862,"y":0.709835249802162,"author":"","alt":"al recibir parada en semáforo, si semáforo es rojo o semáforo es ámbar, parar, esperar hata que semáforo sea verde, si no, pedalear","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Programa%20Scratch.%20Estructura%20condicional."},{"url":"resources/condicion.1.png","x":0.546551671521417,"y":0.8559607399834527,"author":"","alt":"al recibir parada en semáforo, si semáforo es rojo o semáforo es ámbar, parar, esperar hata que semáforo sea verde, si no, pedalear","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Diagrama%20de%20flujo.%20Estructura%20condicional."},{"url":"resources/repeticion.1.png","x":0.6761853448275862,"y":0.709835249802162,"author":"","alt":"al recibir parada en semáforo, si semáforo es rojo o semáforo es ámbar, parar, esperar hata que semáforo sea verde, si no, pedalear","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Diagrama%20de%20flujo.%20Estructura%20repetitiva."},{"url":"resources/secuencia.png","x":0.609432926884404,"y":0.836126261744006,"author":"","alt":"al recibir parada en semáforo, si semáforo es rojo o semáforo es ámbar, parar, esperar hata que semáforo sea verde, si no, pedalear","audio":"","color":"#000000","backcolor":"#ffffff","eText":"","urlBk":"","xBk":0,"yBk":0,"authorBk":"","altBk":"","audioBk":"","colorBk":"#002b4a","backcolorBk":"#e5f2f9","eTextBk":"Diagrama%20de%20flujo.%20Estructura%20secuencial."}],"isScorm":1,"textButtonScorm":"Guardar la puntuación","repeatActivity":true,"textAfter":"","version":1.3,"percentajeCards":100,"type":2,"showSolution":true,"timeShowSolution":3,"time":3,"evaluation":false,"evaluationID":"","id":"20244257827-120","msgs":{"msgSubmit":"Enviar","msgClue":"¡Genial! La pista es:","msgCodeAccess":"Código de acceso","msgPlayAgain":"Jugar otra vez","msgPlayStart":"Pulse aquí para jugar","msgScore":"Puntuación","msgErrors":"Errores","msgHits":"Aciertos","msgMinimize":"Minimizar","msgMaximize":"Maximizar","msgCool":"¡Bien!","msgFullScreen":"Pantalla Completa","msgExitFullScreen":"Salir del modo pantalla completa","msgSuccesses":"¡Correcto! | ¡Excelente! | ¡Genial! | ¡Muy bien! | ¡Perfecto!","msgFailures":"¡No era eso! | ¡Incorrecto! | ¡No es correcto! | ¡Lo sentimos! | ¡Error!","msgNoImage":"Pregunta sin imágenes","msgEndGameScore":"Antes de guardar la puntuación comience la partida.","msgScoreScorm":"La puntuación no se puede guardar porque esta página no forma parte de un paquete SCORM.","msgOnlySaveScore":"¡Sólo puede guardar la puntuación una vez!","msgOnlySave":"Sólo puede guardar una vez","msgInformation":"Información","msgYouScore":"Su puntuación","msgAuthor":"Autoría","msgOnlySaveAuto":"Su puntuación se guardará después de cada pregunta. Sólo puede jugar una vez.","msgSaveAuto":"Su puntuación se guardará automáticamente después de cada pregunta.","msgSeveralScore":"Puede guardar la puntuación tantas veces como quiera","msgYouLastScore":"La última puntuación guardada es","msgActityComply":"Ya ha realizado esta actividad.","msgPlaySeveralTimes":"Puede realizar esta actividad cuantas veces quiera","msgClose":"Cerrar","msgAudio":"Audio","msgPreviousCard":"Anterior","msgNextCard":"Siguiente","msgNumQuestions":"Número de tarjetas","msgTrue":"Verdadero","msgFalse":"Falso","msgTryAgain":"Necesita al menos un %s% de respuestas correctas para conseguir la información. Vuelva a intentarlo.","mgsAllQuestions":"¡Completadas las preguntas!","msgTrue1":"Has acertado. Es la cara correcta.","msgTrue2":"Has fallado. No es la cara correcta.","msgFalse1":"Has acertado. No es la cara correcta.","msgFalse2":"Has fallado. Es la cara correcta.","mgsClickCard":"Pulsa en la tarjeta","msgEndTime":"Acabó el tiempo de juego. Tu puntuación es %s.","msgEnd":"Finalizar","msgEndGameM":"Has completado el juego. Tu puntuación es %s.","msgUncompletedActivity":"Actividad no completada","msgSuccessfulActivity":"Actividad superada. Puntuación: %s","msgUnsuccessfulActivity":"Actividad no superada. Puntuación: %s","msgTypeGame":"Tarjetas de memoria"}}
012345
Su navegador no es compatible con esta herramienta.

Símbolos para diagramas de flujo

Puedes encontrar un resumen con los símbolos más empleados y diagramas ejemplo en el siguiente archivo editable de LibreOffice Draw.

Diagramas de flujo

Puedes visualizarlo en el siguiente .PDF





Lectura facilitada

Puedes encontrar un resumen con los símbolos más empleados y diagramas ejemplo
en el siguiente archivo editable de LibreOffice Draw.

Diagramas de flujo

Puedes visualizarlo en el siguiente PDF




Diagramas de flujo con LibreOffice Draw

Podemos realizar nuestros diagramas de flujo empleando una herramienta ya conocida: LibreOffice Draw.

Aquí te dejamos un videotutorial para ayudarte a realizarlos de forma sencilla y práctica.

Interpretación y diseño de algoritmos sencillos.

Ahora ya sabes que es un algoritmo y cuáles son las estructuras básicas de programación. Te proponemos unas actividades para practicar los contenidos aprendidos. Estas tareas, una vez resueltas, debes entregárselas a tu docente para su corrección. 

En esta tarea encontrarás dos tipos de actividades:

  • Actividad 1: Interpretación de un algoritmo.

En esta tarea debes interpretar un algoritmo a partir de su diagrama de flujo. Es muy importante que enumeres cada uno de los pasos para explicar correctamente el funcionamiento del algoritmo que debes resolver.

  • Actividad 2: Diseño de un algoritmo.

En esta tarea debes realizar el proceso contrario; es decir, debes realizar el diagrama de flujo para uno de los algoritmos que te proponemos.

Utiliza el siguiente documento para completar las actividades indicadas anteriormente.
Puedes descargarlo en versión editable para cubrir en un editor de textos o en formato PDF. 

Interpretación y diseño de algoritmos sencillos - Versión editable

cREAgal. Interpretación y diseño del algoritmos (CC BY-NC-SA)

Lectura facilitada

Ahora ya sabes que es un algoritmo y las estructuras básicas de programación.

Esta tarea tiene actividades para practicar.
Entrega esta tarea a tu docente para su corrección después de terminarla. 

Esta tarea tiene dos tipos de actividades:

  • Actividad 1: Interpretación de un algoritmo.

En esta tarea debes interpretar un algoritmo a partir de su diagrama de flujo.
Es muy importante que enumeres cada uno de los pasos
para explicar el funcionamiento del algoritmo.

  • Actividad 2: Diseño de un algoritmo.

En esta tarea debes realizar el diagrama de flujo
para uno de los algoritmos que te proponemos.

Utiliza el siguiente documento para completar las actividades.
Puedes descargarlo en versión editable
para cubrir en un editor de textos
o en formato PDF. 

Interpretación y diseño de algoritmos sencillos - Versión editable

cREAgal. Interpretación y diseño del algoritmos (CC BY-NC-SA)

¿Cómo se puntúa la interpretación del algoritmo?

cREAgal. Rúbrica interpretación y diseño de algoritmos (CC BY-NC-SA)

Feito con eXeLearning (Nova xanela)