Home Exercices Les matrices Diagonales de la matrice
Bookmark and Share

Liens sponsorisés

Diagonales de la matrice Print E-mail
Written by Administrator   
Monday, 11 January 2010 20:03
calculer la somme des element de premier diagonal et la 2eme diagonal puis le transposé d'une matrice en utilisant un methode recursif:


program som_trans;
uses wincrt;
type
     mat=array[1..10,1..10] of integer;
var n,j,i:integer; m:mat;
{*******************************************}
procedure remlissage(var m:mat;n:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
begin
write('M[',i,',',j,']=');
readln (M[i,j]);
end;
end;
 {**********************************************}
function som_diag1(m:mat; n,i:integer):integer;
 begin
if i=N then som_diag1:=m[n,n]
else
som_diag1:=m[i,i]+som_diag1(m,n,i+1);
end;
{*****************************************}
function som_diag2(m:mat; n,i:integer):integer;
 
begin
if i=N then som_diag2:=m[n,1]
else
som_diag2:=m[i,n-i+1]+som_diag2(m,n,i+1);
end;  

{transposé da la matrice}
procedure trans(var M:mat;n:integer; var i,j:integer);
var  aux:integer;
begin
if i<=n then
begin
if j<=i-1 then
    begin
    aux:=m[i,j];
    m[i,j]:=m[j,i];
    m[j,i]:=aux;
    j:=j+1;
    trans(m,n,i,j);
    end;
    j:=1;
    i:=i+1;
    trans(m,n,i,j);
end;
   
end;

{********************************************}

begin
write('nombre des lignes= '); readln(n);
remlissage(m,n);
i:=1;
writeln('somme diago1  = ', som_diag1(m,n,i));
i:=1;
writeln('somme diago2 = ',som_diag2(m,n,i));
i:=1; j:=1;
trans(M,n,i,j);
{affichage de la matrice}
for i:=1 to n do
   begin
   for j:=1 to n do
     write(m[i,j],'  ');
   writeln;
   end;

end.
 

 

Liens sponsorisés