Sunteți pe pagina 1din 5

Profesor coorodonator: Iulian Nastac Asistent coordonator: Mihai Ilie

PROIECT PROGRAMAREA CALCULATOARELOR

Pauna Tiberiu Grupa: 411E An universitar: 2013-2014

Enuntul problemei: Fie o matrice cu n linii si n coloane. Calculati determinantul matricei de ordin n. Mod de rezolvare: In functia main vom citi de la tastatura si vom afisa determinantul matricei. In subprogramul determinant vom calcula determinantul matricei a folosind REGULA LUI SARRUS si PROPRIETATILE DETERMINANTILOR.
Se defineste n continuare determinantul de ordin n prin recuren cu ajutorul determinanilor de ordin n 1. Pentru aceasta sunt necesare unele precizri.

Fie A= ptratice

. determinantul matricii de ordin n 1 obinut prin suprimarea liniei i coloanei

Se numete minor asociat elementului din matricea . Se noteaz acest minor prin sau

Se numete complement algebric al elementului numrul Exponentul coloanei . al lui (1) este suma dintre numrul liniei .

pe care se afl

Determinantul matricii A= de ordin n este suma produselor elementelor din prima linie cu complemenii lor algebrici adic :

In problema ne vom folosi si de algoritmul de recursivitate ca sa rezolvam si determinantul unei matrici de ordin mai mare de 4.

CODUL SURSA:
#include<stdio.h> #include<conio.h> #include<stdio.h> int a[20][20],n; int determinant(int a[20][20],int n); int main() { inti,j; printf("\nIntroducetiordinulmatricei: "); scanf("%d",&n); printf("\nIntroducetielementelematricei: \n"); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { scanf("%d",&a[i][j]); } } printf("\n Matriceanoastraeste :\n"); for(i=1;i<=n;i++) { printf("\n"); for(j=1;j<=n;j++) { printf("\t%d \t",a[i][j]); } } printf("\n\n"); printf("\n Determinantulmatriceieste %d .",determinant(a,n)); getch(); } int determinant(int a[20][20],int n) { intpr,c[20],d=0,b[20][20],j,p,q,t; if(n==1){d=a[1][1];return(d);} if(n==2) { d=0; d=(a[1][1]*a[2][2])-(a[1][2]*a[2][1]);

return(d); } else { for(j=1;j<=n;j++) { int r=1,s=1; for(p=1;p<=n;p++) { for(q=1;q<=n;q++) { if(p!=1&&q!=j) { b[r][s]=a[p][q]; s++; if(s>n-1) { r++; s=1; } } } } for(t=1,pr=1;t<=(1+j);t++) pr=(-1)*pr; c[j]=pr*determinant(b,n-1); } for(j=1,d=0;j<=n;j++) { d=d+(a[1][j]*c[j]); } return(d); } }