Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2015
jocaro jocaro is offline
Miembro
 
Registrado: sep 2011
Posts: 104
Poder: 13
jocaro Va por buen camino
Array dinámico bidimensional en procedimiento recursivo

Buenos días

A ver si alguien me puede ayudar

Si en un procedimiento recursivo defino una matriz dinámica bidimensional, ¿en cada recursión estaré creando una matríz dinámica bidimensional distinta?,
o todas apuntarán a la misma zona de memoria. En el caso de que el comportamiento sea éste último, como podria conseguir una matriz por cada ejecución
del procedimiento

Un ejemplo somero del código sería el siguiente:

Código Delphi [-]
// Se pasa un elemento de la matriz creada en el nivel de recursión desde el que se llama                                    
procedure TSDIAppForm.ProcedimientoRecursivo(Clave: Integer; Dato: Integer);                                
var

  iBucle: Integer;
  iEleMat: Integer;                                 // Elementos de la matriz
  mdHijos: array of array of integer;          // Matriz de elementos con hijos

begin

  iEleMat := 0

  // Bucle de carga de la matriz. En cada recursión podrá tener un tamaño diferente

  Tabla.Locate('ClaPad', Clave, []);

  while (Tabla.fieldByName('ClaPad').asinteger = Clave)
  begin
    iEleMat := iEleMat + 1;
    SetLength( mdHijos, iEleMat, 2 );
    mdHijos[ iEleMat - 1, 0 ] := Tabla.fieldByName('Clave').asinteger;
    mdHijos[ iEleMat - 1, 1 ] := Tabla.fieldByName('Clapad').asinteger;
  end;

  Tabla.Next;

 end;

  // Hacemos una recursión por cada uno de los elementos de la matriz en este nivel

  for iBucle := low(mdHijos) to high(mdhijos) do
  begin
    ProcedimientoRecursivo( mdHijos[ iBucle, 0 ], mdHijos[ iBucle, 1 ] );
  end;

end;

Gracias de antemano.

Última edición por jocaro fecha: 28-09-2015 a las 11:47:17. Razón: Detallar un poco mas la pregunta
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Array bidimensional dinámico harpo Varios 3 31-03-2015 15:11:17
Paso de Array Dinamico a Procedimiento por Referencia. eLYaN OOP 7 08-11-2008 23:40:39
Procedimiento recursivo Vlady SQL 0 05-06-2008 19:18:45
Liberar array bidimensional de botones Raze Varios 2 16-05-2006 13:45:14
pasar como parámetro un array bidimensional nsr048 Varios 2 08-11-2005 11:54:20


La franja horaria es GMT +2. Ahora son las 14:38:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi