Tema 2. TD2 - Algoritmos
daniel_agudo
Created on September 29, 2024
More creations to inspire you
CELEBRATE BLACK AUTHORS OF TEEN BOOKS!
Interactive Image
SUNITA NARAN
Interactive Image
BERTA CÁCERES
Interactive Image
DESMOND TUTU
Interactive Image
VANDANA SHIVA
Interactive Image
CRAIG HODGES
Interactive Image
FAMILY FAVORITES - IRISH FILM
Interactive Image
Transcript
Algoritmos
1. Los algoritmos
2. Programando un Algoritmo
3. Diagramas de Flujo
1. LOS ALGORITMOS Un algoritmo es una secuencia de pasos o instrucciones que hay que seguir para llegar al resultado que queremos obtener. El algoritmo, es decir, las instrucciones, han de ser claras y sencillas para que cualquier persona pueda seguirlas sin ningún problema. Por ejemplo, las instrucciones que te dan los sistemas de navegación vía satélite (GNSS) para llegar desde un punto de partida a un destino específico. En la imagen se pueden ver las instrucciones para llegar desde la Plaza Mayor a la Puerta del Sol en la ciudad de Madrid. Fíjate que solo se indica una de las posibles rutas para llegar a la Puerta del Sol. Sin embargo, podríamos ir por otras rutas igual de válidas. A menudo existen varias soluciones o algoritmos para resolver un mismo problema. 1.1. ALGORITMOS DE BAJO Y ALTO NIVEL Si conocemos un procedimiento que se repite mucho, éste se puede ejecutar a nivel interno y sólo hará falta indicarlo sin tener que especificar siempre todas sus acciones secundarias. Si yo sé que para freír cualquier cosa necesito poner aceite en una sartén y dejarla al fuego hasta que se caliente el aceite, sólo me hace falta indicar “Preparar la sartén para freír”. Actualmente existen muchos lenguajes de programación de alto nivel, haciendo más sencilla esta práctica. Esto es posible gracias a que existen programas que traducen órdenes más generales que se repiten a menudo a sus algoritmos completos, en los que se especifica cada pequeña acción. A su vez, hay otros programas a más bajo nivel que traducen instrucciones en otras más específicas. Presentación obtenida de BQ y DIWO
2. PROGRAMANDO UN ALGORITMO Para que un ordenador entienda un algoritmo, debemos programarlo. Ya hemos trabajado con Scratch y otros programas similares de Programación Gráfica (por bloques), pero existe una programación más avanzada llamada Programación Textual, donde seremos nosotros los que escribiremos los comandos para indicarle a nuestro ordenador qué debe hacer. Veremos ahora algunos de los comandos más básicos de este último tipo de programación. 2.1. VARIABLES 2.2. CONDICIONALES 2.3. BUCLES 2.4 FUNCIONES Cuando tengamos una tarea que se repite mucho, o cuando queramos organizar mejor nuestro proyecto, crearemos una función que realice dicha tarea cada vez que la llamemos. Por tanto, podríamos decir que una función es una tarea, una instrucción general que contiene varias instrucciones o pasos (un algoritmo específico), y que permite ejecutar dicha tarea con esa sola instrucción las veces que queramos. Si retomamos el ejemplo anterior, diríamos que “freír un espárrago” sería una función, una tarea que se compone de las instrucciones antes descritas. Esta función o tarea la podremos reutilizar en todas las recetas que lleven espárrago frito: parrillada de verduras, risotto de espárragos, etc. Traducido al lenguaje que utilizamos para programar: parrillada de verduras y risotto de espárragos serían programas concretos. “Freír un espárrago” sería una función, una tarea que repetimos a menudo y que si la escribimos de esta forma nos ahorra el tener que escribir todas las veces el conjunto de instrucciones (el algoritmo: preparar la sartén, echar el espárrago, etc.). Otro ejemplo de función es “llamar al ascensor”. Al solicitar esta tarea, estamos haciendo que se ejecuten una serie de instrucciones que nos permite lograr un resultado: que el ascensor nos transporte. Cuando se pone en marcha la función “llamar al ascensor”, ejecuta un algoritmo con las siguientes instrucciones: 1. Localizar en qué planta/piso está el ascensor 2. Comparar si es mayor o menor que nuestra planta 3. Saber si tiene que subir o bajar para llegar 4. Poner en marcha los motores que permiten mover el ascensor 5. Comprobar en cada planta si ha llegado a su destino 6. Parar los motores cuando esté en nuestra planta 7. Abrir las puertas para que nos podamos montar Qué contiene una función: PARÁMETROS Los parámetros son los datos que necesita una función para que se ejecute correctamente. Según el tipo de función, se necesitan determinados valores. Es importante distinguir un valor de una variable, las variables contienen valores. Las funciones trabajan con valores y no con variables, si modificamos un valor en una función, la variable no se verá alterada. Por ejemplo, si para una función que expresa los minutos necesitamos el dato de una variable expresada en horas, dentro de nuestra función multiplicaremos el número de horas que hemos recibido como parámetro por 60 (horas * 60), pero la variable seguirá mostrando las horas. Los parámetros se los damos a la función cuando la llamamos. Normalmente a continuación del nombre de la función. Presentación obtenida de BQ y DIWO
3. DIAGRAMAS DE FLUJO Un diagrama de flujo sirve para representar de forma gráfica un proceso, como por ejemplo un algoritmo. Para saber hacer diagramas de flujo tenemos que conocer primero los elementos básicos que podemos encontrar en uno de ellos. Veamos ahora un ejemplo de diagrama incluyendo todos estos elementos. Imaginad que queréis que la luz de vuestra habitación se encienda sola cuando sea de noche. Para ello os compráis un sensor de luz y os dicen que cuando es de noche el sensor marca menos de 20: Presentación obtenida de BQ y DIWO
4. TIPOS DE ALGORITMOS Hay varios tipos de algoritmos, y todos ellos dependerán de la forma que tenga su Diagrama de flujo. Veremos, a continuación, los más significativos. 4.1. ALGORITMO DE ESTRUCTURA SECUENCIAL Las instrucciones que componen el algoritmo se van cumpliendo una tras otra, siguiendo el orden en que aparecen. - Ejemplo: Proceso para cargar tu teléfono móvil 4.2. ALGORITMO DE ESTRUCTURA SELECTIVA O CONDICIONAL Las instrucciones solo se llevan a cabo si se cumple o no una condición. - Ejemplo: Comprobar si el teléfono móvil está cargado completamente Y, según vimos en la sección 2 de este tema, aquí estaríamos utilizando los comandos: - IF - IF...ELSE 4.3. ALGORITMO DE ESTRUCTURA REPETITIVA (ITERATIVA) Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces. Los algoritmos de repetición pueden incluir instrucciones que se repiten un número de veces (FOR), que se repitan por siempre o hasta que se cumplan una o varias condiciones (WHILE). - Ejemplo (repetir un número de veces): Dibujar un cuadrado de lado 150 - Ejemplo (repetir siempre): mover un personaje hacia arriba en Scratch - Ejemplo (repetir hasta que se cumpla una condición): en Scratch, que se mueva un personaje hacia la derecha hasta tocar el borde.