Sei sulla pagina 1di 28

Qu son los Diagramas de Flujo?

Un diagrama de flujo es un tipo de diagrama que


representa un algoritmo o proceso, que muestra
las etapas como bloques de varios tipos, y su orden
mediante conexiones con flechas.

Esta representacin

esquemtica puede

dar

la

solucin paso a paso de un problema dado.


Las operaciones de proceso estn representadas en
estos bloques y las flechas que los conectan
representan el control de flujo.

Los flujos de datos no se suelen representar en


un diagrama de flujo, en contraste con diagramas
de flujo de datos, sino que estn implcitos en la secuencia de las operaciones. Los
diagramas de flujo son usados en el anlisis, diseo, documentacin o la gestin de un
proceso o programa en varios campos.

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

diferentes de diagramas de flujo, y cada


tipo tiene su propio repertorio de cajas y
convenciones de notacin.
Los dos tipos ms comunes de cajas en
un diagrama de flujo son:

A un paso de procesamiento,
generalmente se le llama
actividad, y se denota como una
caja rectangular.

A una decisin, se le denota

generalmente como un diamante.

Un diagrama de flujo es descrito como"multifuncional" cuando la pgina se divide en


diferentes "carriles" que describen el control de las diferentes unidades organizativas. Un
smbolo que aparece en un "carril" est bajo el control de esa unidad organizativa. Esta
tcnica permite al autor localizar la responsabilidad de realizar una accin o de tomar una
decisin correcta, mostrando la responsabilidad de cada unidad organizacional para
diferentes partes de un mismo proceso.

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

mtodo propio disminuy cuando las terminales de ordenador y lenguajes de


programacin de tercera generacin se convirtieron en herramientas comunes, ya que los
algoritmos se pueden expresar de manera mucho ms concisa como cdigo fuente de un
lenguaje, y tambin porque era ms probable que el diseo de algoritmos usando
diagramas de flujo resulte en cdigo-espagueti, debido a la necesidad de los "gotos" para
describir saltos arbitrarios en el control flujo del programa.

Bloques de Construccin de Diagramas de Flujo


Smbolos
Un diagrama de flujo tpico de los antiguos libros de texto bsicos de informtica puede
tener los siguientes tipos de smbolos:

Smbolos Inicio y Fin

Representado como crculos, valos o rectngulos redondeados, que normalmente


contiene la palabra "Inicio" o "Fin", u otra frase que marca el inicio o el final de un proceso,
como "enviar consulta" o "recibir producto".

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.

Pasos genricos de procesamiento


Son Representados como rectngulos. Ejemplos: "Aadir 1 a X", "reemplazar parte
identificada", "guardar cambios", etc.

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.

Conectores con etiqueta


Son Representado por una etiqueta en el interior de un crculo, se emplean en los
diagramas complejos o multi-hoja para sustituir a las flechas. Para cada etiqueta, el
conector de "flujo de salida" siempre debe ser nico, pero puede haber cualquier cantidad
de conectores de "flujo entrada". En este caso, un punto de unin en el flujo de control est
implcita.

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.

Tipos de diagrama de flujo


Sterneckert (2003) sugiri que los diagramas de flujo pueden ser modelados desde la
perspectiva de diferentes grupos de usuarios (por ejemplo, administradores, analistas de
sistemas y empleados) y que hay cuatro tipos generales:

Diagramas de flujo de documentos, mostrando los controles sobre el flujo de un


documento a travs de un sistema.

Diagramas de flujo de datos, mostrando los controles sobre un flujo de datos de un


sistema.

Diagramas de flujo de sistemas que muestran los controles a nivel fsico o de


recursos.

Diagrama de flujo de programa, que muestra los controles en un programa dentro


de un sistema.

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)

sale del ciclo y muestra


la cadena

Resultado = 1010

Problema
Hacer un programa o algoritmo que si se ingresan 5 notas de un alumno, publicar las 2
peores notas.
Solucin

Entrada: 15, 10, 13, 8,19

Salida: 10, 8

Se Inicializa la variable u con cero, se solicita ingresar cinco notas, se llama a


la subrutina CapturaNotas , se crea un ciclo While con condicin de que u debe ser
diferente de 4(esto nos indica que el arreglo ya est ordenado), se llama a la subrutina
Ordena esta nos ordena el arreglo de forma ascendente, se finaliza el ciclo se muestra el

resultado. Finaliza

Diagrama de flujo - Determinar las dos peores notas


En la subrutina CapturaNotas, se crea un ciclo For el cual tendr cinco iteraciones para
capturar los cinco nmeros en el arreglo Nota, finaliza el ciclo.

Diagrama de flujo - Subrutina CapturaNotas


En la subrutina Ordena, Se crea un ciclo For con cuatro iteraciones, luego
Se comprueba si el primer elemento es menor que el segundo elemento del arreglo
Nota (Nota(k)<Nota(k+1))
Si es Verdadero (Si)
Indica que est en orden ascendente, se actualiza el valor de u adicionndole 1.
Si es Falso (No)

Se realiza un intercambio, se asigna a la variable tem el primer elemento, y se asigna el


valor del segundo elemento en el primero, luego se asigna el valor de tem en el segundo
elemento.
Finaliza ciclo.
Problema
Hacer un programa o algoritmo que dadas tres longitudes, decir mediante un mensaje si
forma un tringulo o no (cada lado tiene que ser menor que de las otras dos).
Solucin

Entrada: 3 4 5

Salida: Si forma un triangulo

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

Entrada: 37 grados Celsius

Salida: 98.6 grados Fahrenheit

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.

Diagrama de flujo - Conversin de grados Celsius a Fahrenheit y viceversa.

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

Se solicita al usuario ingrese el monto de la compra, la cual se captura en la variable N,


luego
Se comprueba su el monto es mayor a 100 (N>100)
Si es verdadero (Si)
Se realiza un descuento del 20% al monto de la compra y se muestra el valor de la
compra,
donde monto es N - N*0.2.
Si es Falso (No)
Se compara si el monto esta entre 50 y 100 (N<=100 AND N>50)
Si es Verdadero (Si)
Se realiza un descuento del 10% al monto de la compra y se muestra el valor
de la compra, donde monto es N - N*0.1.
Si es Falso (No)
Se muestra el valor de la compra.
Finaliza.

Diagrama de Flujo - Calcular Monto de descuento en una compra.

12

Problema
Realizar un algoritmo que permita convertir un nmero arbigo comprendido entre 1000 y
2000 a nmeros romanos.
Solucin

Entrada: 1597

Salida: MDXCVII

Al comienzose llama a la subrutina Inicializar la cual inicializa en arreglos nmeros


romanos, se solicita al usuario ingrese un nmero entre 1000 y 2000, se captura el valor
en la variable N, luego se llama a la subrutina Convertirentre1000y2000 con
parmetros donde N es el numero ingresado, m representa a las milsimas, c a las
centenas, d a las decenas, u a las unidades, Centena es la arreglo que contiene a las
centenas, Decena es la arreglo que contiene a las decenas, Unidad es el arreglo que
contiene a las unidades ,Mil arreglo que contiene a la milsimas y finaliza

Diagrama de flujo - Convertir numero arabigo a numero romano


En la subrutina Inicializar se llaman a las subrutinas
InicializaUnidades,InicializaDecenas, InicializaCentenas y InicializaMil.

13

Diagrama de flujo - Subrutina Inicializar


En la subrutina InicializaUnidades, Se crea el arreglo Unidad que contiene a los 9
primeros nmeros romanos Unidad = {,I,II,III,IV,V,VI,VII,VIII,IX}, donde
Unidad(7)=VII que corresponde al nmero 7 en romanos.

Diagrama de flujo - Subrutina InicializaUnidades


En la Subrutina InicializaDecenas, se crea el arreglo Decena que contiene a los nmeros
del 10 al 90 en romanos, Decena={,X,XX,XXX,XL,L,LX,LXX,LXXX,XC} ,
donde Decena(8)=LXXX que corresponde al nmero 80 en romanos.

14

Diagrama de flujo - Subrutina InicializaDecenas


En la subrutina InicializaCentenas, se crea el arreglo Centena que contiene a los
nmeros romanos entre 100 y 900
Centena={,C,CC,CCC,CD,D,DC,DCC,DCCC,CM}, donde Centena(4)=CD
que corresponde al nmero 400 en romanos.

Diagrama de flujo - Subrutina InicializaCentenas


En la Subrutina InicializaMil, se crea el Arreglo Mil que contiene a los nmeros romanos
1000 y 2000, Mil={,M,MM}, donde Mil(1)=M, que corresponde al nmero 1000 en
romanos.

15

Diagrama de flujo - Subrutina InicializaMil


En la subrutina ObtenerUnidadDecenaCentenaMil, se obtiene las unidades con N MOD
10 y se guarda en la variable u, las decenas con TRUNC(N/10) MOD 10 y se guarda en
la variable d, las centenas con TRUNC(N/100) MOD 10 y se guarda en la variable c, las
milsimas con TRUNC(N/1000) y se guarda en la variable m.
Ejemplo:
Numero = 1584
u = 584 MOD 10 = 4
d = TRUNC(584/10) MOD 10 = 8
c = TRUNC(584/100) MOD 10 = 5
m = TRUNC(N/1000) = 1
Las variable m, c, d, u nos sirven como ndices en los arreglos respectivos para hallar
nmero romano correspondiente.

Diagrama de flujo - Subrutina ObtenerUnidadDecenaCentenaMil


En la Subrutina Convertirentre1000y2000, Se compara Si N es mayor igual a 1000 y
menor igual a 2000 (N>=1000 AND N<=2000)
Si es Verdadero (Si)
Se llama a la subrutina ObtenerUnidadDecenaCentenaMil para extraer los

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.

Diagrama de flujo - Subrutina Convertirentre1000y2000


Problema
Implemente un algoritmo de tal modo que al ingresar una hora en segundos, indique a
cuantas horas, minutos y segundos corresponde.
Solucin
Se ingresa la cantidad de segundos y retornara esta cantidad de segundos representado
en horas, minutos y segundos
Ejemplo:

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.

Diagrama de flujo - Calcular el rea de un cilindro

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

Se inicializa las variables X1 y X2 con cero, se solicita al usuario ingrese los


coeficientes de la ecuacin cuadrtica, se captura los valores en las variables a, b y c,
Se verifica si la discriminante (b*b-4*a*c) es menor a cero, si es as las races son
imaginarios si no se calcula las races con -b +(SQRT(b*b-4*a*c))/2*a para la raz 1 y con
-b - (SQRT(b*b-4*a*c))/2*a para la raz 2 y se muestra el resultado.

Diagrama de flujo - Calculo de las races de una ecuacin cuadrtica


Problema
Desarrolle un algoritmo que verifique si la suma de dos nmeros de dos cifras es par.
Solucin

Entrada: 11 85

Salida: la suma es par

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

Se muestra que la suma resultante es impar

Diagrama de flujo - Verificar si la suma de dos nmeros es par.


Problema
Desarrolle un algoritmo que lea los primeros 300 nmeros enteros y determine cuntos de
ellos son impares; al final deber indicar su sumatoria.
Solucin
Inicializamos las variables Sum y cont en cero, luego creamos un bucle For,
inicializamos la variable i en 1 y aumentamos el valor de uno en uno, hasta que el valor
de i sea menor igual a 300, Comparamos si el valor de i MOD 2 es diferente de 0
Si es Verdadero (Si)
Actualizamos el valor De Sum adicionndole el valor de i, tambin actualizamos el valor
de cont adicionndole uno.
Si es Falso (No)
No se hace nada
Finalizamos el ciclo, se muestra la sumatoria total y tambin la cantidad de nmeros
impares entre 1 y 300.

20

Diagrama de flujo - sumatoria de los 300 primeros impares


Problema
Desarrolle un algoritmo que verifique si la suma de dos nmeros de dos cifras es par.
Solucin

Entrada: 11 85

Salida: la suma es par

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

Diagrama de flujo - Verificar si la suma de dos nmeros es par.


Problema
Determinar la hipotenusa de un tringulo rectngulo conocidas las longitudes de sus dos
catetos.
Solucin

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

Diagrama de flujo - Calculo de la hipotenusa


Solucin
Se ingresa un nmero entero y retorna la suma de los nmeros anteriores incluido el
numero ingresado.
Ejemplo

Ingresa: 5
1+2+3+4+5 = 15

Salida: 15

Se resuelve el problema de forma recursiva. Creamos un smbolo de entrada donde la


variable N ser la que capture la cantidad de nmeros que se desea sumar, luego
llamamos a la subrutina Sumatoria con parmetros (X,N), la cual nos retorna la sumatoria
cuyo resultado se muestra en un smbolo de salida.

En la subrutina Sumatoria comparamos si la variable Nivel (tomara el valor de la variable


N) es mayor a 0 (Nivel>0)
Si es Falso (No)
Cargaremos en la variable X el valor de 0 que corresponder a la sumatoria de 0
nmeros.
Si es Verdadero (Si)
Llamamos recursivamente a la Subrutina Sumatoria en la cual en sus parmetros
tendremos a Temp y Nivel -1, Luego cargamos el valor de Temp + Nivel en la
Variable X y retornamos el valor de la sumatoria.

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

Salida: treinta y cinco.

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.

Finalmente inicializaremos el arreglo Decenas que contendr los nmeros veinte,


treinta,..., noventa 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

Luego se hace otra consulta si num es mayor a 19


Si el resultado de la comparacin es falsa, lo que haremos ser extraer el numero en
letras del arreglo num11a19, que recibe como parmetro num-11(num menos once),
debido a que en este arreglo los ndices van de 0 a 8(el dato en la posicin 0 es el once ,
en la posicin 1 es el doce, etc.).
Ejemplo

Entrada: num=15
Num11a19 (num-11) = quince

Resultado: quince

Si el resultado de la comparacin es verdadera, entonces llamaremos a la subrutina


ObtenerUnidades,las unidades se obtienen sacando modulo 10 a num.
Ejemplo
MOD(36,10) = 6 el modulo nos retorna el residuo de una divisin
Esta subrutina nos retorna la unidad de un numero por ejemplo 36 nos retorna 6

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

lo dividimos entre diez, d=(num-u)/10, as obtenemos las decenas

Ahora haremos una pregunta si las unidades son iguales a cero


De ser Verdadero, mostraremos el resultado con los datos del arreglo Decenas, para
acceder a un elemento a las decenas obtenidas le restamos 2
(Decenas(0)=veinte,Decenas(1)=treinta, ,Decenas(7)=noventa)
Ejemplo

Entrada: num = 50 donde d=5


Decenas(d-2)=cincuenta

Resultado = cincuenta

De ser falso, mostraremos el arreglo de Decenas y Unidades a la vez


Ejemplo

Entrada: num=39
d = 3, u = 9
Decenas(d-2)=treinta

y Unidades(u)=nueve

Resultado: treinta y nueve

28

Potrebbero piacerti anche