A continuación presentamos algunos ejemplos sencillos de algoritmos.
Un pastor con una cabra, un lobo y una col tiene que cruzar un río, y para hacerlo solo dispone de una pequeña barca en la que únicamente caben el pastor y uno de sus tres acompañantes. ¿Cómo podrán cruzar el río, teniendo en cuenta que no pueden estar solos ni el lobo con la cabra, ni la cabra con la col?
El algoritmo que resuelve el problema es el siguiente:
1. El pastor pasa la cabra al otro lado del río y vuelve solo.
2. El pastor lleva al lobo a la otra margen del río y vuelve con la cabra.
3. El pastor cruza el río con la col y vuelve solo.
4. El pastor pasa la cabra al otro lado del río.
Para cambiar la lámpara led del techo de nuestra habitación el algoritmo podría ser el siguiente:
1. Desconectar la corriente en el cuadro de protección de la vivienda.
2. Colocar la escalera bajo la lámpara fundida.
3. Subir a la escalera y quitar la bombilla.
4. Bajar la escalera.
5. Escoger una bombilla de características similares a la fundida.
6. Subir la escalera hasta llegar al portalámparas.
7. Colocar la bombilla nueva.
8. Bajar de la escalera.
9. Conectar la corriente en el cuadro de protección.
10. Comprobar que la bombilla funciona.
Estos dos ejemplos de la lista de tareas que debemos planificar para llegar a conseguir un reto, es lo que se denomina algoritmo.
1. Escribe un algoritmo con los pasos para calentar un vaso de leche con cacao en el microondas.
2.- Escribe un algoritmo con los pasos que has de dar para hacer una ensalada
le¿Cómo podrimos sintetizar esta lista y conseguir que sea más atractiva?
Puede aparecer una tarea muy complicada, pero ya nuestros antepasados dedicaron tiempo a ello e idearon una forma sencilla para mostrar la secuencia de tareas que buscamos: El diagrama de flujo
Este diagrama es un grafico formado por diferentes polígonos, unidos por líneas o segmentos orientados (con una flechita en un extremo). Estas líneas representan el flujo de control (la secuencia de tareas que debemos llevara cabo para tener éxito en nuestro problema). Además, cada polígono tiene una función diferente.
Vamos a ver una tabla con todos ellos:
Vamos con un ejemplo para que entiendas como funciona:
Para hacernos un vaso de leche con cacao seguimos los siguientes pasos:
1º Sacamos la leche de la nevera
2º Cogemos un vaso y una cuchara
3º Cogemos el cacao
4º Echamos leche y cacao en el vaso
5º Removemos con la cuchara
Veamos como representaríamos el diagrama de flujo para esta tarea:
Este es un ejemplo muy sencillo, donde solo utilizamos dos tipos de bloques (un bloques es cada uno de los polígonos que colocamos y que corresponde con una tarea a realizar). y una sola líneas (establece la secuencia que debemos seguir en la realización de las tareas).
Quiero comentarte que siempre debemos empezar con un bloque INICIO y se terminara con uno ( o varios) cloques FIN.
También debes saber que dentro de cada bloque se pone la tarea que se debe realizar en este paso. Es lo que llaman en el cuadro anterior PROCESO.
Alguna veces tendremos la posibilidad de tomar decisiones. A cada posible respuesta en al decisión le corresponderá una nueva línea de secuencia de procesos: es lo que llamábamos decisión y corresponde con un ROMBO. De los vértices del rombo partirán las líneas de secuencia de proceso.
Además, en nuestros programas necesitaremos captar o mostrar información. Eso se hace con el TRAPECIO.
1. Escribe un algoritmo con los pasos para reparar un neumático de una bicicleta.
2. Dibuja el diagrama de flujo correspondiente en tu cuaderno
Si te has estrujado un poco la cabeza, llegarás a un diagrama parecido a este:
Los algoritmos, por muy complejos que nos puedan parecer, se pueden representar con una serie de estructuras básicas, las cuales pasamos a ver a continuación:
Es aquella en la que los pasos o procesos se realizan uno detrás de otro, o sea, de forma secuencial.
Se ha de cumplir que:
Cada vez se ejecute un paso
El orden de ejecución sea el mismo que el escrito
Cada paso se ejecute una sola vez
Cuando se ejecuta el último paso, el algoritmo se termina
Un ejemplo claro de esta estructura puede ser cepillarse los dientes
Hay veces en las que tenemos que tomar decisiones a lo largo del diagrama, para eso tenemos que utilizar el bloque de Decisión.
En el caso del ejemplo del vaso de leche con cacao, podríamos modificar el final del algoritmo para incluir un bloque de decisión que nos permita decidir si hay suficiente cacao en el vaso o no.
Cuando realizamos un algoritmo, tenemos que tener cuidado de no cometer errores pensando muy bien lo que se hace en cada uno de los bloques o pasos.
Ejemplo: Hemos tenido que separar el bloque "Echamos leche y cacao en el vaso" por dos bloques, "Echamos leche en el vaso" y "Echamos cacao en el vaso", ya que si no hubiese suficiente cacao, añadiríamos más leche, pudiendo llegar a derramarse la leche.
Consiste en el hecho de que, si se cumple una condición, se ejecutará una acción, y si no se cumple, no se hará nada.
Un ejemplo de esta estructura puede verlo en cuando llegas a la puerta de un amigo: si quieres llamarle, entonces tienes que tocar el timbré.
Consiste en el hecho de que, si se cumple una condición, entonces se lleva a cabo una acción, y si no se cumple, se ejecuta otra acción.
Un ejemplo de esta estructura puede ser el algoritmo para escoger el precio de un billete de avión según la edad: Un precio para los niños menores de 12 años y otro para todos los demás.
Modifica el diagrama de flujo correspondiente al algoritmo con los pasos a seguir para calentar un vaso de leche con cacao en el microondas e incluye un bloque de decisión que nos pregunte si la leche está suficientemente caliente o no.
Las estructuras repetitivas o bucles están formadas por un conjunto de acciones que se ejecutan un número determinado de veces, o bien mientras se cumpla una determinada condición.
Repetición para siempre
Es el caso del primer ejemplo que tienes justo debajo a la izquierda.
La luz se está encendiendo y apagando indefinidamente.
Este tipo de estructura no tiene bloque de FIN.
Un ejemplo puede ser el algoritmo de pegar sellos en las cartas que se le envían a los padres desde el instituto: quedan cartas; pegar sellos.
Repetición un número de veces
Es el segundo ejemplo que tienes justo debajo a la derecha.
La luz parpadea 10 veces cada segundo y luego el algoritmo termina.
Un ejemplo puede ser el algoritmo de tomar un medicamento un número determinado de veces al día.
Realiza el diagrama de flujo correspondiente al algoritmo con los siguientes pasos:
Manda a un robot subir 20 escalones.
Primero tiene que subir la pierna derecha y luego la pierna izquierda.
El pseudocódigo es una herramienta que permite la descripción narrativa de algoritmos. Utiliza como base los diagramas de flujo, pero utiliza un código especifico que hace que el texto de los bloques sea mucho más corto. No existen reglas sintácticas estrictas, ya que el interés se centra en la secuencia de instrucciones.
Un ejemplo de utilización de este pseudocódigo es la imagen siguiente donde aparece la lista de las tareas a realizar para determinar si un número es negatio o no y como quedaría el diagrama de flujo con este pseudocógico:
Puedes utilizar la aplicación PSeInt para realizar actividades con pseudocógico.
Realiza el algoritmo y el diagrama de flujo en pseudocódigo del proceso para determinar si un número es mayor o menor de 1000
Para que un ordenador realice una determinada tarea, necesitamos darle una serie de instrucciones escritas en una notificación específica
Un programa es una secuencia de instrucciones que ejecuta un ordenador con el objetivo de efectuar una tarea determinada
En la confección de un programa se distinguen fundamentalmente las siguientes fases:
Un lenguaje de Programación es una notificación, según una sintaxis determinada, que se utiliza para escribir las instrucciones que serán ejecutadas por un ordenador. Los leguajes de programación se clasifican en dos grandes grupos: Lenguajes de alto nivel y lenguajes de bajo nivel.
Este es la lengua que utilizan los diferentes componentes de un sistema informático para comunicarse y para funcionar. Se basa en la electrónica digital y usa un sistema de numeración basado en 0 y 1, denominado código binario. Utiliza algunas instrucciones más como operadores aritméticos y comparaciones.
En estos lenguajes ya no programamos con 0 y 1, si no que utilizamos un leguaje mucho más cómodo, rápido y parecido a nuestro lenguaje coloquial. A su vez, y dependiendo del modo de introducir los programas, tenemos dos tipos de lenguajes de alto nivel: Los lenguajes visuales y los leguajes de código.
Lenguajes visuales:
Son aquellos en los que las instrucciones y códigos serán introducidos mediante bloques que seleccionamos en nuestra pantalla y llevamos a nuestra área de trabajo. Son lenguajes mucho más visuales, sencillos y rápidos de aprender, por lo que son la forma de acercar a los que quieren empezar en este mundo.
A continuación tienes algunos ejemplos:
Leguajes de código
En este caso no tenemos bloques, sino una serie de instrucciones (secuencia de letras con un significado para nuestro lenguaje de programación - léxico), una reglas para colocarlas (sintaxis) y una estructura general para que tenga sentido (morfología). Todo ello se hace utilizando el teclado y conociendo las reglas de dicho lenguaje, por lo que necesitamos aprenderlas previamente. Esto hace que no sea fácil aprender a utilizarlo, pero consiguen mucha más eficacia y rapidez en los programas obtenidos.
En la siguiente tabla tienes algunos ejemplos: