Transposition de matrice

Résolu/Fermé
jephte the best - 18 févr. 2016 à 02:36
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 18 févr. 2016 à 04:19
Bonjour,
je veux effectuer une symétrie par rapport à la diagonale principale dans une matrice.


1 réponse

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 18/02/2016 à 04:31
Tu ne t'es pas cassé le cul.
Vite fait (fonctionne sous FreePascal)
program symmat;

const N= 10;
type row = array [1 .. N ] of integer;
type sqm = array [1 .. N ] of row;

procedure sym( var M: sqm);
var
   i, j, tmp : integer;
begin

   for i:=1 to N
      do
      for j:=i+1 to N
	 do
      begin
	 tmp := M[i][j];
	 M[i][j] := M[j][i];
	 M[j][i] := tmp;
      end;
end;

procedure display(var M : sqm);
var
   i, j : integer;
begin
   for i:=1 to N
      do
   begin
      for j:=1 to N
	 do
	 write(M[i][j]:6);
      writeln;
   end;
end;

var
   M1      :sqm;
   i,j: integer;
begin

   for i:=1 to N
      do
      for j:=1 to N
	 do
	 M1[i][j] := Random(100);
   display(M1);
   writeln;
   sym(M1);
   display(M1);
end.




A toi de transformer la procédure en fonction ( ou de la modifier selon tes besoins). On ne va pas tout faire à ta place.

Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
0