Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Esta representacin
esquemtica puede
dar
la
Descripcin general
Los diagramas de flujo se utilizan en el diseo y documentacin de procesos complejos o
programas. Como otros tipos de diagrama,
ayudan a visualizar lo que est pasando y
de esa manera ayudan al espectador a
entender un proceso, y tal vez tambin ha
encontrar defectos, cuellos de botella, y
otros
problemas.
Hay
muchos
tipos
A un paso de procesamiento,
generalmente se le llama
actividad, y se denota como una
caja rectangular.
Los Diagramas de flujo representan ciertos aspectos de los procesos y por lo general se
complementan con otros tipos de diagrama. Por ejemplo, Kaoru Ishikawa defini el
diagrama de flujo como una de las siete herramientas bsicas de control de calidad, al lado
del histograma, diagrama de Pareto, hoja de verificacin, grfico de control, diagrama de
causa y efecto, y el diagrama de dispersin. De manera similar, en UML, un lenguaje
estndar de modelado que se utiliza en el desarrollo de software, el diagrama de actividad
(que es un tipo de diagrama de flujo) es slo uno de los muchos tipos de diagramas
diferentes.
Historia
El primer mtodo estructurado para documentar el flujo de un proceso, el "diagrama de
flujo del proceso", fue presentado por Frank Gilbreth a los miembros de la Sociedad
Americana de Ingenieros Mecnicos (ASME) en 1921 en la exposicin Process Charts First Steps in Finding the One Best Way.
Las Herramientas de Gilbreth rpidamente encontron su aplicacin en los programas de
ingeniera industrial. A principios de 1930, un ingeniero industrial, Allan H. Mogensen
comenz la formacin de personas de negocios en el uso de algunas de las herramientas
de la ingeniera industrial en sus "Work Simplification Conferences en Lake Placid, New
York.
Douglas Hartree explica que Herman Goldstine y John von Neumann elabor un diagrama
de flujo (originalmente, el diagrama) para planificar los programas de ordenador. Su
versin contempornea est respaldado por los ingenieros de IBM y por colecciones
personales de Goldstine. Los diagramas de flujo de programacin originales de Goldstine y
von Neumann se puede ver en su informe no publicado, "Planificacin y codificacin de
problemas para un instrumento de computacin electrnica, Parte II, Volumen 1" (1947),
que se reproduce en las obras completas de von Neumann.
Los diagramas de flujo sola ser un medio popular para describir algoritmos
computacionales y todava se utilizan para este fin. Tcnicas modernas tales
comodiagramas de actividad de UML puede ser considerado como extensiones del
diagrama de flujo. En la dcada de 1970 la popularidad de los diagramas de flujo como
Flechas
Muestran el "control de flujo". Una flecha que viene de un smbolo y termina en otro
smbolo indica que el control pasa al smbolo que la flecha apunta. La lnea de la flecha
puede ser continua o discontinua. El significado de la flecha con lnea de trazos puede
diferir de un diagrama de flujo a otro y puede ser definido en la leyenda.
Subrutinas
Son representados como rectngulos con doble borde vertical, los cuales se utilizan para
mostrar los pasos de procesamiento complejos que pueden ser detallados en un diagrama
de flujo separado.
Entrada / Salida
Representado como un paralelogramo. Ejemplos: Obtener X por parte del usuario, mostrar
en pantalla X.
Condicional o decisin
Representado como un diamante (rombo) mostrando donde una decisin se debe tomar,
comnmente se realiza una pregunta que debe tener un tipo de respuesta S/No. El
smbolo condicional tiene la peculiaridad de que tiene dos flechas que salen de l,
correspondiente al S o Verdadero, y No o falso. (Las flechas siempre deben ser
etiquetadas.) Se pueden utilizar ms de dos flechas, pero esto es normalmente un claro
indicador de que una decisin compleja est siendo tomada, en cuyo caso es posible que
tenga que ser descompuesto an ms.
Smbolo de concurrencia
Representada por una doble lnea transversal con cualquier nmero de flechas de entrada
y salida. Estos smbolos se utilizan cada vez que dos o ms flujos de control deben
funcionar simultneamente. Los flujos de salida se activan simultneamente cuando todos
los flujos de entrada han alcanzado el smbolo de concurrencia.
Es importante recordar que debe mantener estas conexiones lgicas en orden. Todos los
procesos deben fluir de arriba hacia abajo y de izquierda a derecha.
Observe que cada tipo de diagrama de flujo que se centra en algn tipo de control, en
lugar de en el propio flujo particular.
Software
Cualquier programa de dibujo puede ser usado para crear diagramas de flujo, pero stos
no tienen un modelo de datos subyacente para compartir datos con bases de datos u otros
programas, como los sistemas de gestin de proyectos y hojas de clculo.
Algunas herramientas ofrecen un apoyo especial para dibujar diagramas de flujo. Muchos
paquetes de software existentes que pueden crear diagramas de flujo de forma
automtica, ya sea directamente desde el cdigo fuente, o de un lenguaje de descripcin
de diagrama de flujo.
Problema
Ingrese un nmero y convierta a binario.
Solucin
Este algoritmo recibe un nmero decimal y lo convierte a nmero binario.
Ejemplo
Entrada: 10
Salida: 1010
Se coloca un smbolo de Lectura para el ingreso de nmeros por parte del usuario, el cual
captura dicho valor en la variable Num. Luego aplicamos la funcin TRUNC para recibir
solo nmeros enteros, luego inicializamos la variable cad con una cadena vaca.
Luego realizamos una comparacin para verificar si el nmero es mayor a cero.
Si es Falso (No)
Verificamos si Num es cero
Si es Verdadero(Si), muestra como resultado 0
Si es Falso (No), entonces muestra el mensaje: numero ingresado es negativo
Si es Verdadero (Si)
Creamos un ciclo While con la condicin de que Num sea mayor a cero(Num>0)
Verificamos el Valor de Num MOD 2 = 0
Si es Verdadero(Si)
Entonces concatenaremos en la variable cad el carcter 0
Si es Falso(No)
Entonces concatenaremos en la variable cad el carcter 1
Una vez terminado la comparacin actualizamos el valor de Num
Num=TRUNC(Num/2)
Regresamos de nuevo a la condicin del ciclo while esto lo repetiremos hasta que el valor
de Num sea mayor a cero
Terminado el ciclo mostraremos la cadena de salida
Ejemplo
Entrada Num = 10
10 >0
10 MOD 2 =0
cad=0
Num=TRUNC(10/2)=5
5>0
5 MOD 2 = 1
cad=1
Num=TRUNC(5/2)=2
2 >0
2 MOD 2 =0
cad=0
Num=TRUNC(2/2)=1
1>0
1 MOD 2 = 1
cad=1
Num=TRUNC(1/2)=0
0 >0 (No)
Resultado = 1010
Problema
Hacer un programa o algoritmo que si se ingresan 5 notas de un alumno, publicar las 2
peores notas.
Solucin
Salida: 10, 8
resultado. Finaliza
Entrada: 3 4 5
Se solicita al usuario ingrese tres longitudes de lados, estos valores se capturan en las
variables a, b y c, luego
Se compara si cumple con la propiedad de la desigualdad triangular ((abs(a-c) < b) AND
(b < (a+c)))
Si es Verdadero (Si)
Se muestra si forma un triangulo
Si es Falso (No)
Se muestra que no forma un triangulo
Finaliza.
Problema
Hacer un programa o algoritmo que calcule las 30 primeras potencias de 3 y la suma de
ellos.
Solucin
Inicializamos la variable Sum en cero, luego se crea un ciclo For para generar las 30
potencias de 3, luego se muestra cada una de las potencias de tres, se actualiza el valor
de Sum con (Sum + ( 3^i)) adicionndole el valor de cada potencia para obtener la
sumatoria, finalmente se muestra la sumatoria y Finaliza.
10
Problema
Desarrolle un algoritmo que convierta de grados Celsius a grados Fahrenheit y de
grados Fahrenheit a grados Celsius.
Solucin
Solicitamos al usuario ingrese el tipo de conversin que desea realizar, se captura el valor
en la variable n.
Se comprueba si el valor de n es igual 1 (n =1)
Si es Verdadero (Si)
Se solicita ingresar un valor en grados Celsius, la cual se captura en la variable c para
luego realizar la
conversin con la formula c*9/5 + 32.
Retornamos el valor en grados Fahrenheit.
Si es Falso (No)
Se solicita ingresar un valor en grados Fahrenheit, la cual se captura en la variable f
para luego realizar la
conversin con la formula (f-32)*5/9.
Retornamos el valor en grados Celsius.
11
Problema
Hacer un programa o algoritmo que dado el monto de una compra calcular el descuento
considerado:
Descuento es 20% si el monto es mayor a 100 soles.
Descuento es 10% si el monto es mayor a 50 soles y menor o igual a 100 soles.
No hay descuento si el monto es menor o igual a 50 soles.
Solucin
Entrada: 100
Salida: 90
12
Problema
Realizar un algoritmo que permita convertir un nmero arbigo comprendido entre 1000 y
2000 a nmeros romanos.
Solucin
Entrada: 1597
Salida: MDXCVII
13
14
15
16
ndices
de los arreglos, luego se muestra el nmero ingresado en romanos.
Si es Falso (No)
Se muestra un mensaje que esta fuera del rango.
Entrada: 3893s
Salida: 1h 4m 53s
Creamos Un smbolo de entrada para recibir el nmero de segundos que deseamos sean
convertidos a horas minutos y segundos el cual ser capturado en la variable num.
Para calcular las horas utilizamos trunc(num/ 3600) donde la funcin trunc retorna solo la
parte entera y obvia la parte decimal, no la redondea(Funcion round() redondea un
numero).
Para calcular los minutos: trunc((num - hor*3600)/60)
Para calcular los segundos: num - (hor*3600 + min*60)
Luego retornamos el resultado
17
Problema
Hacer un programa o algoritmo que calcule el rea de un cilindro.
Solucin
Entrada: 5 7
Salida: 376.98192
Se solicita al usuario ingresar el radio y la altura del cilindro, se captura el valor en las
variables r y h, luego calculamos el rea usando 2*3.141516*r*(r + h), se muestra el
rea del cilindro. Finaliza.
18
Problema
Hacer un programa o algoritmo que calcule las races de una ecuacin de segundo grado
(ax+bx+c=0).
Solucin
Entrada: 1 0 9
Salida: 3 y -3
Entrada: 11 85
Solicitamos el ingreso de dos nmeros de dos cifras al usuario, capturamos sus valores
en las variables a y b, luego se sumamos sus valores y lo asignamos a la variable c
Se comprueba si el resultado de la suma MOD 2 nos da cero (c MOD 2 =0)
Si es Verdadero (Si)
Se muestra que la suma resultante es par
Si es Falso (No)
19
20
Entrada: 11 85
Solicitamos el ingreso de dos nmeros de dos cifras al usuario, capturamos sus valores
en las variables a y b, luego se sumamos sus valores y lo asignamos a la variable c
Se comprueba si el resultado de la suma MOD 2 nos da cero (c MOD 2 =0)
Si es Verdadero (Si)
Se muestra que la suma resultante es par
Si es Falso (No)
Se muestra que la suma resultante es impar
21
Entrada: 4 3
Salida: 5
Se solicita al usuario ingrese los catetos del tringulo las cuales se capturan en las
variables a y b, luego se realiza el clculo de la hipotenusa con SQRT(a*a + b*b) y se
muestra el resultado.
22
Ingresa: 5
1+2+3+4+5 = 15
Salida: 15
23
Problema
Ingrese un nmero y convierta a letras.
Solucin
Esta solucin solo acepta nmeros que van desde el nmero cero al noventa y nueve,
donde el usuario ingresa un numero decimal y la aplicacin retornara como respuesta
dicho nmero en letras.
Ejemplo
Entrada: 35
Primero inicializamos un arreglo donde estarn las unidades, este arreglo ser igual a los
nmeros del cero al diez en letras.
Unidades={cero, uno,
dos ,tres ,cuatro ,cinco ,seis ,siete ,ocho ,nueve ,diez} donde el elemento
Unidades(3)=tres, Unidades(9)=nueve, etc.
24
Procederemos de igual manera para los nmeros del 11 al 19 cuyo arreglo se llamara
Inicializar11a19, este arreglo contendr a todos los nmeros del once al diecinueve en
letras.
25
Luego de inicializar solicitaremos al usuario que ingrese un numero para ser evaluado para
lo cual se coloca un recuadro de lectura y creamos una variable llamada num
Luego de ello realizamos una comparacin para determinar si num es mayor a 10
Si es Falso tomaremos el camino izquierdo donde nos mostrara el resultado buscado
Ejemplo
Entrada: 6
Resultado: seis
Si es Verdadero nos iremos por el lado derecho y llamaremos a una subrutina llamada
NumeroMayora10 el cual recibir 4 parmetros num, Decenas, Unidades, num11a19 las
cuales sern utilizadas en la subrutina.
26
Entrada: num=15
Num11a19 (num-11) = quince
Resultado: quince
Una vez obtenido la unidades pasamos a la subrutina ObtenerDecenas, para obtener las
decenas las decenas la operacin a realizar es: al nmero dado le restamos las unidades y
27
Resultado = cincuenta
Entrada: num=39
d = 3, u = 9
Decenas(d-2)=treinta
y Unidades(u)=nueve
28