Ver Mensaje Individual
  #3  
Antiguo 16-11-2017
Aszael Aszael is offline
Registrado
 
Registrado: nov 2017
Posts: 7
Reputación: 0
Aszael Va por buen camino
Post

Cita:
Empezado por Neftali Ver Mensaje
Se trata al final de modificar ese procemiento para que admita un parámetro de tipo array. De esa forma funcionará con todos los arrays (siempre que sean similares).

Haz pruebas y si no te sale comenta lo que has hecho aquí y iremos ayudándote.
¿Te refieres a hacer esto? No pude ir ni para atrás ni para adelante, mi arreglo se desbordaba, falta de conocimiento debo decir:
Código Delphi [-]
procedure Vector.ordenarvector(elem:array of integer; dim: integer);
Hum, me falto decir que quería el mismo procedimiento para cada arreglo, y cada arreglo tiene su propio botón. No buscaba que con un solo botón se me ordenaran todos mis arreglos sino, solo los que yo quisiera. Encontré otra manera, bueno, al menos funciona -llorando por dentro-:

Cree dos procedimientos más y luego desde el programa principal hago la llamada:
Código Delphi [-]
//Unidad donde va la clase...
procedure Vector.copia(num:integer);
begin
  case num of
    1: for t:=1 to getDim(1) do
       x[t]:=getElem(t,1);
    2: for t:=1 to getDim(2) do
       x[t]:=getElem(t,2);
  end;
end;

procedure Vector.copiafinal(num: integer);
begin
  case num of
    1: for t:=1 to getDim(1) do
       elem1[t]:=x[t];
    2: for t:=1 to getDim(2) do
       elem2[t]:=x[t];
  end;
end; 

procedure Vector.ordenarvector(dim: integer);
var c,m:integer;
begin
  for t:=1 to dim do begin
    c:=1;
    repeat
      if (x[t]>x[t+c]) and (x[t+c]>0)then begin
        m:=x[t];
        for i:=t+c to t+c do
          x[t]:=x[t+c];
        x[t+c]:=m
      end else
      c:=c+1;
    until c=dim;
  end;
end;
//Fin unidad.               

//Programa principal...
procedure TP2.B1OrdenarClick(Sender: TObject);
begin
  v.copia(1);
  v.ordenarvector(v.getDim(1));
  v.copiafinal(1);
  ActualizarSG1;
end;  

procedure TP2.B2OrdenarClick(Sender: TObject);
begin
  v.copia(2);
  v.ordenarvector(v.getDim(2));
  v.copiafinal(2);
  ActualizarSG2;
end; 
//Fin programa principal.
Lo hago de esta manera para darle independencia a cada arreglo y que cuando haga una operación, el arreglo 2 o 3 no se una al 1 y viceversa.

Cómo habrás notado, estoy en pañales, trato de aprender, pero "¿arreglos en parámetros?" No, aún no he visto a fondo este tema. Te agradezco por tu tiempo y si tienes algún consejo para hacer más pequeño todo este código, o para no darle tantas vueltas al asunto, estoy más que dispuesto a leerte, gracias.
Responder Con Cita