Funciones y pila de llamadas – parámetros, valores de retorno y ámbito
InformáticaAlgoritmos y resolución de problemasEdades 15–16
Cargando…
Inicia sesión para usarEjecuta paso a paso programas que llaman a procedimientos y funciones y observa cómo cada llamada apila un marco: argumentos asignados a parámetros, variables locales y el valor de retorno que vuelve a la línea que llamó. Compara variables locales y globales, paso por valor y por referencia, y recursión en Python o pseudocódigo. Un modo biblioteca te deja llamar a rutinas predefinidas para explorar firmas y abstracción.
Lección: Subprogramas: procedimientos, funciones, parámetros y ámbito
Qué muestra
Un subprograma es un bloque de código con nombre que se puede llamar muchas veces. Al llamarlo, el ordenador apila un marco con sus parámetros y variables locales; los argumentos se asignan a los parámetros, y return devuelve un valor y desapila el marco. Las variables locales solo existen durante la llamada y pueden ocultar variables globales con el mismo nombre. La recursión apila muchos marcos de la misma función. Las rutinas de biblioteca ocultan su código tras una firma, y así se descompone un programa en módulos y API.
Cómo usarla
Elige un Ejemplo y un Lenguaje y pulsa Paso para ejecutar una línea cada vez, o Ejecutar para reproducir el programa a la Velocidad elegida. Observa la pila de llamadas, las notas de Qué pasó en este paso y el gráfico de profundidad. Pulsa Editar para cambiar el código. Cambia a Rutinas de biblioteca, elige una Rutina, escribe los argumentos y pulsa Llamar.
Parámetros que puedes cambiar
- Modo Ejecutar un programa, Rutinas de biblioteca
- Ejemplo Parámetros y valores de retorno, Variables locales y globales, Funciones que llaman a funciones, Procedimientos y funciones, Recursión (factorial), Paso por valor y por referencia
- Lenguaje Python, Pseudocódigo
- Velocidad 0,5–10 pasos/s
Preguntas para explorar
- ¿En la llamada area(w, 3), qué valores son los argumentos y qué nombres son los parámetros?
- ¿Por qué print(count) en el programa principal sigue mostrando 10 después de ejecutar double(3)?
- ¿Cuántos marcos hay en la pila de llamadas cuando factorial(4) llega a su caso base?