Hola Fernand0
Veras, estoy haciendo un paquete para hacer cálculo de matrices y en una de las funciones en las que se calcula el determinante de una matriz quiero evitar que si es cero aparezca un error, sino que a través de una excepción de la solución cero.
Este es parte del package:
with ada.exceptions;
Package Body Matrices Is
...
Function Determinante(A:In Matriz) Return Integer Is
I,J,L,Suma,Det:Integer:=0;
Begin
For I In 1..3 Loop
For J In 1..3 Loop
L:=Minimo(I,J);
Suma:=A(I,J);
For K In 1..L-1 Loop
Suma:=Suma-A(I,K)*A(K,J);
End Loop;
If I>J Then
Suma:=Suma/A(J,J);
End If;
End Loop;
End Loop;
Det:=1;
For I In 1..3 Loop
Det:=Det*A(I,I);
End Loop;
return det;
End Determinante;
...
End Matrices;
He intentado poner la excepción dentro de la función determinante así:
..
return det;
exception
when constraint_error => put("0");
end determinante;
Pero entonces salta un program error, y poner la excepción fuera tampoco puedo porque no tiene un cuerpo y la excepción la tengo que poner después del begin.
¿Que hago mal?
Muchas gracias