ADA - matrices.

 
Vista:

matrices.

Publicado por WilmaForez (2 intervenciones) el 31/03/2007 14:30:24
Debo hacer un programa en el que se calcula de manera recursiva si una matriz es o no es simétrica. Tengo bastante claro como debo hacerlo.

Sin embargo no sé cómo hacer para comparar las columnas y filas sin tener que usar un loop. ¿Alguien sabe si se puede tratar una columna o linea entera?

Gracias por adelantado a quien me ayude.
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

matrices.

Publicado por WilmaForez (2 intervenciones) el 31/03/2007 18:17:11
Finalmente lo he hecho tal y como pongo a continuación. Sin embargo no estoy muy satisfecha con el resultado. Si alguien tiene alguna sugerencia para mejorarlo, se lo agradecería.

---paquete para definir el tipo---
package Motak is

type Matrize is array (Integer range <>, Integer range <>) of Integer;

end Motak;

----------------------
----------------------

with Motak;
use Motak;

function Matrize_Simetrikoa ( M : Matrize )
return Boolean is
type Linea is array (M'First..M'Last) of Integer;
Array1,
Array2 : Linea;
M2 : Matrize (M'First (1) + 1 .. M'Last (1), M'First (2) + 1 .. M'Last (2));

begin
for I in M'range loop
Array1(I):=M(M'First(1),I);
Array2 (I):=M(I,M'First(2));
end loop;


if M'Length = 0 then
return True;


elsif Array1 /= Array2 then
return False;


else
for I in M'First(1)+1..M'Last(2) loop
for I in M'First(2)+1.. M'Last(2) loop
M2(I-1,I-1):= M(I,I);
end loop;
end loop;

return Matrize_Simetrikoa (M2);

end if;

end Matrize_Simetrikoa;
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