Pascal/Turbo Pascal - Agrupar elementos matriz

 
Vista:

Agrupar elementos matriz

Publicado por jose (2 intervenciones) el 04/08/2007 00:21:49
hola k tal queria a ver si me podriais ayudar con un procedimiento que me ayude a agrupar los elementos iguales de las filas de una matriz.
Ejemplo:
1 2 3 2
2 2 4 2
1 3 2 3

asi quedaria despùes de agrupar:
2 2 3 1
2 2 2 4
3 3 1 2

a ver si me podeis dar alguna idea para hacer esto por que lo he intentado y no me sale luego si no me podeis ayudar os posteo mi codigo que no funciona jeje gracias!
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

RE:Agrupar elementos matriz

Publicado por Marcelo (8 intervenciones) el 04/08/2007 14:22:04
No entiendo bien a que llamas agrupar, ¿podrías explicarlo un poco mejor?

Saludos.
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

RE:Agrupar elementos matriz

Publicado por jose (2 intervenciones) el 04/08/2007 15:27:33
pues cuando digo agrupar me refiero a juntar los elementos iguales al principio de cada fila de manera k ,las cifras k sean distintas queden en las posiciones finales de las filas.
GRacias.

es decir:

1 2 3 2
el resultado seria:

2 2 3 1
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

RE:Agrupar elementos matriz

Publicado por Marcelo (4 intervenciones) el 04/08/2007 22:50:06
Ok, ya entendí.
Acá te dejo el código para agrupar una fila y en base a eso diseña el algoritmo para hacerlo en toda la matriz.

program agruparFila;

type tLinea = Array [1..5] of integer;

var Linea : tLinea;
i,j,elemento : integer;

procedure moverPrincipio (var L : tLista; pos : integer);
var k , aux : integer;
begin
aux := L[pos];
for k := pos downto 2 do
L[k] := L[k-1];
L[1] := aux;
end;

begin

for i := 1 to 5 do begin
write('Ingrese el elemento ' , i , ': ');
readln(Linea[i]);
end;

for i := 1 to 5 do begin
elemento := i;
for j := i+1 to 5 do
if Linea[elemento] = Linea[j] then begin
moverPrincipio (Linea,elemento);
moverPrincipio (Linea,j);
elemento := 1;
end;
end;

for i := 1 to 5 do
write(Linea[i] , ' ');

readln;

end.

Espero que sirva.
Saludos!
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

RE:Agrupar elementos matriz

Publicado por jose (2 intervenciones) el 04/08/2007 23:26:23
muxas gracias marcelo mañana te comento cuando lo pruebe, ojala y me saque de mi aprieto. gracias otra vez ;)
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