ayuda con eliminar ocurrencias
Publicado por seba (1 intervención) el 21/10/2016 01:21:47
Hola, nececito ayuda en un modulo que recibe un vector, su dimension logica (o el valor hasta donde debe recorrer el vector), y un elemento y lo que debe hacer es eliminar del vector el elemento que recibe junto con todas sus ocurrencias (todas las veces que aparece). El modulo es el siguiente:
mi problema, es que el modulo borra el elemento, siempre que no este en posiciones consecutivas, osea, si tengo 5,3,78,23,4,6,6,75 y quiero borrar el 6, solo va a borrar el primer 6, ya que el siguiente 6 consecutivo lo mueve a la posicion i(o la posicion j, es lo mismo) y la proxima vez que evalua el if, pregunta por i+1, es decir que el 6 que estaba en la siguiente posicion despues del primer 6 que encontro, ya no lo borra por que nunca lo evalua. Alguien se le ocurre como puedo hacer para que el modulo me borre todas las ocurrencias del elemento dentro del vector? Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
Procedure borrarocurrencias ( var v:vector; var dl :integer;n:integer);
var
i,j:integer;
begin
for i:=1 to dl do begin
if v[i]=n then begin
for j:=i to (dL-1) do
v[j]:= v[j+1];
dL:= dL - 1;
end;
end;
end;
mi problema, es que el modulo borra el elemento, siempre que no este en posiciones consecutivas, osea, si tengo 5,3,78,23,4,6,6,75 y quiero borrar el 6, solo va a borrar el primer 6, ya que el siguiente 6 consecutivo lo mueve a la posicion i(o la posicion j, es lo mismo) y la proxima vez que evalua el if, pregunta por i+1, es decir que el 6 que estaba en la siguiente posicion despues del primer 6 que encontro, ya no lo borra por que nunca lo evalua. Alguien se le ocurre como puedo hacer para que el modulo me borre todas las ocurrencias del elemento dentro del vector? Gracias.
Valora esta pregunta


0