En programación, una subrutina es un bloque de código que realiza una tarea específica dentro de un programa.
En PSeInt las subrutinas pueden ser de dos tipos:
Ambas ayudan a organizar los programas, a hacerlos más claros y reutilizables.
Una función realiza una tarea y retorna un resultado (valor) al lugar desde donde fue llamada.
Sirve cuando necesitas calcular o procesar algo y obtener el resultado.
Funcion resultado <- NombreFuncion(parametro1, parametro2, ...)
// instrucciones
resultado <- valor_calculado;
FinFuncion
Crear una función que calcule el doble de un número:
Funcion doble <- CalcularDoble(numero)
Definir doble Como Entero;
doble <- numero * 2;
FinFuncion
Proceso Principal
Definir n, resultado Como Entero;
Escribir "Ingrese un número:";
Leer n;
resultado <- CalcularDoble(n);
Escribir "El doble es: ", resultado;
FinProceso
Un procedimiento realiza una tarea, pero no devuelve ningún valor.
Se utiliza cuando solo quieres que algo suceda, como mostrar un mensaje, imprimir un informe, guardar datos, etc.
SubProceso NombreProcedimiento(parametro1, parametro2, ...)
// instrucciones
FinSubProceso
SubProceso MostrarBienvenida()
Escribir "¡Bienvenido al programa!";
FinSubProceso
Proceso Principal
MostrarBienvenida();
FinProceso
Funcion Sumar(x, y) // x e y son parámetros formales
Escribir x + y;
FinFuncion
Sumar(3, 5); // 3 y 5 son parámetros reales
| Modo | Explicación |
|---|---|
| Por Valor | Se copia el valor del parámetro real. Cambios dentro de la subrutina no afectan fuera. |
| Por Referencia | Se pasa la dirección del dato. Cambios dentro de la subrutina sí afectan fuera. |
Para indicar explícitamente el modo, se usan las palabras Por Valor o Por Referencia.
Funcion Incrementar(num)
num <- num + 1;
Escribir "Dentro de la función: ", num;
FinFuncion
Proceso Principal
Definir numero Como Entero;
numero <- 5;
Incrementar(numero);
Escribir "Después de la función: ", numero;
FinProceso
Observa que numero no cambió fuera de la función.
Funcion Incrementar(num Por Referencia)
num <- num + 1;
Escribir "Dentro de la función: ", num;
FinFuncion
Proceso Principal
Definir numero Como Entero;
numero <- 5;
Incrementar(numero);
Escribir "Después de la función: ", numero;
FinProceso
Aquí numero sí cambió porque se pasó por referencia.