Page 182

3.5 Paso de par´ametros

16

}

17 18 19 20

int main(void) { char espacio[FILAS][COLUMNAS];

21

inicializa_tablero(espacio);

22 23

return 0;

24 25

}

Pasamos la matriz indicando el n´ umero de columnas de la misma.5 En el interior de la funci´on se modifica el contenido de la matriz. Los cambios afectar´an a la variable que suministremos como argumento, pues las matrices se pasan siempre por referencia. Hemos de mostrar por pantalla el contenido de la matriz en m´as de una ocasi´on. Podemos dise˜ nar un procedimiento que se encargue de esta tarea: 1

#include <stdio.h>

2 3 4

#define FILAS #define COLUMNAS

9 20

5 6

#define NO_SONDEADA ’+’

7 8

...

9 10 11 12 13

void muestra_tablero(char tablero[][COLUMNAS]) /* Muestra en pantalla el tablero de juego. */ { int i, j;

14

// Etiquetar con una letra cada columna. printf (" "); for (j=0; j<COLUMNAS; j++) printf ("%c", ’A’+j); printf ("\n");

15 16 17 18 19

for (i=0; i<FILAS; i++) { printf ("%d ", i); // Etiqueta de cada fila. for (j=0; j<COLUMNAS; j++) printf ("%c", tablero[i][j]); printf ("\n"); }

20 21 22 23 24 25 26

}

27 28 29 30

int main(void) { char espacio[FILAS][COLUMNAS];

31

inicializa_tablero(espacio); muestra_tablero(espacio);

32 33 34

return 0;

35 36

}

El procedimiento muestra_tablero imprime, adem´as, del contenido del tablero, el nombre de las columnas y el n´ umero de las filas. Por cierto, hay una discrepancia entre el modo con que nos referimos a las casillas (mediante un d´ıgito y una letra) y el modo con el que lo hace el programa (mediante dos n´ umeros enteros). Cuando pidamos unas coordenadas al usuario lo haremos con una sentencia como ´esta: 5 No hemos usado el nombre espacio, sino tablero, con el u ´ nico objetivo de resaltar que el par´ ametro puede ser cualquier matriz (siempre que su dimensi´ on se ajuste a lo esperado), aunque nosotros s´ olo usaremos la matriz espacio como argumento. Si hubi´ esemos usado el mismo nombre, es probable que hubi´ esemos alimentado la confusi´ on entre par´ ametros y argumentos que experiment´ ais algunos.

176

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement