proiect determinant sarrus

Upload: mihaela-chercula

Post on 13-Jul-2015

123 views

Category:

Documents


1 download

TRANSCRIPT

Liceul Teoretic Jean Bart Sulina

Calcul determinant de ordin 3 prin regula lui SarrusAtestat informatic

Profesor ndrumtor: Dobre Ana-Maria

Elev: Clasa a XII-a A

2008 CUPRINS1.

Limbajul Pascal................................................................................... 3

2. Determinant de ordin 3........................................................................ 4 3. Codul programului............................................................................... 4 4. Explicatia programului........................................................................ 8 Bibliografie........................................................................................ 10

2

1. Limbajul PascalPascal este un limbaj de programare dezvoltat n anul 1970 de Niklaus Wirth ca un exemplu de limbaj potrivit pentru programarea structurat. Limbajul de programare Pascal este bazat pe limbajul de programare ALGOL i a fost numit n onoarea matematicianului i filozofului Blaise Pascal. Wirth a mai dezvoltat alte dou limbaje de programare asemntoare cu Pascal: Modula-2 si Oberon. Primul compilator Pascal a fost construit n Zurich pentru computerul CDC 6000 i a devenit operaional n 1970. n 1980 Anders Hejlsberg a programat compilatorul Blue Label Pascal pentru Nascom2. O reimplementare a acestui compilator pentru PC-urile IBM a fost fcuta sub numele Compas Pascal i PolyPascal nainte ca acesta s fie achiziionat de Borland. Redenumit Turbo Pascal a devenit foarte popular, n mare parte datorit strategiei agresive de preuri. n 1986 Anders a implementat Turbo Pascal i pe Macintosh i a introdus extensiile Apple's Object Pascal n Turbo Pascal. Aceste extensii au fost atunci adugate i n versiunea pentru PC a Turbo Pascal version 5.5. Compilatorul Borland a avut o mare influen asupra comunitii programatorilor Pascal care ncepuse s se concentreze n special asupra IBM PC n anii 80. Au fost importate o serie de concepte din C pentru a permite programatorilor Pascal sa foloseasca direct API-ul sistemelor de operare din familia Windows (API=Application programming interface). Aceste concepte includ pointeri aritmetici, functii pointeri, etc. Oricum, Borland a decis mai trziu c vroiau un limbaj mai elaborat bazat pe programarea orientat pe obiecte, i au nceput Delphi folosind standardul Object Pascal propus de Apple ca baz. Borland iniial denumise acest nou limbaj Object Pascal, dar mai trziu l-au schimbat n Delphi Programming Language. Turbo Pascal i ali derivai cu concepte de unituri sau module sunt limbaje modulare. Super Pascal a fost o alt variant, ce propunea multiple imbuntiri, din pcate proiectul nu a fost continuat. Astzi, exist i compilatoare gratis, un exemplu este Free Pascal.3

2. Determinant de ordin 3Ne propunem s scriem un program ce va calcula determinantul unei matrice de ordin 3 cu ajutorul regulii lui Sarrus. Acesta va avea i posibilitatea calculrii determinanilor matricelor de ordin inferior.

3. Codul programuluiprogram determinant; type adr=^cerc; cerc=record info:byte; leg:adr; end; var matr:array[1..3,1..3] of integer; n,i,j:byte; cap,sf:adr; det:longint;

procedure creare_aux(var cap,sf:adr; nr:byte); var crt:adr; begin new(crt); crt^.info:=nr; if cap=nil then cap:=crt else sf^.leg:=crt; crt^.leg:=nil; sf:=crt; end; procedure grad_unu; begin4

write('a[1,1]= '); readln(matr[1,1]); writeln; writeln(' det M = ',matr[1,1]); end; procedure grad_doi; begin for i:=1 to 2 do for j:=1 to 2 do begin write('a[',i,',',j,']= '); readln(matr[i,j]); end; det:=matr[1,1]*matr[2,2] - matr[2,1]*matr[1,2]; writeln; writeln(' det M = ',det); end; procedure initializare_matr(n:byte); begin writeln; for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']= '); readln(matr[i,j]); end; end; procedure afisare_matr(n:byte); begin writeln; for i:=1 to n do begin write('| '); for j:=1 to n do write(matr[i,j],' '); writeln('|'); end;5

end; procedure calcul_determinant_3(cap:adr; nr:byte); var x:longint; aux:adr; begin for i:=1 to nr do begin x:=1; aux:=cap; for j:=1 to nr do begin x:=x*matr[aux^.info,j]; aux:=aux^.leg; end; det:=det + x; cap:=cap^.leg; end; for i:=1 to nr do begin x:=1; aux:=cap; for j:=nr downto 1 do begin x:=x*matr[aux^.info,j]; aux:=aux^.leg; end; det:=det - x; cap:=cap^.leg; end; end; begin writeln('CALCUL DETERMINANT':48); writeln; write('Dati ordinul matricei(n