Pascal/Turbo Pascal - Ayuda con procedimiento usando Array con tope

 
Vista:
sin imagen de perfil

Ayuda con procedimiento usando Array con tope

Publicado por Asaroth (1 intervención) el 09/11/2014 11:30:36
Hola, estoy terminando un proyecto en Freepascal y agradecería que alguien me pudiera dar una mano para poder terminarlo pues me queda el último punto para poder lograrlo.

Si yo tengo las siguientes declaraciones:
http://fotos.subefotos.com/9f82a2e5c652ce64624fb1a856074cb8o.jpg

y quisiera implementar en base a eso el siguiente procedimiento:
http://fotos.subefotos.com/10168984ca574e2d105b98515332b262o.jpg

¿cómo podría hacerlo? ya intenté varias cosas pero no me sale, no se como implementar el array con tope, no me queda, intenté haciendo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for i := 1 to MaxTablero do
	for j := 1 to MaxTablero do
	if Tablero[i,j].vacia = true then
	begin
 
	if (libres.tope) < MaxTope then
      with libres do
	  begin
       libres.tope := libres.tope +1;
	   libres.info[i].fila := i;
	   libres.info[i].columna:= j;
 
	   end;
 
 	  end;

pero me da error 201 en tiempo de ejecución, que podría ser? alguien tiene una forma mejor de hacer esto?.
mi idea era, recorrer la matriz del tablero y, si hay una celda vacía, y si es que el tope no alcanza el tope maximo, agregarlo. El procedimiento debe retornar una lista con los i,j (fila y la columna respectivamente) donde se encuentra la celda vacia. Las unicas limitación es que no puedo alterar las declaraciones (primera foto) ni tampoco el cabezal del procedimiento y no puedo usar facilidades que no formen parte del estándar como uses, crlscr, gotoxy, crt, readkey, longint, string o break, etc. Agradecería alguna ayuda.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con procedimiento usando Array con tope

Publicado por Diego (1 intervención) el 10/11/2014 14:38:29
Me parece que aca:
libres.info[i].fila := i;

no podes usar la i en libres.info[i]
simplemente porque la i es la fila y va de 1 a maxtablero
necesitas otra variable que vaya de 1 hasta maxtope

creo que es asi, no se yo recien lo estoy haciendo a este procedimiento... intentando hacerlo, porque no habia tenido tiempo, es lo unico que me falta para entregar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar