Algoritmos - Diagramas de flujo Programación http://progra.usm.cl UTFSM IWI-131 (UTFSM) Programación 1 / 14 Repaso Problema Entrada −→ Salida Algoritmo Secuencia de pasos para resolver un problema Programa Secuencia de instrucciones descritas en un lenguaje que puede ser entendido por el computador IWI-131 (UTFSM) Programación 2 / 14 Pasos a seguir para realizar un programa Figura: Proceso para resolver ejercicios IWI-131 (UTFSM) Programación 3 / 14 Diagrama de Flujos Diagrama de Flujo Un diagrama de flujo es una representación gráfica de un algoritmo. Los pasos son representados por varios tipos de bloques y el flujo de ejecución es indicado por flechas que conectan los bloques. IWI-131 (UTFSM) Programación 4 / 14 Notación de los diagramas de flujo Sı́mbolo Descripción Representa el inicio/fin de un algoritmo inicio x = 1 suma = 0 Representa un proceso, acá se realizan las operaciones, asignaciones y otros Representa una entrada o salida de datos Leer a Leer b ∆ < 0? IWI-131 (UTFSM) Representan condiciones en las que el algoritmo sigue uno de dos caminos. que están etiquetados con sı́ o no, dependiendo si la condición es verdadera o falsa. Programación 5 / 14 Estructuras que componen un problema Estructuras secuenciales Estructuras condicionales Estructuras repetitivas (ciclos) Figura: Tipos de estructuras IWI-131 (UTFSM) Programación 6 / 14 Ejemplo de estructura Secuencial inicio Leer r area = 3,14 ∗ r ∗ ∗2 peri = 2 ∗ 3,14 ∗ r Escribir “Es area es”, area, “y su perimetro es“,peri fin IWI-131 (UTFSM) Programación 7 / 14 Ejemplo de estructura Condicional inicio Leer N ¿N es divisible por 2? no sı́ Escribir “El número”,N,“es impar“ Escribir “El número”,N,“es par“ fin IWI-131 (UTFSM) Programación 8 / 14 Ejemplo de estructura Repetitiva inicio Escribir “Ingrese sus notas” c=0 suma = 0 ¿c < 5? sı́ Leer nota c=c+1 suma = suma + nota no promedio = suma / c Escribir “Su promedio de nota es”, promedio fin IWI-131 (UTFSM) Programación 9 / 14 Ejercicio 1 Ejercicio: Usando la notación de diagrama de flujo diseñe un algoritmo para determinar si un número natural n es mágico o no. Número Mágico Un número se dice mágico cuando la suma de sus divisores es igual al número. En la suma no se debe considerar al mismo número como un divisor. Ejemplo: 28 = 1+2+4+7+14 es un número mágico 32 != 1+2+4+8+16 no es un número mágico IWI-131 (UTFSM) Programación 10 / 14 Solución en diagrama de flujo inicio Leer n x = 1 suma = 0 no ¿x < n? sı́ Escribir (“No es mágico”) no ¿suma = n? sı́ fin Escribir (“Es mágico”) IWI-131 (UTFSM) Programación ¿x divide a n? no x = x+1 sı́ suma = suma + x 11 / 14 Ejercicio 2 Ejercicio:Realice un diagrama de flujo que realice lo siguiente: Solicite el ingreso de un número hasta que se ingrese el valor cero. Luego al número ingresado se le deben realizar las siguientes operaciones hasta convertirse en el valor 1. Si el número es par se debe dividir por 2, sino se debe multiplicar por 3 y sumarle 1. Una vez ingresado el valor cero, se debe mostrar la cantidad de números ingresados y la cantidad de pasos realizados para convertirlos en 1. IWI-131 (UTFSM) Programación 12 / 14 Solución en diagrama de flujo pasos = 0 num = 0 inicio Leer N Mostrar pasos, num si ¿N es igual a 0? no no si ¿N es par? no fin N = N/2 N = 3∗N+1 pasos = pasos + 1 ¿N es igual a 1? IWI-131 (UTFSM) Programación si num = num + 1 13 / 14 ¿Preguntas? IWI-131 (UTFSM) Programación 14 / 14