fork download
  1. with Ada.Text_IO; use Ada.Text_IO;
  2. with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
  3.  
  4. procedure Q5N is
  5. -- Definindo o tipo para a matriz
  6. type Matrix is array (1 .. 3, 1 .. 3) of Integer; -- Matrizes 3x3
  7. A, B, C : Matrix; -- Matrizes A, B e C
  8. Is_Inverse : Boolean := True; -- Flag para verificar se são inversas
  9.  
  10. begin
  11. -- Entrada da matriz A
  12. Put_Line("Digite os elementos da matriz A (3x3):");
  13. for I in 1 .. 3 loop
  14. for J in 1 .. 3 loop
  15. Put("Elemento (" & Integer'Image(I) & ", " & Integer'Image(J) & "): ");
  16. Get(A(I, J));
  17. end loop;
  18. end loop;
  19.  
  20. -- Entrada da matriz B
  21. Put_Line("Digite os elementos da matriz B (3x3):");
  22. for I in 1 .. 3 loop
  23. for J in 1 .. 3 loop
  24. Put("Elemento (" & Integer'Image(I) & ", " & Integer'Image(J) & "): ");
  25. Get(B(I, J));
  26. end loop;
  27. end loop;
  28.  
  29. -- Calculando a multiplicação C = A * B
  30. for I in 1 .. 3 loop
  31. for J in 1 .. 3 loop
  32. C(I, J) := 0; -- Inicializando C
  33. for K in 1 .. 3 loop
  34. C(I, J) := C(I, J) + A(I, K) * B(K, J);
  35. end loop;
  36. end loop;
  37. end loop;
  38.  
  39. -- Verificando se C é a matriz identidade
  40. for I in 1 .. 3 loop
  41. for J in 1 .. 3 loop
  42. if I = J then
  43. if C(I, J) /= 1 then
  44. Is_Inverse := False;
  45. end if;
  46. else
  47. if C(I, J) /= 0 then
  48. Is_Inverse := False;
  49. end if;
  50. end if;
  51. end loop;
  52. end loop;
  53.  
  54. -- Resultado
  55. if Is_Inverse then
  56. Put_Line("A matriz B é a inversa da matriz A.");
  57. else
  58. Put_Line("A matriz B não é a inversa da matriz A.");
  59. end if;
  60. end Q5N;
  61.  
Success #stdin #stdout 0.01s 5284KB
stdin
1
0
1
-1
3
1
0
1
1
2
1
-3
1
1
-2
-1
-1
3
stdout
Digite os elementos da matriz A (3x3):
Elemento ( 1,  1): Elemento ( 1,  2): Elemento ( 1,  3): Elemento ( 2,  1): Elemento ( 2,  2): Elemento ( 2,  3): Elemento ( 3,  1): Elemento ( 3,  2): Elemento ( 3,  3): Digite os elementos da matriz B (3x3):
Elemento ( 1,  1): Elemento ( 1,  2): Elemento ( 1,  3): Elemento ( 2,  1): Elemento ( 2,  2): Elemento ( 2,  3): Elemento ( 3,  1): Elemento ( 3,  2): Elemento ( 3,  3): A matriz B é a inversa da matriz A.