DFD, clase13 – llamadas a funciones / subprogramas

Hola a todos/as,

Bien retomando un poco las clases de DFD por comentarios y por necesidad de que se encuentre un material bueno sobre las funciones en DFD porque hay informacion en internet pero muchas veces no llegamos a entenderla bien, me propuse a hacer una entrada sobre éste contenido en DFD las funciones.

¿ Qué es una función ?

Una funcion es por decir un programa / subprograma que hace alguna operacion en especial pero a su vez no es independiente, y por ello puede ser llamado en momentos determinados por el programa principal para que realize una operacion que necesite el programa en dicho momento. Por ejemplo:

Tenemos un programa que quiere calcular la suma de dos numeros, bien como ya sabemos simplemente declaramos las variables en éste caso n1 y n2 para los numeros y respuesta para que ahi se almacene la suma de ambos. Pero eso es haciendolo sin funciones ( normal ), la novedad de las funciones es que el programa principal por ejemplo solo va a pedir los datos y nuestra funcion ( subprograma ) va a hacer la operacion, es deicr que el subprograma se va a encargar de hacer la suma de ambos numeros ingresados en el programa principal, y el resultado será el mismo como si lo hubieramos hecho de la manera normal.

¿ Cómo sé cual es el programa principal ?

Simple, en los lenguajes de programacion mas avanzados como C++ ( del cual tambien hablamos en mi blog ). El programa principal se define como:

main ( )

{

}

Y esta delimitado por esas llaves que indican donde comienza y donde termina el programa principal. Bien pero en DFD nuestro programa principal será siempre aquel que comienze con:

inicio


fin

Y para mas claridad es el que siempre hemos venido usando ( ya que no hemos trabajado con funciones / subprogramas ), es éste:

Ampliar imagen

¿ Cómo se cual es un subprograma / funcion ?

Bien, primero hay que saber como identificarlo entre los otros simbolos que tenemos para realizar un algoritmo. Para ello por favor ingresen a ver la entrada: DFD – simbolos [ AQUI ]

Ahi veran que los simbolos que tenemos para hacer un subprograma / funcion y el simbolo para llamar a la funcion / subprograma son parecidos, la diferencia es que el subprograma tiene debajo un RETURN, eso significa que va a retornar valores a la funcion principal o de donde haya sido llamado. Mientras que el simbolo de llamada al subprograma solo posee un simbolo ( parecido al del ciclo para.. ), pero la diferencia está en lo que hace, para saber que hace cada quien se debe abrir el simbolo, pueden hacerlo con doble click sobre el simbolo una vez colocado en el algoritmo.

Las ventanas que tenemos son las siguientes:

a) Para el subprograma:

Ampliar imagen

Nota: el icono para crear un subprograma se encuentra aqui:

Ampliar imagen

b) Para la llamada al subprograma:

Ampliar imagen

Nota: el icono de llamada a un subprograma se encuentra aqui:

Ampliar imagen

Bien, ahora que tenemos las ventanas de cada una vamos a analizarlas para ver que parametros necesitan para funcionar y como llenar sus campos para que funcione correctamente, vamos con la primera:

La ventana del subprograma ( la imagen [a] de arriba ), tiene los siguientes campos:

– Nombre del subprograma: Aqui se coloca el nombre que le queramos poner a nuestro subprograma / funcion, si suponemos el caso del que hablaba arriba de la suma de dos numeros, por ejemplo podriamos llamarlo «suma» ( sin las comillas ) y nuestro subprorgama se llamaria: suma.

– Parametros: Aqui ponemos las variables que va a recibir el subprograma / funcion, asi mismo si ponemos como ejemplo al que dije de los dos numeros nosotros en el programa principal ( que ya sabemos que es el que tiene: inicio – fin como vimos arriba ), tendriamos tres variables n1 , n2 y respuesta como recuerdan que eran nuestros numeros y la variable donde se almacenaria la suma de ellos, y bien como queremos que haye la suma de los dos numeros, pues le mandamos como parametros los numeros y la variable donde guardará su suma osea repsuesta ( es como mandarle paquetes, le mandamos las variables con las que queremos que haga lo que tenga que hacer, en éste caso una suma ), y no olvidarse que cada parametro enviado debe ser separado con una coma ( , ).

– Descripcion: Solo sirve para poner como un comentario de lo que realizará la funcion que creamos o estamos por crear, llenarlo es opcional.

Suponiendo todo lo anterior tomado como un ejercicio nuestro subprograma quedaria de ésta manera:

Ampliar imagen

Ahora con la segunda, la «llamda a subprograma» ( la imagen [b] de arriba ), como su nombre indica sirve para llamar a una funcion / subprograma ya hecho, en nuestro caso llamariamos a nuestro subprograma suma, el cual lo llamamos para que haga su funcion ( que seria calcular respuesta = n1 + n2 ).

Asi mismo la «llamada al subprograma» tiene una ventana con datos para llenar, vamos a revisarlos a continuacion:

– Nombre del subprograma: Aqui ponemos el nombre del subprograma / funcion que creamos, osea «suma«. Debe ser escrito tal y cual como se lo creó pues no es lo mismo las funciones: Suma, sUma, suMa, sumAa la funcion: suma, porque las otras no existen no las hemos creado. Debe ser tal cual se creo con ese nombre, respetando mayusculas y minusculas.

– Argumentos: Como puedieron ver el subprograma tiene la seccion «Parametros» que la vimos arriba, y deciamos que ahi van las variables que va a recibir el subprograma para hacer lo suyo, acá en la «llamada al subprorgama» como podemos ver para llamarlo primero se debe poner el nombre y luego los argumentos y bien los argumentos son las variables que va a recibir el subprorgama, nosotros le vamos a mandar el n1, n2 , respuesta.

Asi mismo, tomando lo anterior como un ejercicio nuestra llamada al subprorgama suma, quedaria de ésta manera:

Ampliar imagen

Bien, con eso ya sabemos como funcionan los subprogramas ó funciones y la llamada a subprogramas ó llamada a funciones. Pero para que quede más claro haré ese ejercicio el cual inventé para explicar ésta clase. Vamos a ello:

NOTA: debido que ésta clase la realize despues de haber terminado las clases oficiales de DFD, y solo se ha aumentado la [ miscelanea de ejercicios ] con ejercicios muchas veces propuestos por ustedes, el ejemplo que haré a continuacion quedará como siguiente a la miscelanea, por lo tanto será el numero 42 segun la lista de ejercicios resueltos 😉

42.) Hacer un Algoritmo que haye la suma de dos numeros usando funciones, cree una funcion que calcule la suma y muestre el resultado en pantalla.

– Abrimos el programa DFD

– Colocamos un mensaje de que trata el algoritmo

Ampliar imagen

– Declaramos las variables que usaremos, en éste caso 3 variables:

n1 = primer numero que ingresará el usuario/a.

n2 = segundo numero que ingresará el usuario/a.

respuesta = donde se almacenará la suma de n1 con n2.

Ampliar imagen

– Ahora pedimos los numeros con su respectivo mensaje asi:

Ampliar imagen

Ampliar imagen

Ampliar imagen

Ampliar imagen

– Una vez pedidos los numeros y que los haya ingresado el usuario, vamos a crear nuestro subprorgama / funcion, la cual hará la suma de n1 y n2. Como habiamos dicho en las explicaciones previas a éste ejercicio le pondremos como nomobre: suma.

– Para crear el subprograma ya sabemos como ubicarlo y ya sabemos como se ve ( ambas cosas las vimos arriba en las explicaciones ), por lo tanto solo le damos click en la barra de herramientas donde vimos que estaba el boton para crear un subprograma ( AQUI ) y nos lleva directamente a una nueva ventana que es ésta:

Ampliar imagen

– Ya que éste va a ser nuestro subprograma / funcion, pues vamos a hacer lo que habiamos indicado antes, darle doble click y llenar sus parametros para que funcione debidamente. Asi:

Ampliar imagen

– Bien, como ya tenemos nuestra funcion con los parametros que habiamos dicho que iba a recibir, es decir n1,n2,respuesta. Solo nos queda calcular la suma de n1 con n2, para ello usamos como ya sabemos el simbolo de asignacion y le asignamos a respuesta la suma de n1 con n2. Asi:

Ampliar imagen

– Ahora como pudimos ver ya hemos hecho nuestro subprograma / funcion que va a realizar la suma de los dos numeros, y retornará un valor que será respuesta. Esa variable respuesta es lo que vamos a mostrar en nuestro programa principal. Asi que regresemos a nuestro programa principal.

Nota: para moverse entre las funcines que vayamos creando se pueden usar los botones que ven a continuacion:

Ampliar imagen

– Ahora que estamos en nuestro programa principal debemos llamar al subprograma suma para que cuando el algoritmo se ejecute, vaya linea por linea asi:

1.) inicio

2.) muestra mensaje

3.) pide primer numero

4.) pide segundo numero

5.) llama al subprograma / funcion: «suma«

6.) el subprograma «suma» hace lo suyo ( sumar n1 con n2 y devolver la respuesta a dicha operacion en la variable: respuesta )

7.) el programa principal recibe esa respuesta

8.) el programa principal la muestra en pantalla.

9.) fin

– Para llamarlo ya sabemos como hacerlo, vamos a la barra de herramientas y colocamos su simbolo en nuestro programa principal, por si no recuerdan el simbolo era [ éste ] y lo vimos arriba. Una vez insertado debemos darle doble click como habiamos visto y llenar sus partes, asi:

Ampliar imagen

– Bien ese seria nuestro paso ( 5 ) si lo vemos como decia mas arriba, ya que ahi estamos llamando al subprograma suma para que haga lo suyo.

– Una vez que el subprograma se completó satisfactoriamente, nos devolverá ( return ) la respuesta que calculamos ahi, esa respuesta la recibe nuestro programa principal pues ahi fue declarada desde el comienzo, recuerden al inicio del programa principal estan declaradas:

n1 = 0

n2 = 0

respuesta = 0

respuesta tuvo cero hasta antes de que se llame al subprograma, pues una vez que el subprograma recibió como parametros los numeros, por ejemplo 1 y 2, calculará la suma y la devolverá en la variable: respuesta que valia cero, entonces 1 + 2 = 3, por lo tanto respuesta en nuestro programa principal tendra un valor de 3 en ése momento y ése valor es el que tendremos que mostrar, asi:

Ampliar imagen

Con eso terminamos el programa, espero que les haya servido amigos/as y para cualquier duda / comentario / sugerencia, siempre estoy por aqui dispuesto a darles una mano, saludos! 😉

14 respuestas

  1. Felicidades me agrado mucho su blog, seguire checando como desarrolla las estructuras en el software de dfd, me interesa aprender. saludos a vosotros.

  2. woow!! jajajaja
    no puedo creer qe me salió el ejercicio!
    hasta el dia de ayer no entendia este tema de DFD

    En verdad le agradesco… su blog me ha ayudado mucho,
    ya que estoy en la carrera de informatica en el bachillerato…
    y la verdad se me hace dificil eto del DFD :S

    Gracias de nuevo!! 🙂

    • jejeje, gracias Laura por los cumplidos 🙂 , hago lo mejor que puedo; ahora vamos solo piensa que es un «juego» que los ejercicios son una especie de «acertijos» por resolver, que te dan las herramientas pero colocarlas de la manera adecuada harán que se resuelva el problema 😀
      Si te fijas DFD es como un rompecabezas, con sus piezas y cada una con su función especifica, uniendolas a todas de una manera u otra podrás resolver muchos tipos de ejercicios. Mucha suerte y cualquier ayuda que necesites en cuanto esté a mi alcance te ayudaré, saludos! y gracias de nuevo por el apoyo! 😀

  3. hola q tal esta muy bueno su post pero me pregunto como se podria sacar el mcd en dfd.
    tambien me gustaria como se podria contar las letras ingresando una palabra

  4. Gracias, de verdad me ayudo muchisimo, sigue adelante con lo que haces

  5. gracias me sirve para lo que estamos viendo cuando haces referencia a «la forma normal» te referis a pseudocodigo??

    • Hola pampa, biienvenid@!
      cuando dije «normal» es para de alguna forma diferenciar a un algoritmo sin funciones y a otro con funciones «subprogramas». Saludos!

  6. woo esta muy bien..mesalio jeje..

    0ye me preguntaba si podrias hacer un diagrama de esta manera..

    que empieze y que le pregunte al usuario cuantas cantidades de numeros desea sumar.. me lo pidieron en la escuela.. gracias. 😀

  7. buena mañana. me podrian colaborar? debo por medio de dfd que me sume los caracteres de un nombre….. alex.garzon.cruz@hotmail.com
    gracias.!!!

  8. ALGUNA AYUDA PERO EN RAPTOR QUE ES SIMILAR

  9. como podrias hacer un contador de palabras en raptor????

  10. muy buena explicación gracias¡¡¡

Deja un comentario