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 Q5L is
  5. -- Definindo tipos para as matrizes
  6. type Matrix is array (1 .. 10, 1 .. 10) of Integer; -- Máximo de 10x10
  7. A, B, C : Matrix; -- Matrizes A, B e C
  8. M, N, P, Q : Integer; -- Dimensões das matrizes
  9.  
  10. begin
  11. -- Entrada da matriz A
  12. Put("Digite o número de linhas da matriz A (m): ");
  13. Get(M);
  14. Put("Digite o número de colunas da matriz A (n): ");
  15. Get(N);
  16.  
  17. Put_Line("Digite os elementos da matriz A:");
  18. for I in 1 .. M loop
  19. for J in 1 .. N loop
  20. Put("Elemento (" & Integer'Image(I) & ", " & Integer'Image(J) & "): ");
  21. Get(A(I, J));
  22. end loop;
  23. end loop;
  24.  
  25. -- Entrada da matriz B
  26. Put("Digite o número de linhas da matriz B (p): ");
  27. Get(P);
  28. Put("Digite o número de colunas da matriz B (q): ");
  29. Get(Q);
  30.  
  31. Put_Line("Digite os elementos da matriz B:");
  32. for I in 1 .. P loop
  33. for J in 1 .. Q loop
  34. Put("Elemento (" & Integer'Image(I) & ", " & Integer'Image(J) & "): ");
  35. Get(B(I, J));
  36. end loop;
  37. end loop;
  38.  
  39. -- Inicializando a matriz C com zeros
  40. for I in 1 .. M loop
  41. for J in 1 .. Q loop
  42. C(I, J) := 0;
  43. end loop;
  44. end loop;
  45.  
  46. -- Calculando a matriz C = A * B
  47. for I in 1 .. M loop
  48. for J in 1 .. Q loop
  49. for K in 1 .. N loop
  50. -- Considerando que elementos fora do tamanho da matriz são 0
  51. C(I, J) := C(I, J) + A(I, K) * (if K <= P then B(K, J) else 0);
  52. end loop;
  53. end loop;
  54. end loop;
  55.  
  56. -- Exibindo a matriz C
  57. Put_Line("A matriz C = A * B é:");
  58. for I in 1 .. M loop
  59. for J in 1 .. Q loop
  60. Put(Integer'Image(C(I, J)) & " ");
  61. end loop;
  62. New_Line; -- Nova linha após cada linha da matriz
  63. end loop;
  64. end Q5L;
  65.  
Success #stdin #stdout 0s 5288KB
stdin
2
2
3
5
6
7
2
2
1
0
0
1

stdout
Digite o número de linhas da matriz A (m): Digite o número de colunas da matriz A (n): Digite os elementos da matriz A:
Elemento ( 1,  1): Elemento ( 1,  2): Elemento ( 2,  1): Elemento ( 2,  2): Digite o número de linhas da matriz B (p): Digite o número de colunas da matriz B (q): Digite os elementos da matriz B:
Elemento ( 1,  1): Elemento ( 1,  2): Elemento ( 2,  1): Elemento ( 2,  2): A matriz C = A * B é:
 3  5 
 6  7