DIAGRAMAS DE FLUJO Símbolos en los Organigramas Comienzo y Fin Proceso general Toma de decisiones Entrada de datos por teclado Salida de datos por pantalla Salida de datos por impresora Almacenamiento en disco magnético Conector fuera de página Líneas de conexión y dirección del flujo Reglas Básicas 1. 2. 3. 4. 5. Todos los símbolos han de estar conectados A un símbolo de proceso pueden llegarle varias líneas A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos. A un símbolo de inicio nunca le llegan líneas. De un símbolo de fin no parte ninguna línea. Organigrama Genérico Inicio Entrada de datos Proceso Salida de datos Fin EJERCICIOS DE DIAGRAMAS DE FLUJO 1. Hacer el diagrama de flujo para sumar dos números leídos por teclado y escribir el resultado. Inicio Leer A Leemos el primer número y lo dejamos en A Leer B Leemos el segundo número y lo dejamos en B C=A+B Sumamos A y B, y dejamos el resultado en C Escribir C Escribimos C Fin 2. Modificar el anterior pero para sumar 100 números leídos por teclado. Inicio (1) I=100 (2) S=0 (3) Leer A (4) S=S+A (5) I=I-1 NO (6) I=0 SI (7) Escribir S Fin - En I contamos los números que quedan por sumar. En S calculamos la suma. A se emplea para leer temporalmente cada número. Vamos a ver paso a paso como funciona. Supongamos que los datos son: 7, -1, 8, 5, ... (1) (2) (3) (4) (5) (6) (3) (4) (5) (6) I=100 (números a sumar) S=0 (suma, inicialmente 0) Leer A. El primero es 7, luego A=7 S=S+A=0+7=7 I=I-1=100-1=99 ¿I=0? �NO Leer A, ahora A=-1 S=S+A=7-1=6 I=I-1=99-1=98 ¿I=0? �NO Cuando I=0 habremos sumado los 100 números y pasaremos a: (7) Escribir S que será la suma 3. Modificar el anterior para que permita sumar N números. El valor de N se debe leer previamente por teclado. Inicio Leer N S=0 Leer A S=S+A N=N-1 NO N=0 SI Escribir S Fin 4. Hacer un diagrama de flujo que permita escribir los 100 primeros pares. Inicio I=100 P=0 Escribir P P=P+2 I=I-1 NO I=0 SI Fin P: Variable para contener el siguiente par que se debe escribir. I: Contador de pares que quedan por escribir. El proceso es similar al anterior. Necesitamos un bucle para contar 100 veces y dentro de él escribimos el par e incrementamos para obtener el siguiente. 5. Hacer el diagrama de flujo para sumar los N primeros impares. Realizar después uno que haga lo mismo con los pares y otro con los múltiplos de 3. Inicio Leer N I=1 S=0 S=S+I I=I+2 N=N-1 NO N=0 SI Escribir S Fin 6. La sucesión de Fibonacci se define de la siguiente forma: a1=1, a2 =1 y an =an-1+an-2 para n>2, es decir, los dos primeros son 1 y el resto cada uno es la suma de los dos anteriores, los primeros son: 1, 1, 2, 3, 5, 8, 13, 21, ... Hacer un diagrama de flujo para calcular el Nésimo término de la sucesión. Inicio (1) Leer N SI NO N<=2 (2) SI (11) Escribir 1 Escribir B A=1 (3) B=1 (4) C=A+B (5) A=B (6) B=C (7) N=N-1 (8) (9) N=2 NO (10) Fin Dado N, el proceso es el siguiente: - si Ns2 se escribe directamente 1 y se acaba. en otro caso se guardan en A y B los 2 últimos (al principio 1) y se suman, pasando después a llamar A al antiguo B, y B a la suma. Se decrementa N y cuando valga 2, en B tenemos lo que queremos. Vamos a ver como funciona paso a paso. Para ello vamos a numerar cada uno de los pasos y ver como se van realizando. (1) (2) (3) (4) (5) (6) (7) (8) (9) (5) Leemos N, supongamos N=4. ¿ Ns2? �NO A=1 B=1 C=A+B=1+1=2 A=B=1 B=C=2 N=N-1=4-1=3 ¿N=2? �NO C=A+B=1+2=3 (6) (7) (8) (9) (10) A=B=2 B=C=3 N=N-1=3-1=2 ¿N=2? �SI Escribimos B, es decir 3. 7. Hacer un diagrama de flujo que simule un reloj. Inicio H=0 M=0 S=0 Escribir H:M:S S=S+1 NO S=60 SI S=0 M=M+1 NO M=60 SI M=0 H=H+1 NO H=24 SI H=0 Esperar 1 seg. 9. Hacer un organigrama que calcule el total de una factura, partiendo de una lista de parejas importe, iva. La lista finaliza cuando el importe sea 0. El iva puede ser el 4%, el 7% o el 16%, en cualquier otro caso se rechazan importe e iva y se deben introducir de nuevo. Finalmente hay que realizar un descuento, en función de la suma de los importes, dicho descuento es del 0% si es menor que 1000, es del 5% si es mayor o igual que 1000 y menor que 10000 y es de un 10% si es mayor o igual que 10000. El descuento se debe aplicar a la suma de los importes y a la suma de los ivas. Para acabar se debe imprimir el importe y el iva resultantes (total menos descuento) y la suma de ambos. Inicio SIMP=0 SIVA=0 leer IMP,IVA IMP=0 SI SI NO SIMP<1000 NO SI IVA=4 SI D=0 SIMP<10000 NO NO D=5 SI IVA=7 D=10 NO IVA=16 SI SIMP=SIMP- SIMP·D 100 SIVA=SIVA- SIVA·D 100 NO Escribir IVA incorrecto SIMP=SIMP+IMP SIVA=SIVA+ IMP·IVA 100 TOT=SIMP+SIVA Escribir SIMP,SIVA,TOT Fin 10. Hacer un organigrama que lea N números, calcule y escriba la suma de los pares y el producto de los impares. Inicio Leer N SP=0 PI=1 Leer A SI NO SP=SP+A A MOD 2=0 PI=PI·A N=N-1 NO N=0 SI Escribir SP,PI Fin 11. 13. Inicio Inicio Leer N,M Leer N R=N MOD M P=1 R=0 NO SI N>1 SI N=M P=P·N M=R N=N-1 Escribir M Escribir P Fin Fin NO 12. Inicio Leer N I=2 P(I)=1 I=I+1 SI I<=N NO I=2 NO P(I)=1 SI Escribir I J=2·I J<=N NO SI I=I+1 P(J)=0 J=J+I I<=N SI NO Fin 14. 15. Inicio Inicio Leer A Leer N Leer R I=1 R(I)=N MOD 2 Leer N S=0 N=N DIV 2 S=S+A I=I+1 A=A·R N=N-1 SI N>0 NO I=I-1 SI N>0 NO Escribir S I>0 SI Escribir R(I) Fin NO Fin 16. 18. Inicio Inicio Leer N Leer A I=1 Leer B Leer A(I) I=I+1 P=1 SI NO NO I<=N SI B=0 NO M=A(1) SI B>0 J=1 A=1/A I=2 B=-B A(I)>M SI NO P=P·A J=I B=B-1 NO I=I+1 SI I<=N B=0 NO A(J)=A(N) SI A(N)=M Escribir P N=N-1 Fin SI N>1 NO Fin 19. Inicio Leer B I=1 J=N K=(I+J) DIV 2 SI B=A(K) NO SI I=K+1 Escribir K Fin B>A(K) NO J=K-1 17. Calcular el máximo de N números leídos desde teclado. Inicio (5) Leer N (1) Leer M (2) I=N-1 (3) Leer A (4) A>M M=A NO NO SI I=I-1 (7) I=0 (8) (6) SI Escribir M (9) Fin Vamos a almacenar en M el máximo de los números que se hayan leído, el primero va directamente a M y los N-1 restantes los leemos en A, comparamos con M y si son mayores cambiamos el máximo temporal. Al final se escribe el resultado. Vamos a ejecutarlo paso a paso para N=4, empleando como datos: 2, 3, -1, 7. (1) (2) (3) (4) (5) (6) (7) (8) (4) Leer N �N=4 Leer M �M=2 I=N-1=3 Leer A � A=3 ¿A>M? �SI M=A=3 I=I-1=3-I=2 ¿I=0? �NO Leer A � A=-1 (5) (7) (8) (4) (5) (6) (7) (8) (9) ¿A>M? �NO I=I-1=2-1=1 ¿I=0? �NO Leer A, A=7 ¿A>M? �SI M=A=7 I=I-1=1-1=0 ¿I=0? �SI Escribir M, es decir 7 22. Inicio Leer N S=0 D=1 SI N MOD D=0 NO S=S+D D=D+1 D<N SI NO NO S=N Escribir SI Escribir N no es perfecto N es perfecto Fin 23. Inicio Leer A SI NO A MOD 4=0 NO SI A MOD 100=0 SI A MOD 400=0 NO Escribir Escribir A es bisiesto A no es bisiesto Fin 24. Inicio Leer B DIAS (1)=31 DIAS (2)=28 DIAS (3)=31 . DIAS (12)=31 SI A es bisiesto DIAS (2) = 29 D=D+1 SI D=1 D>DIAS (M) NO M=M+1 SI M>12 M=1 A=A+1 Escribir D,M,A Fin NO 26. 27. Inicio Inicio Leer N Leer P A=1 Leer H B=1 C=1 E=0 A·A+B·B=C·C SI NO C=C+1 SI C<N NO B=B+1 SI H=40 B<N NO S=P·H+1,5·P·E A=A+1 SI A<N Escribir S NO Fin Fin 28. 29. Inicio Inicio MON(1)=1 Leer SAL MON(2)=5 Leer H MON(3)=25 SI MON(4)=50 SI D=0 MON(5)=100 NO H=0 H<3 D=5 Leer PRE Leer D=15 ENT I=5 SI DIF>MON(I) D·SAL 100 SAL=SAL- DIF=ENT-PRE IMP= SAL·15 100 NO Escribir IMP CAM(I)=DIF DIV MON(I) CAM(I)=0 DIF=DIF MOD MON(I) Escribir CAM(I) de MON(I) I=I-1 SI I>0 NO Fin Fin NO