Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
15-12-2011 1 Algoritmos y Diagramas de Flujo Mauricio Elgueta Lizarrague mauricio@isjom.com El software se clasifica en 3 diferentes Categorías, de acuerdo a su uso: Sistemas Operativos Lenguajes de Programación Software de Aplicación Conceptos Básicos 15-12-2011 2 Conceptos Básicos Bit es el acrónimo de Binary Digit (dígito binario). Es un dígito del sistema de numeración binario, se utilizan los dígitos 1 y 0. Unidad mínima de información empleada en informática, en cualquier dispositivo digital. Byte Se describe como la unidad básica de almacenamiento de información, equivalente a ocho bits Definiciones Básicas Lenguajes de Programación - Resumen Lenguaje de programación: lenguaje en el que podemos dar ordenes al computador. Instrucción: Orden expresada en un lenguaje de programación. Programa: Secuencia ordenada de instrucciones. 15-12-2011 3 Algoritmos ¿ Qué es un algoritmo? Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas, que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Algoritmos ¿Cómo se hace un algoritmo? No existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Por lo que distintos algoritmos pueden llegar a una misma solución. 15-12-2011 4 Algoritmos Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Estas expresiones son formas más estructuradas para representar algoritmos. La descripción de un algoritmo usualmente se hace en tres niveles: Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones. 15-12-2011 5 Los algoritmos tienen tres características fundamentales: Son precisos, es decir, deben indicar el orden de realización de los pasos. Están bien definidos, es decir, si se sigue el algoritmo dos veces usando los mismos datos, debe proporcionar la misma solución. Son finitos, esto es, deben completarse en un número determinado de pasos. Algoritmos - Ejemplo PROBLEMA: Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a la clase de Informática I), ¿qué debe hacer el estudiante? 15-12-2011 6 Algoritmos - Ejemplo Inicio Dormir haga 1 hasta que suene el despertador (o lo llame la mamá). Mirar la hora. ¿Hay tiempo suficiente? Si hay, entonces Bañarse. Vestirse. Desayunar. Sino, Vestirse. Cepillarse los dientes. Despedirse de la mamá y el papá. ¿Hay tiempo suficiente? Si, Caminar al paradero. Sino, Correr al paradero. Hasta que pase un bus para la universidad haga : Esperar el bus Ver a las demás personas que esperan un bus. Tomar el bus. Mientras no llegue a la universidad haga : Seguir en el bus. Pelear mentalmente con el conductor. Tocar el timbre. Bajarse. Entrar a la universidad. Fin Diagrama de Flujo ¿ Que son? Es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. 15-12-2011 7 Diagrama de Flujo Importancia Los diagramas de flujo son importantes porque nos facilita (además del entendimiento) la manera de representar visualmente el flujo de datos, en este realizamos un análisis de los procesos o procedimientos que requerimos para realizar un programa o un objetivo. Diagrama de Flujo Ventajas Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Permiten identificar los problemas y las oportunidades de mejora del proceso. Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas. Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso. 15-12-2011 8 Diagrama de Flujo - Elementos Marca el Inicio / Fin del DF Pasos, procesos o líneas de instrucción de programa Operaciones de entrada y salida Toma de decisiones y Ramificación Líneas de flujo 1.- Inicio 2.- Caminar 50 pasos adelante 3.- Girar 90º a la derecha 4.- Caminar 100 pasos adelante 5.- Girar 90º a la derecha 6.- Caminar 50 pasos adelante 7.- Retroceder 12 pasos 8.- Fin Diagrama de Flujo - Ejemplo 15-12-2011 9 1.- Inicio 2.- Caminar 50 pasos adelante 3.- Girar 90º a la derecha 4.- Caminar 100 pasos adelante 5.- Girar 90º a la derecha 6.- Caminar 50 pasos adelante 7.- Retroceder 12 pasos 8.- Fin Diagrama de Flujo - Ejemplo PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo una gata mecánica en buen estado, una rueda de reemplazo y una llave. Inicio PASO 1. Soltar los tornillos de la rueda pinchada con la llave PASO 2. Ubicar la gata mecánica en su sitio. PASO 3. Levantar con la gata hasta que la rueda pinchada pueda girar libremente. PASO 4. Quitar los tornillos y la rueda pinchada. PASO 5. Poner rueda de repuesto y los tornillos. PASO 6. Bajar el auto con la gata mecánica. PASO 7. Sacar la gata de su sitio. PASO 8. Apretar los tornillos con la llave inglesa. Fin 15-12-2011 10 Solución – Diagrama de Flujo Ejercicio Determinar los pasos para preparar una taza de té Elementos a incluir: Té Azúcar Agua fría Agua caliente Cuchara Termo para calentar agua Electricidad (Toma de corriente) 15-12-2011 11 DF - Condiciones Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples. DF – Condiciones - Simple Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tienen la siguiente forma: 15-12-2011 12 DF – Condiciones - Doble Las estructuras condicionales dobles permiten elegir entre dos opciones en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma: DF – Condiciones - Múltiple Estas son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente: 15-12-2011 13 DF – Condiciones - Ejemplo Problema: Encender una lámpara DF – Ejemplo Determinar los pasos para preparar una taza de té Elementos a incluir: Té y taza Azúcar Agua fría Agua caliente Cuchara Termo para calentar agua Electricidad (Toma de corriente) Debe contener a lo menos 3 condiciones 15-12-2011 14 Simboliza una salida de datos, esto es lo que se mostrará en pantalla. DF – Nomenclatura Simboliza una entrada de datos,esto es lo que se guardará en una variable (para este caso A). DF – Nomenclatura 15-12-2011 15 DF – Ejemplo Problema: Identificar, de 2 números ingresados, cual es el mayor. DF – Ejercicio Problema: Recibir 3 números por teclado y poder identificar cual de ellos es el mayor. Pistas: Se necesitan a lo menos de 3 condiciones en el DF. 15-12-2011 16 DF – Condiciones Lógicas En las condiciones, se pueden agregar «condicionantes múltiples», es decir, se puede preguntar por más de 1 variable a la vez. Esto se hace a través de los conectores lógicos «Y» y «O», cuya nomenclatura es la siguiente: && = „Y‟ lógico || = „O‟ lógico Además, para poder preguntar por hechos exactos se utiliza: == pregunta exacta DF – Condiciones Con este tipo de conectores podremos realizar consultas múltiples como por ejemplo: 1) El auto es color rojo o azul o verde? 2) Esa calle tiene acera y semáforos? 3) El papel es color blanco o gris, y mide mas 30 cm de largo? 4) Etc… 15-12-2011 17 DF – Condiciones Otro punto importante es la utilización de paréntesis, estos servirán para mencionar que operaciones se realizan en conjunto, por lo que define un cierto orden. Por ejemplo: 1 + 2 + 3 * 5 != (1 + 2 + 3) * 5 X == 1 || X == 2 && Y == 5 != (X == 1 || X == 2) && Y == 5 DF – Ejemplo Condiciones Un ejemplo que describe lo anterior es: 15-12-2011 18 DF – Ejercicio en clase Problema: Crear un algoritmo que ordene 3 números ingresados desde teclado Pistas: Se necesitan a lo menos de 5 condiciones en el DF. DF – Ejercicio en clase 15-12-2011 19 DF – Ciclos Concepto Un ciclo es la repetición de un conjunto de instrucciones. Dicho ciclo culmina cuando se cumple una condición de termino. El factor critico para que estos ciclos terminen es la condición de termino y el incremento, estos deben estar bien planteados o el ciclo nunca terminará. DF – Ciclos ¿ Cuándo de aplican? Se aplican cuando queremos ejecutar un conjunto de instrucciones varias veces de manera continua. 15-12-2011 20 DF – Ciclos Ventajas - Permiten la trabajos iterativos sin la necesidad de repetir X veces un contenido Desventajas - Si no son bien definidas, pueden resultar contraproducente ocuparlos (ej: no terminan, hacen mas tareas, etc.) DF – Ciclos Estructura 15-12-2011 21 DF – Ciclos Un punto importante es que estos ciclos pueden utilizar el camino tanto de si la condición resulta VERDADERA o cuando resulta FALSA (camino del Si o el No), esto dependerá únicamente de la condición que se haya planteado. Normalmente una lado tiene incrementos de una variable y el otro utilizaría decrementos. DF – Ciclos 15-12-2011 22 DF – Ejemplo Problema: Crear un algoritmo reciba 1 número por teclado y haga una cuenta regresiva con ese número. DF – Ejercicio en clase Problema: Crear un algoritmo que sume N elementos recibidos por teclado y muestre el resultado. Pista: Pedir la cantidad de números que va a ingresar. 15-12-2011 23 DF – Ejercicio Solución: DF – Ejercicio en clase Problema: Crear un algoritmo que muestre el número mayor de N elementos recibidos por teclado. 15-12-2011 24 DF – Ejercicio Solución: Inicio N,var,cont, mayor Ingrese cuantos números va a sumar N cont=1 cont<=N Ingrese el cont valor var cont=cont+1 V El resultado es mayor Fin cont==1 || var>mayor mayor=var V F Transformación de DF a Pseudocódigo 15-12-2011 25 DF a Pseudocódigo ¿Qué es el pseudocódigo? El pseudocódigo es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación. Este pseudocódigo es usado para hacer un bosquejo de una aplicación de manera rápida, o para aprender programación, se usa mas que todo en clases de lógica y algoritmia. DF a Pseudocódigo Las acciones más utilizadas son: Mostar ‘Hola a todos’ = Muestra „Hola a todos‟ en pantalla. Leer X = Lee lo que se haya ingresado y lo almacena en X. Si (condición) = Cumple lo que viene a continuación si se da la condición De lo contrario = En caso de que no se cumpla la condición anterior, realiza lo que viene a continuación. Fin Si = Indica donde termina la condición. Mientras (condición) = Repite una secuencia mientras se cumpla la condición. Fin Mientras = Indica donde termina el ciclo Mientras. 15-12-2011 26 DF a Pseudocódigo Inicio Mostrar „Ingrese un número‟ Leer X Si (X > 5) Mostrar „El numero ingresado es mayor a 5‟ De lo contrario Mostrar „El numero ingresado es menor o igual a 5‟ Fin Si Fin DF a Pseudocódigo Inicio Mostrar „Ingrese un número‟ Leer X Si (X > 5) Mostrar „El numero ingresado es mayor a 5‟ De lo contrario Mostrar „El numero ingresado es menor o igual a 5‟ Fin Si Fin 15-12-2011 27 DF a Pseudocódigo Inicio Mostrar „Ingrese un número‟ Leer X i = X Mientras (i > 0) Mostrar i i = i - 1 Fin Mientras Mostrar „Terminó la cuenta regresiva‟ Fin DF a Pseudocódigo Inicio Mostrar „Ingrese un número‟ Leer X i = X Mientras (i > 0) Mostrar i i = i - 1 Fin Mientras Mostrar „Terminó la cuenta regresiva‟ Fin 15-12-2011 28 DF a Pseudocódigo Ejercicio: Dibuje el DF del pseudocódigo anterior. Inicio Mostrar ‘Ingrese un número’ Leer X i = X Mientras (i > 0) Mostrar i i = i - 1 Fin Mientras Mostrar ‘Terminó la cuenta regresiva’ Fin DF a Pseudocódigo Problema: Crear un algoritmo que calcule la sumatoria desde 0 hasta el numero ingresado por teclado. Hacer el DF y luego pasarlo a Pseudocódigo. Ejemplo: Numero ingresado = 5 5 + 4 + 3 + 2 + 1 = 15.
Compartir