C
Se citeste n si k, si o matrice - sa se determine AkSe citeste n si k, si o matrice A=a[i,j]nxn patratica. Sa se determine Ak. Analiza problemei - elaborarea algoritmului: -algoritmul consta de fapt in calcularea elementelor matricii produs -elementul c[i,j] =suma(k=1..n) a[i,k]*b[i,k] . -Ak=A*A*..*A -matricea fiind patratica atunci cand k=2 termenii b[i,k]=a[i,k],iar cand k>2 termenii b[i,k] pastreaza elementele produsului anterior A*A, folosim pentru aceasta atribuire procedura aribuire. program matrice1; type matrice= array[1..3,1..3] of real; var a,b,p: matrice; n,i,j,k,l:word; procedure atribuire(a:matrice); begin for i:=1 to n do for j:=1 to n do b[i,j]:=a[i,j]; end; procedure inmultire ; begin for i:=1 to n do for j:=1 to n do p[i,j]:=0; for i:=1 to n do for j:=1 to n do for l:=1 to n do p[i,j]:=p[i,j]+a[i,l]*b[l,j]; end; BEGIN write('Introduceti puterea lui A ,k=');readln(k); write('Introduceti dimensiunea matricii n=');readln(n); for i:=1 to n do begin for j:=1 to n do begin write('a[',i,',',j,']='); readln(a[i,j]); end; writeln; end; if k=1 then for i:=1 to n do for j:=1 to n do p[i,j]:=a[i,j] else if k=2 then begin atribuire(a); inmultire; end else begin atribuire(a); inmultire; k:=k-1; while k>1 do begin atribuire(p); inmultire; k:=k-1; end; end ; for i:=1 to n do begin for j:=1 to n do write('p[',i,',',j,']=',p[i,j]:6:2,' '); readln; end; readln; END.
|