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 Q5K is
  5. -- Definindo tipos para a matriz
  6. type Matrix is array (1 .. 10, 1 .. 10) of Integer; -- Máximo de 10x10
  7. M, Mt : Matrix; -- Matrizes M e Mt
  8. N : Integer; -- Dimensão da matriz
  9.  
  10. begin
  11. -- Entrada da matriz M
  12. Put("Digite o tamanho da matriz (n x n): ");
  13. Get(N);
  14.  
  15. Put_Line("Digite os elementos da matriz M:");
  16. for I in 1 .. N loop
  17. for J in 1 .. N loop
  18. Put("Elemento (" & Integer'Image(I) & ", " & Integer'Image(J) & "): ");
  19. Get(M(I, J));
  20. end loop;
  21. end loop;
  22.  
  23. -- Calculando a matriz transposta Mt
  24. for I in 1 .. N loop
  25. for J in 1 .. N loop
  26. Mt(J, I) := M(I, J); -- Transpondo a matriz
  27. end loop;
  28. end loop;
  29.  
  30. -- Exibindo a matriz transposta Mt
  31. Put_Line("A matriz transposta Mt é:");
  32. for I in 1 .. N loop
  33. for J in 1 .. N loop
  34. Put(Integer'Image(Mt(I, J)) & " ");
  35. end loop;
  36. New_Line; -- Nova linha após cada linha da matriz
  37. end loop;
  38. end Q5K;
  39.  
Success #stdin #stdout 0s 5280KB
stdin
3
1
2
3
0
4
5
0
0
6
stdout
Digite o tamanho da matriz (n x n): Digite os elementos da matriz M:
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 transposta Mt é:
 1  0  0 
 2  4  0 
 3  5  6