ADA - Ordenar_Filas_Matriz

 
Vista:

Ordenar_Filas_Matriz

Publicado por Estudiante (1 intervención) el 22/01/2011 21:47:32
Alguien sabe como se ordena las filas de una matriz?
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
Imágen de perfil de Alejandro

Ordenamiento de filas de una matriz en ADA

Publicado por Alejandro (155 intervenciones) el 03/07/2023 16:28:20
Para ordenar las filas de una matriz en ADA, puedes seguir el siguiente enfoque utilizando el algoritmo de ordenamiento por selección:

1. Define un tipo de matriz en ADA. Por ejemplo, si tu matriz es de enteros y tiene un tamaño fijo, puedes usar el siguiente código:

1
type Matriz is array(1..N, 1..M) of Integer;  -- Donde N y M son los tamaños de la matriz

2. Implementa una función o procedimiento para intercambiar dos filas de la matriz. Aquí hay un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
procedure Intercambiar_Filas(Matriz: in out Matriz; Fila1, Fila2: Integer) is
   Temporal: Matriz(1..M);
begin
   Temporal := Matriz(Fila1);
   Matriz(Fila1) := Matriz(Fila2);
   Matriz(Fila2) := Temporal;
end Intercambiar_Filas;

3. Implementa una función o procedimiento para ordenar las filas de la matriz utilizando el algoritmo de ordenamiento por selección. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure Ordenar_Filas(Matriz: in out Matriz) is
   Fila_Menor: Integer;
begin
   for i in 1..N-1 loop
      Fila_Menor := i;
      for j in i+1..N loop
         if Matriz(j)(1) < Matriz(Fila_Menor)(1) then
            Fila_Menor := j;
         end if;
      end loop;
      if Fila_Menor /= i then
         Intercambiar_Filas(Matriz, i, Fila_Menor);
      end if;
   end loop;
end Ordenar_Filas;

Este código ordena las filas de la matriz en función del primer elemento de cada fila. Puedes ajustar el criterio de ordenamiento según tus necesidades.

4. Ahora puedes utilizar la función `Ordenar_Filas` para ordenar tu matriz. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
declare
   Mi_Matriz: Matriz := ((4, 2, 5),
                         (1, 7, 3),
                         (9, 6, 8));
begin
   Ordenar_Filas(Mi_Matriz);
 
   -- Imprimir la matriz ordenada
   for i in 1..N loop
      for j in 1..M loop
         Put(Mi_Matriz(i)(j)'Image & " "');
      end loop;
      New_Line;
   end loop;
end;

Este código ordenará las filas de la matriz y luego imprimirá la matriz ordenada en la salida.

Puedes utilizar esta solución como base para ordenar las filas de cualquier matriz en ADA. Recuerda ajustar el tamaño y el tipo de matriz según tus necesidades.
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