En informática, una subrutina o subprograma (también llamada procedimiento, función, rutina o método), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas que devuelven un valor.
Concepto de subrutina
Se le llama subrutina a un segmento de código separado del bloque principal, el cual puede ser invocado en cualquier momento desde esta u otra subrutina.
Una subrutina, al ser llamada dentro de un programa, hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina.
Elementos de la declaración de una subrutina
Las declaraciones de subrutinas generalmente son especificadas por:
- Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos).
- Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución.
- Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea.
- El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina.
Ejemplos
PROGRAMA principal instrucción 1 instrucción 2 ... instrucción N ... SUBRUTINA NombreX ....... FIN SUBRUTINA ... FIN PROGRAMA principal.
La siguiente función en C es la analogía al cálculo del promedio matemático. La función "Promedio" devuelve un valor decimal correspondiente a la semisuma de 2 valores enteros de entrada (A y B):
float Promedio(int A, int B){
float r;
r=(A+B)/2.0;
return r;
}
Así una llamada "Promedio(3, 5)" devolverá el valor de tipo real (float) 4,0.
También se pueden escribir funciones sin parámetros, por ejemplo (también en C):
#include <stdio.h>
int DecirHola(void) {
printf ("¡Hola, Mundo!");
return 0;
}
Esta función, cuando sea ejecutada, imprimirá en la salida estándar el texto "¡Hola, Mundo!"