Documente Academic
Documente Profesional
Documente Cultură
Operatii cu Matrici
Atestat profesional de informatica
Candidai,
Ghidoveanu Mihai
Srcin Mihnea
ndrumtor,
Prof. Toader Ctlin
Contents
Meniul Principal
Ideea programului
Variabile folosite
Proceduri
Citire
Afisare
Adunare
Inmultire
Ridicarea la putere
Determinant
Iniializare
Permutari
Insumarea
4
5
5
Inversiuni
Meniul Principal
Meniul ofera utilizatorului 4 operatii pe care le poate efectua cu matrici , si a cincea
optiune pentru terminarea programului.
Ideea programului
Programul foloseste o structura Repeat care ii permite utilizatorului sa foloseasca
operatiile dorite de cate ori doreste. Programul se opreste cand utilizatorul va alege a
cincea optiune, de Terminare.
Fiecare dintre cele 4 operatii va cere utlizatorului valoarea a diverse variabile, in functie de
operatia ceruta.
Variabile folosite
Observaie: . Dat fiind ca unele operatii au nevoie de 2 matrici pentru a fi efectuate, este
nevoie , in anumite cazuri, de 2 variabile reprezentand aceeasi caracteristica a matricei,
una pentru prima matrice si una pentru cealalta.
Numarul de linii al matricilor : m ;
Numarul de coloane al matricilor : n,p ;
Puterea la care va fi ridicata matricea : p ;
Contor pentru parcurgerea matricilor pe linie : i ;
Contor pentru parcurgerea matricilor pe coloana : j ;
Optiunea aleasa : opt
Indicatorul matricei folosit la citirea acesteia : nu
De tip Byte
de tip Char
Proceduri
Programul foloseste diverse proceduri care se apeleaza in meniul principal pentru
indeplinirea operatiilor.
Citire
Procedura folosestei indicatorul nu pentru a afisa matricea care este citita in mod
curent.
Afisare
Dupa afisarea matricei rezultate , programul va reveni la meniul principal dupa apasarea
oricarei taste de catre utilizator, actiune realizata prin folosirea functiei readkey.
Adunare
Procedura trimite rezultatul adunarii a doua matrici in o a treia , pe care o afiseaza.
Inmultire
In urma inmultii a doua matrici, se observa ca elemntul c[i,j] al matricei rezultat este
format din suma inmultirilor elementului k de pe linia i a primei matrici cu elemntul k
coloana j din a doua matrice.
Exemplu :
)(
)(
b11 b 12
a11 a 12 a 13
a 11b 11+a 12b 21+a 13b 31 a 11b 12+ a 12b 23+ a 13b 32
b 21 b 22 =
a 21 a 22 a 23
a 21b 11+ a 22b 21+a 23b 31 a21b 12+a 22b 23+a 23b 32
b 31 b 33
=
=
a 1 kbk 1
()
3
(a 1 kbk 2)
a 2 kbk 1
()
(a 2 kbk 2)
Ridicarea la putere
Observam ca operatia de ridicare a unei matrici la puterea p consta in inmultirea matricei
cu ea insai de p ori.Astfel, folosind o structura repetitiva for cu p pasi, vom apela
procedura inmultirii pentru matricile A si B, unde B va fi mereu actualizat cu matricea
rezultata din ultima inmultire.
Exemplu: Avem de calculat
BA;
Se calculeaza A
B A
A3
;
=A*B.
=A*B;
Determinant
Programul calculeaza determinantul folosind formula generala, insumand produse ale
elementelor matricei, alese cate n prin generarea de permutari ale indicilor.
n
= a
i=1 i=1
i , p(i)
Iniializare
Determinantul se initializeaza cu produsul elementelor de pe diagonala principala, aceasta
reprezentand totodata si permutarea initiala : (1 2 3 4 .. n);
Permutari
Urmatoarea secventa de instructiuni va permuta elementele vectorului ,
interschimbandu-le pozitia pana cand nu se vor mai putea executa permutari, ultima
generata fiind ( n .. 4 3 2 1).
Insumarea
Semnul fiecarui produs este determinat de signatura permutarii. Semnul se determina in
functie de paritatea numarului de inversiuni ale permutarii, numar aflat cu ajutorul unei
funcii separate.
Inversiuni
Inversiunile unei permutari se calculeaza prin numararea , pentru fiecare element , a cate
elemente mai mici decat el se afla in dreapta lui.