Hola y bienvenidos.
Vamos a ver a continuación la ejecución paso a paso de nuestro procedimiento.
Están listos?
Vamos.
Bien, va a ser muy importante que podamos entender a detalle la ejecución paso a paso de una función,
en este caso de nuestro procedimiento.
Así que para poder ejecutar nuestro procedimiento paso a paso desde nuestro método principal, vamos
a agregar un punto de ruptura.
Sin embargo, en este caso, el punto de ruptura no lo podemos agregar si es que no asignamos un valor
a nuestra variable.
Así que de momento voy a quitar estas líneas de código y le voy a asignar un valor en código duro a
nuestro argumento.
Le voy a asignar el valor de diez a nuestra variable de argumento.
Bien.
Y entonces ahora sí, ya podemos agregar un punto de ruptura.
Esto ya sería una línea válida, ya que estamos asignando un valor a una variable.
Así que una vez que hemos establecido el punto de ruptura, vamos a presionar el botón de debug para
comenzar la ejecución paso a paso.
Así que hacemos lo siguiente Presionamos el botón de debug.
Y agregamos nuestras ventanas, la ventana de salida, la consola y también nuestra animación.
Recordemos que esta ventana no es parte del hide, es una animación que la estamos agregando por separado.
Bien, entonces ejecutamos la línea diez para poder ejecutar la presionamos el botón de este hover,
así que en ese momento se crea nuestra variable de argumento.
Es una variable local, pero a nuestro método main.
Como podemos observar.
Y se le asigna el valor de días.
Ahora, para pasar el control a nuestra función de imprimir, vamos a utilizar un botón diferente.
Recordemos que de momento veníamos utilizando el botón de este hover, pero ese botón ejecuta la línea
por completo sin entrar al detalle de la ejecución de nuestra función.
Pero en este caso, debido a que si queremos entrar al detalle de la función, en este caso del procedimiento,
entonces presionamos el botón de este bin.
Incluso podemos observar el pequeño icono que nos muestra.
Estamos entrando al detalle de la función.
En cambio, el botón de este hover solamente ejecuta la línea sin entrar al detalle de la función.
Así que vamos a presionar este botón de este pin y podemos ver que se pone en pausa la ejecución del
programa principal.
En nuestra animación podemos llevar que el método Main está en pausa.
Aquí podemos ver que está en ejecución el método de imprimir y de manera interna se define la variable
local de parámetro.
Así que ahora se le va a pasar una copia del valor de argumento hacia la variable de parámetro.
Y aquí vemos más claramente los conceptos entre argumento y parámetro.
El argumento es la información que se va a pasar a nuestra función y el parámetro es la variable local
definida dentro de nuestro método, el cual recibe la información enviada a esta función.
En este caso, a este procedimiento.
Así que se le pasa una copia del valor de este argumento a nuestra variable de parámetro.
Bien, ahora ya estamos en la línea cinco y se ejecutamos esta línea.
Esta línea no tenemos que entrar al detalle del método print.
Por lo tanto, podemos presionar el botón de este hover y entonces vemos en consola el valor recibido
es el valor recibido es el valor de días.
Así que de esta manera se manda a imprimir la información que estamos recibiendo en nuestro método.
De momento todavía se encuentra en memoria esta variable, pero una vez que termine de ejecutarse este
método, ya estamos en la línea seis, que es la última línea de este método.
Por lo tanto, se va a destruir la llamada de esta función y también se destruye la variable de parámetro.
Y podemos ver que cada vez que se manda a llamar una función se agrega también a la memoria stack.
Así que las llamadas de las funciones también se van apilando, se van llamando en sí una tras otra,
según tantas llamadas como hagamos a diferentes funciones.
Esto lo vamos a ver también a detalle más adelante, pero podemos observar en esta animación que también
la llamada a las funciones se agregará a la memoria stack.
Bien, entonces ejecutamos la línea seis.
Vamos a presionar el botón de este hover.
Podemos llevar que regresamos a la función principal a la línea 13 y entonces en memoria lo que sucede
es lo siguiente se quita de la memoria el procedimiento de imprimir y también se elimina de la memoria
la variable de parámetro.
Y ahora continuamos con la ejecución del método principal.
Ahora, en la línea 13 podemos volver a presionar el botón de este punto para volver a ejecutar la función.
Así que en memoria se vuelve a crear una llamada a la función de imprimir y se le va a asignar ahora
otro valor de parámetro.
Recordemos que ahora la información que le estamos pasando es el argumento de 100 y se va a asignar
a la variable de parámetro.
Así que en este caso ya no estamos usando este argumento, sino que le estamos enviando directamente
este valor de 100 y se la asigna a la variable de parámetro.
Así que se le pasó una copia de este valor.
Bien, vamos a ejecutar esta línea presionando este hover y entonces se manda a imprimir el valor de
100.
Como podemos observar, ya es la última línea de nuestro método.
Así que de nueva cuenta, si presionamos este hover, entonces de memoria se va a quitar la llamada
de la función imprimir.
Podemos ver que se quita la llamada y regresamos a la función principal.
En este caso estamos en la línea 14 y si volvemos a presionar este punto vamos a entrar al detalle del
procedimiento.
Pero si ya no queremos entrar al detalle, simplemente presionamos este hover y podemos ver que se manda
a imprimir directamente el valor de 200.
Ya no entramos al detalle.
Así que en la animación ya no se vio ese detalle, pero simplemente es lo mismo que ya vimos en la ejecución
de cualquiera de estas llamadas.
Pero si presionamos este hover ya no se ve este detalle.
Bien, con esto entonces ya estamos en la línea 16.
Ya se mandaron a imprimir los tres valores de 100 y 200.
Ya sabemos cómo reutilizar este bloque de código de la función de imprimir.
Simplemente lo mandamos a llamar las veces que sea necesario.
Podemos observar que el método principal también a su vez es una función y entonces esta función regresa
a un valor de tipo entero y por ello, si todo funciona correctamente, al final retornamos el valor
de cero.
Si retorna el valor de cero, quiere decir que la ejecución de nuestro programa se realizó correctamente.
Si arroja algún valor distinto de cero, entonces ocurrió algún error.
Y ahora, si ya podemos entender a detalle, entonces para que es esta definición del tipo de dato que
va a regresar una función y también el tipo retornado, el valor de cero.
Bien, vamos a presionar este hover.
Ya estamos en la última línea de la ejecución de nuestro método principal y entonces ya termina de ejecutarse
nuestro programa.
Bien, podemos quitar el punto de ruptura y con esto terminamos la ejecución paso a paso de un procedimiento.
Como hemos comentado, procedimiento o función es lo mismo, excepto que en este caso un procedimiento
no regresa ningún tipo de información, solamente se manda a llamar, pero en estos casos no estamos
regresando ningún tipo de información al método principal.
Bien, pongan en práctica lo que hemos visto y vamos a continuar con más temas de funciones en el siguiente
video.
Saludos.