La signatura o firma de un método o una función define su entrada y su salida. Incluye por lo menos el nombre de la función o método y el número de sus parámetros. En algunos lenguajes de programación, puede incluir el tipo que devuelve la función o el tipo de sus parámetros.
En el caso de un tipo de dato abstracto (TDA), se define signatura como los tipos que utiliza junto con los nombres y perfiles de las operaciones.
Por ejemplo, para especificar el TDA de los booleanos se utiliza la siguiente signatura:
- tipos bool
- operaciones
- verdadero : bool
- falso : bool
- And : bool x bool -> bool
- Or : bool x bool -> bool
- Not : bool -> bool
- include <iostream>
2 using namespace std;
3 void imprimirCombinacion(int salida[], int longitud) {
4 for (int i=0; i<longitud; i++) {
5 cout << salida[i] << " ";
6 }
7 cout << endl;
8 return;
9 }
10
11 void imprimirCombinaciones(int i, int n, int salida[], int longitud) {
12 if (n==0) {
13 imprimirCombinacion(salida, longitud);
14 return;
15 }
16 for(int j=i; j<=n; j++) {
17 salida[longitud] = j;
18 imprimirCombinaciones(j, n-j, salida, longitud +1);
19 }
20 }
21
22 int main() {
23 int n = 5;
24
25 int salida[100];
26 imprimirCombinaciones(1, n, salida, 0);
27
28 // recursión de todas las combinaciones de números desde el 1 al n que suman `n`
29
30
31 return 0;
32