Cita:
Empezado por Neftali
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
[-]
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;
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;
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.