martes, 9 de junio de 2009




DIAGRAMA DE FLUJO

Definición
Es la representación gráfica de flujo de un
algoritmo o de secuencia rutinarias. Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de la operación.
4. Reglas Básicas
1. Todos los símbolos han de estar conectados
2. A un símbolo de proceso pueden llegarle varias líneas
3. A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos.
4. A un símbolo de inicio nunca le llegan líneas.
5. De un símbolo de fin no parte ninguna línea.
Variables y Operaciones
Variables:
Numéricas:
· Enteros
· Punto Flotante
Alfanuméricas:
· Carácter
· Cadena de caracteres
Operaciones:
· Asignación:
=
Comparación:
· ¿=?
Aritméticas:
· +, -, *, /, ** (potenciación)
Lógicas:
· >, <, =, ³, £, ¹ EJERCICIOS DE DIAGRAMAS DE FLUJO
1. Hacer el diagrama de flujo para sumar dos números leídos por teclado y escribir el resultado.
2. Modificar el anterior pero para sumar 100 números leídos por teclado.
3. Modificar el anterior para que permita sumar N números. El valor de N se debe leer previamente
por teclado.
4. Hacer un diagrama de flujo que permita escribir los 100 primeros pares.
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.
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.
7. Hacer un diagrama de flujo que simule un reloj.
8. Realizar el diagrama de flujo para resolver una ecuación de segundo grado, teniendo en
cuenta las soluciones complejas.
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.
10. Hacer un organigrama que lea N números, calcule y escriba la suma de los pares y el producto
de los impares.
11. Hacer un diagrama de flujo para calcular el máximo común divisor de dos números enteros
positivos N y M siguiendo el algoritmo de Euclídes, que es el siguiente:
1. Se divide N por M, sea R el resto.
2. Si R=0, el máximo común divisor es M y se acaba.
3. Se asigna a N el valor de M y a M el valor de R y volver al paso 1.
¿Por qué el método anterior acaba alguna vez? ¿por qué calcula el máximo común divisor de N y
M?
Diagramas de Flujo
12. Calcular los números primos hasta el N, según la Criba de Eratóstenes, que consiste en
poner todos los números del 2 al N en una tabla e ir tachando los múltiplos de cada número,
Detalladamente es como sigue:
1. Escribir los números del 2 al N.
2. Hacer I igual a 2
3. Mirar el número I de la tabla.
4. Si esta tachado ir al paso 6.
5. Si no lo esta tachar los múltiplos de I en la tabla.
6. Incrementar I.
7. Si I es menor o igual que N ir al paso 3.
8. En otro caso finalizar.
El punto 5 también requiere un algoritmo, que es el siguiente:
5.1 Hacer J igual al doble de I (primer múltiplo de I).
5.2 Si J es mayor que N finalizar (el apartado 5).
5.3 En otro caso tachar el elemento J.
5.4 Incrementar J en I (para pasar al siguiente múltiplo de I).
5.5 Volver a 5.2.
Para realizarlo se simulará la tabla con números tachados mediante un array P, y el
Elemento I estará sin tachar cuando P(I) sea 1 y tachado cuando sea 0.
13. Hacer el diagrama de flujo para calcular el factorial de N (N!=1·2·3·...·N).
14. Hacer un diagrama de flujo para sumar los N primeros términos de una progresión geométrica
De primer término A y razón R (dados por teclado). Se debe realizar la suma sin
Emplear la fórmula que existe para ello.
15. Hacer un diagrama de flujo para convertir un número decimal N dado por teclado a binario.
16. Hacer un diagrama de flujo para calcular AB, siendo B un entero, nótese que B puede ser 0
o negativo. No se pueden emplear logaritmos.
17. Hacer un diagrama de flujo para calcular el máximo de N números leídos por teclado, se
Debe realizar de dos formas, una almacenando previamente los números dados por teclado
En un array y la otra calculando el máximo directamente según se leen los números del teclado.
18. Hacer un diagrama de flujo para ordenar N números leídos por teclado y almacenados en
un array A. El algoritmo es el siguiente:
1. Se lee N y después los N números al array A.
2. Se busca el máximo de los elementos del 1 al N y su índice J.
3. Se intercambian los elementos A(J) y A(N).
4. Se decrementa N en 1.
5. Se compara N con 1, si es mayor se vuelve a 2.
6. Si es menor o igual se termina.
Apuntes de Informática
19. Hacer el organigrama de un programa que dado un array A ordenado de N elementos,
Encuentre la posición de uno B leído por teclado. El algoritmo a emplear es el siguiente:
1. Se fijan los extremos de la porción a buscar: I=1, J=N.
2. Se calcula el índice del elemento medio K=(I+J)/2.
3. Se compara B con el elemento medio A(K).
4. Si es igual se escribe K y se termina.
5. Si es mayor se cambian los extremos a I=K+1, J=N y se vuelve a 2.
6. Si es menor se cambian los extremos a I=1, J=K-1 y se vuelve a 2.
Pensar después que habrá que modificar para que busque también valores de B que no estén en el
Array A, si se da ese caso y no lo encuentra debe poner un mensaje diciendo que no esta.
20. Hacer un organigrama de un programa que adivine el número entre 1 y 1000 pensado por
Un humano. El programa debe ir diciendo números y el humano responderá con los símbolos
'<', '>' o '=', según el número pensado sea menor, mayor o igual que el dicho por el
Ordenador. Cuando lo adivine deberá poner un mensaje especificando cuantas preguntas
Ha necesitado y finalizar. No debe realizar más de 10 preguntas y debe detectar si el humano
Le engaña diciéndole cosas imposibles, por ejemplo es mayor que 4 y menor que 5.
Si en lugar de estar el número de partida entre 1 y 1000 estuviera entre 1 y 1000000,
¿Cuantas preguntas serían necesarias?
21. Realizar el organigrama de un programa que permita calcular ceros de funciones empleando
El Teorema de Bolzano (si una función continua, definida en un intervalo cerrado
[a,b], toma valores de signos opuestos en los extremos, existe un punto c en [a,b] tal que
f(c)=0). Los datos de partida son los extremos del intervalo a y b y E que nos dice el máximo
Error tolerado en el resultado. El programa deberá poner un mensaje de error si la
Función tiene igual signo en los extremos del intervalo, en otro caso debe escribir un valor
C, que diste del c del Teorema en menos de E.
22. Dados dos números enteros positivos N y D, se dice que D es un divisor de N si el resto
de dividir N entre D es 0. Se dice que un número N es perfecto si la suma de sus divisores
(excluido el propio N) es N. Por ejemplo 28 es perfecto, pues sus divisores (excluido el
28) son: 1, 2, 4, 7 y 14 y su suma es 1+2+4+7+14=28. Hacer un organigrama que dado un
Número N nos diga si es o no perfecto.
23. Un año es bisiesto si es múltiplo de 4, exceptuando los múltiplos de 100, que sólo son
Bisiestos cuando son múltiplos además de 400, por ejemplo el año 1900 no fue bisiesto,
Pero el año 2000 si lo será. Hacer un organigrama que dado un año A nos diga si es o no
Bisiesto.
24. Hacer un organigrama que dados un día D, un mes M y un año A, calcule cual es el día
Siguiente. Se debe tener en cuenta que en los años bisiestos Febrero tiene 29 días y en los
No bisiestos 28.
25. El Miércoles de Ceniza es 46 días antes que el Domingo de Resurrección. Hacer un organigrama
Para que dados el día D, el mes M y el año A del Domingo de Resurrección calcule
la fecha del Miércoles de Ceniza en ese año. Se debe tener en cuenta si el año es o no
Bisiesto.
Diagramas de Flujo
26. Hacer un organigrama que lea un número N y obtenga las ternas pitagóricas (A, B, C) en
Las que A, B y C son todos enteros positivos y menores que N. Para que una terna (A, B,
C) sea pitagórica debe cumplir que A2+B2=C2.
27. Una empresa paga a sus 100 operarios semanalmente, de acuerdo con el número de horas
Trabajadas, a razón de P pesetas por hora y de 1.5·P pesetas por cada hora extra. Las horas
Extras son las que exceden de 40h. Hacer el organigrama que dado el número de horas trabajadas
y el valor de P calcule el salario que le corresponde.
28. Disponemos de una máquina que puede dar vueltas con 5 tipos de monedas distintas: 100,
50, 25, 5 y 1 pts. Realizar el organigrama de un programa que dados el precio del artículo
y la cantidad entregada por el consumidor nos indique la vuelta a entregar empleando el
Menor número posible de monedas.
29. Plantear el organigrama de un programa que sea capaz de calcular el impuesto sobre la
Renta el número de veces que sea necesario y lo escriba por impresora. El impuesto de la
Renta es el 15% del salario anual de cada persona, al que previamente se debe realizar una
Deducción en función del número de hijos, que es del 0% si tiene 0, del 5% si tiene 1 o 2 y
Del 15% si tiene más de 2.
30. Realizar un organigrama para leer por teclado las notas de N alumnos que están matriculados
En M asignaturas, si un alumno no esta matriculado de una asignatura o no se presenta
Al examen se debe introducir como nota -1. El programa debe calcular y escribir el
número de alumnos presentados a cada asignatura, la nota media, el número de suspensos,
el número de aprobados, el número de notables y el número de sobresalientes.
31. Hacer el organigrama para resolver el siguiente problema: Un hombre, un lobo, una cabra
y un repollo deben pasar un río, para ello se dispone de una barca con capacidad para dos
ocupantes, el hombre (único que sabe remar) y otro. Si en una orilla se quedan solos el lobo
y la cabra, el lobo se come a la cabra. Si en una orilla se quedan solos la cabra y el repollo,
la cabra se come el repollo.
Apuntes de Informática
Características que debe cumplir un diagrama de flujo
En los diagramas de flujo se presuponen los siguientes aspectos:
Existe siempre un camino que permite llegar a una solución (finalización del algoritmo).
Existe un único inicio del proceso.
Existe un único punto de fin para el proceso de flujo (salvo del rombo que indica una comparación con dos caminos posibles).
Desarrollo del Diagrama de Flujo
Las siguientes son acciones previas a la realización del diagrama de flujo:
Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.
Definir qué se espera obtener del diagrama de flujo.
Identificar quién lo empleará y cómo.
Establecer el nivel de detalle requerido.
Determinar los límites del proceso a describir. Los pasos a seguir para construir el diagrama de flujo son :
Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
Si el nivel de detalle definido incluye actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.

Símbolos utilizados
Los símbolos que se utilizan para diseño se someten a una normalización, es decir, se hicieron símbolos casi universales, ya que, en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocía sus símbolos, los podía interpretar. La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a las normas preestablecidas universalmente para dichos símbolos o datos.



Reglas Básicas
1. Todos los símbolos han de estar conectados
2. A un símbolo de proceso pueden llegarle varias líneas
3. A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos.
4. A un símbolo de inicio nunca le llegan líneas.
5. De un símbolo de fin no parte ninguna línea.
Variables y Operaciones
Variables:

Numéricas:
· Enteros
· Punto Flotante
Alfanuméricas:
· Carácter
· Cadena de caracteres
Operaciones:
· Asignación:
=
Comparación:
· ¿=?
Aritméticas:
· +, -, *, /, ** (potenciación)
Lógicas:>, <, =, ³, £,

EJERCICIOS DE DIAGRAMAS DE FLUJO
1
. Hacer el diagrama de flujo para sumar dos números leídos por teclado y escribir el resultado.
2. Modificar el anterior pero para sumar 100 números leídos por teclado.
3. Modificar el anterior para que permita sumar N números. El valor de N se debe leer previamente
por teclado.
. 4Hacer un diagrama de flujo que permita escribir los 100 primeros pares.
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.
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.
7. Hacer un diagrama de flujo que simule un reloj.
8. Realizar el diagrama de flujo para resolver una ecuación de segundo grado, teniendo en
cuenta las soluciones complejas.
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.
10. Hacer un organigrama que lea N números, calcule y escriba la suma de los pares y el producto
de los impares.
11. Hacer un diagrama de flujo para calcular el máximo común divisor de dos números enteros
positivos N y M siguiendo el algoritmo de Euclídes, que es el siguiente:
1. Se divide N por M, sea R el resto.
2. Si R=0, el máximo común divisor es M y se acaba.
3. Se asigna a N el valor de M y a M el valor de R y volver al paso 1.
¿Por qué el método anterior acaba alguna vez? ¿por qué calcula el máximo común divisor de N y
M?

Diagramas de Flujo
12. Calcular los números primos hasta el N, según la Criba de Eratóstenes, que consiste en
poner todos los números del 2 al N en una tabla e ir tachando los múltiplos de cada número,
Detalladamente es como sigue:
1. Escribir los números del 2 al N.
2. Hacer I igual a 2
3. Mirar el número I de la tabla.
4. Si esta tachado ir al paso 6.
5. Si no lo esta tachar los múltiplos de I en la tabla.
6. Incrementar I.
7. Si I es menor o igual que N ir al paso 3.
8. En otro caso finalizar.
El punto 5 también requiere un algoritmo, que es el siguiente:
5.1 Hacer J igual al doble de I (primer múltiplo de I).
5.2 Si J es mayor que N finalizar (el apartado 5).
5.3 En otro caso tachar el elemento J.
5.4 Incrementar J en I (para pasar al siguiente múltiplo de I).
5.5 Volver a 5.2.
Para realizarlo se simulará la tabla con números tachados mediante un array P, y el
Elemento I estará sin tachar cuando P(I) sea 1 y tachado cuando sea 0.
13. Hacer el diagrama de flujo para calcular el factorial de N (N!=1·2·3·...·N).
14. Hacer un diagrama de flujo para sumar los N primeros términos de una progresión geométrica
De primer término A y razón R (dados por teclado). Se debe realizar la suma sin
Emplear la fórmula que existe para ello.
15. Hacer un diagrama de flujo para convertir un número decimal N dado por teclado a binario.
16. Hacer un diagrama de flujo para calcular AB, siendo B un entero, nótese que B puede ser 0
o negativo. No se pueden emplear logaritmos.
17. Hacer un diagrama de flujo para calcular el máximo de N números leídos por teclado, se
Debe realizar de dos formas, una almacenando previamente los números dados por teclado
En un array y la otra calculando el máximo directamente según se leen los números del teclado.
18. Hacer un diagrama de flujo para ordenar N números leídos por teclado y almacenados en
un array A. El algoritmo es el siguiente:
1. Se lee N y después los N números al array A.
2. Se busca el máximo de los elementos del 1 al N y su índice J.
3. Se intercambian los elementos A(J) y A(N).
4. Se decrementa N en 1.
5. Se compara N con 1, si es mayor se vuelve a 2.
6. Si es menor o igual se termina.
Apuntes de Informática
19. Hacer el organigrama de un programa que dado un array A ordenado de N elementos,
Encuentre la posición de uno B leído por teclado. El algoritmo a emplear es el siguiente:
1. Se fijan los extremos de la porción a buscar: I=1, J=N.
2. Se calcula el índice del elemento medio K=(I+J)/2.
3. Se compara B con el elemento medio A(K).
4. Si es igual se escribe K y se termina.
5. Si es mayor se cambian los extremos a I=K+1, J=N y se vuelve a 2.
6. Si es menor se cambian los extremos a I=1, J=K-1 y se vuelve a 2.
Pensar después que habrá que modificar para que busque también valores de B que no estén en el
Array A, si se da ese caso y no lo encuentra debe poner un mensaje diciendo que no esta.
20. Hacer un organigrama de un programa que adivine el número entre 1 y 1000 pensado por
Un humano. El programa debe ir diciendo números y el humano responderá con los símbolos
'<', '>' o '=', según el número pensado sea menor, mayor o igual que el dicho por el
Ordenador. Cuando lo adivine deberá poner un mensaje especificando cuantas preguntas
Ha necesitado y finalizar. No debe realizar más de 10 preguntas y debe detectar si el humano
Le engaña diciéndole cosas imposibles, por ejemplo es mayor que 4 y menor que 5.
Si en lugar de estar el número de partida entre 1 y 1000 estuviera entre 1 y 1000000,
¿Cuantas preguntas serían necesarias?
21. Realizar el organigrama de un programa que permita calcular ceros de funciones empleando
El Teorema de Bolzano (si una función continua, definida en un intervalo cerrado
[a,b], toma valores de signos opuestos en los extremos, existe un punto c en [a,b] tal que
f(c)=0). Los datos de partida son los extremos del intervalo a y b y E que nos dice el máximo
Error tolerado en el resultado. El programa deberá poner un mensaje de error si la
Función tiene igual signo en los extremos del intervalo, en otro caso debe escribir un valor
C, que diste del c del Teorema en menos de E.
22. Dados dos números enteros positivos N y D, se dice que D es un divisor de N si el resto
de dividir N entre D es 0. Se dice que un número N es perfecto si la suma de sus divisores
(excluido el propio N) es N. Por ejemplo 28 es perfecto, pues sus divisores (excluido el
28) son: 1, 2, 4, 7 y 14 y su suma es 1+2+4+7+14=28. Hacer un organigrama que dado un
Número N nos diga si es o no perfecto.
23. Un año es bisiesto si es múltiplo de 4, exceptuando los múltiplos de 100, que sólo son
Bisiestos cuando son múltiplos además de 400, por ejemplo el año 1900 no fue bisiesto,
Pero el año 2000 si lo será. Hacer un organigrama que dado un año A nos diga si es o no
Bisiesto.
24. Hacer un organigrama que dados un día D, un mes M y un año A, calcule cual es el día
Siguiente. Se debe tener en cuenta que en los años bisiestos Febrero tiene 29 días y en los
No bisiestos 28.
25. El Miércoles de Ceniza es 46 días antes que el Domingo de Resurrección. Hacer un organigrama
Para que dados el día D, el mes M y el año A del Domingo de Resurrección calcule
la fecha del Miércoles de Ceniza en ese año. Se debe tener en cuenta si el año es o no
Bisiesto.
Diagramas de Flujo
26. Hacer un organigrama que lea un número N y obtenga las ternas pitagóricas (A, B, C) en
Las que A, B y C son todos enteros positivos y menores que N. Para que una terna (A, B,
C) sea pitagórica debe cumplir que A2+B2=C2.
27. Una empresa paga a sus 100 operarios semanalmente, de acuerdo con el número de horas
Trabajadas, a razón de P pesetas por hora y de 1.5·P pesetas por cada hora extra. Las horas