Funcion en PSeInt: Sintaxis y Retorno de Valor (2026)

Cuando necesitas calcular algo y devolver un resultado —la suma de dos números, el mayor de una lista, el área de una figura—, la herramienta adecuada en PSeInt es la Funcion. A diferencia de un SubProceso (que es un procedimiento y no retorna nada), una Funcion siempre retorna un valor que puedes asignar a una variable o usar directamente en una expresión. En esta guía verás la sintaxis Funcion resultado <- Nombre(args)...FinFuncion con un ejemplo completo y ejecutable.

Sintaxis

Funcion resultado <- Nombre ( argumentos )
    // instrucciones
    resultado <- valor_a_devolver
FinFuncion

Funcion s <- Sumar ( a, b )
    s <- a + b
FinFuncion

La primera palabra es Funcion, seguida del nombre de la variable de retorno, la flecha <-, el nombre de la función y sus argumentos entre paréntesis. El bloque termina con FinFuncion. Dentro del cuerpo debes asignar el valor de retorno a esa variable.

Explicación

  • La variable de retorno. En Funcion s <- Sumar(a, b), s es la variable que guardará el resultado. Dentro de la función debes asignarle un valor (por ejemplo s <- a + b); ese valor es lo que la función «devuelve» a quien la llama.
  • La llamada devuelve el valor. Al escribir x <- Sumar(4, 5), la función se ejecuta y el resultado (9) se guarda en x. También puedes usar la llamada dentro de una expresión: Escribir Sumar(4, 5).
  • Funcion retorna, SubProceso no. Esta es la diferencia fundamental: una Funcion produce un valor de retorno; un SubProceso es un procedimiento que ejecuta instrucciones pero no retorna nada. Elige Funcion cuando el objetivo sea calcular un dato.
  • Los argumentos son los datos de entrada. Los parámetros entre paréntesis reciben los valores que se pasan en la llamada, en el mismo orden. En el ejemplo, a recibe 4 y b recibe 5.
  • El bloque debe cerrarse. Toda función empieza con Funcion y termina con FinFuncion; si falta el cierre, PSeInt reporta un error de sintaxis.

Ejemplo completo

Esta función devuelve el mayor de dos números y el algoritmo principal la usa para mostrar el resultado:

Funcion mayor <- Maximo ( a, b )
    Si a > b Entonces
        mayor <- a
    Sino
        mayor <- b
    FinSi
FinFuncion

Algoritmo Principal
    Definir x, y, m Como Entero
    x <- 12
    y <- 7
    m <- Maximo(x, y)
    Escribir "El mayor es: ", m
FinAlgoritmo

Sigue la ejecución: x vale 12 y y vale 7. La llamada Maximo(x, y) entra a la función con a = 12 y b = 7. Como 12 es mayor que 7, se ejecuta mayor <- a, la función retorna 12 y ese valor se guarda en m. El programa muestra «El mayor es: 12».

Errores comunes

  • No asignar la variable de retorno. Si dentro de la función nunca escribes mayor <- ..., la función no tiene un valor definido que devolver. Asegúrate de asignarla en todos los caminos posibles del código.
  • Confundir Funcion con SubProceso. Si defines un SubProceso esperando que «devuelva» un valor con <-, no funcionará: los procedimientos no retornan valores. Usa Funcion para eso.
  • Olvidar el FinFuncion. Como todo bloque en PSeInt, la función debe cerrarse con FinFuncion.

Ver también

Preguntas frecuentes

¿Cuál es la diferencia entre Funcion y SubProceso?+
La Funcion retorna un valor: se declara como Funcion resultado <- Nombre(args) y el resultado se asigna a una variable en la llamada. El SubProceso es un procedimiento: ejecuta instrucciones pero no retorna ningún valor. Usa Funcion cuando necesites calcular y devolver un dato.
¿Puedo usar la llamada a una función dentro de una expresión?+
Sí. Como la función retorna un valor, la llamada puede aparecer donde se espere un valor: en una asignación (m <- Maximo(x, y)), dentro de un Escribir (Escribir Sumar(4, 5)) o como parte de un cálculo mayor.
¿Qué pasa si la función nunca asigna la variable de retorno?+
Entonces la función no devuelve un valor definido. Debes asignar la variable de retorno en el cuerpo de la función (por ejemplo mayor <- a) en todos los caminos que el código pueda seguir. Si tienes dudas sobre el comportamiento en tu versión, consulta la ayuda integrada de PSeInt.

Publicaciones Similares