You are on page 1of 10

JAVNA USTANOVA GIMNAZIJA OBALA SARAJEVO

LAMIJA SALIHAGIC, RIAD CARDAKOVIC

IZRAČUN DETERMINANTE MATRICE 3X3 POMOĆU


SARRUSOVOG PRAVILA

MATURSKI RAD
SARAJEVO, MAJ 2022

1
Javna ustanova GIMNAZIJA OBALA Sarajevo

MATURSKI RAD IZ PROGRAMIRANJA


IZRAČUN DETERMINANTE MATRICE 3X3
POMOĆU SARRUSOVOG PRAVILA

MENTOR UCENIK
Žutić Sanela, prof. Salihagić Lamija
Riad Čardaković II5

Sarajevo, maj 2022


2
SADRŽAJ

1. KORICA RADA
2. NASLOVNA STRANA
3. SADRŽAJ
4. UVOD
5. MATEMATIČKA ANALIZA
6. ULAZNI I IZLAZNI DIO KODA
7. DIZAJN
8. PRIKAZ ZADATKA
9. PRIKAZ ZADATKA
10. ANALIZA I TEST ZADATKA

3
UVOD

U ovom radu ćemo se upoznati sa Sarrusovim pravilom za izračun matrice 3x3. Ona se
najčešće koristi u programiranju te nam omogućuje brzo rješavanje 3x3 matrice kao i
izračunavanje njene determinante. Osim teoretskog dijela upoznat ćemo se sa primjerom
zadatka koji koristi isto pravilo za rješavanje matrice i determinante iste te matrice. Također
ćemo imati algoritamski predstavljen taj zadatak kao i uz pomoć pseudo koda. Nakon toga
ćemo izvršiti analizu koda i pokazati sliku na kojoj se nalazi završen program i kako on
izgleda kada se pokrene.

4
Analiza Sarrusovog pravila

Sarrusovo pravilo ili Sarrusova šema je metod i menorizaciona šema za izračunavanje


determinante matrice dimenzija 3×3. Naziv je dobila po francuskom matematičaru Pierreu
Frédéricu Sarrusu. Primjer tog koda možemo vidjeti na sljedećem primjeru matrice 3x3:

a11 a 12 a13
M = a21 a 22 a23
a31 a 32 a33

Prepišu se prve dvije kolone matrice iza treće kolone, tako da na kraju dobijete pet kolona u
redu, kao na slici desno. Tada se saberu proizvodi sa dijagonala koje idu od vrha ka dnu
(pune), a oduzmu proizvodi sa dijagonala koje idu od dna ka vrhu (isprekidane). Ovo daje:

a11 a 12 a13
M = a21 a 22 a23 =a 11 a 22 a 23+a 12 a 23 a 31−a 31 a 22 a13 – a 32 a 23 a11−a 33 a 21 a 12
a31 a 32 a33
Slična šema, bazirana na dijagonala, funkcioniše i za matrice dimenzija 2x2:

| |
M = a 11 a 12 =a 11 a 22−a 21 a 12
a 21 a 22

I jedno i drugu su posebni slučajevi Leibnizove formule, koja, međutim, ne pruža iste
memorizacione šeme za veće matrice.

5
Ulazni dio koda:

int main()
{
int matrica[3][3];
int determinanta = 1231;
cout << "\nUnesite elemente matrice: "<< endl;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cin >> matrica[i][j]; //ovdje je matrica formirana
}

Izlazni dio koda:

cout << "Matrica s dodatim kolonama: \n";


for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << matrica[i][j] << " ";
}
cout << "| " << matrica[i][0] << " " << matrica[i][1] << "\n";
}

6
DIZAJN

Algritam pseudo kod

POČETAK Početak programa.

a11, a12, a13 Unosimo 9 članova matrice.


a21, a22, a23
a31, a32, a33

Formiramo matricu
for (int i = 0; i < 3; i++) Nakon formiranja iste uz pomoć
{ Sarrusovog pravila izračunamo
for (int j = 0; j < 3; j++) determinantu te joj damo ime
{
cin >> matrica[i][j];
determinanta.

Ispisujemo matricu zajedno sa


cout << "Determinanta 3x3 zadane determinantom.
matrice je: " << determinanta;

Kraj programa.
KRAJ

PRIKAZ ZADATKA

7
using namespace std;

int main()
{
int matrica[3][3]; //integrisali smo matricu dimenzija 3x3
int prvaPozitivnaDijagonala = 0;
int drugaPozitivnaDijagonala = 0;
int trecaPozitivnaDijagonala = 0;
int prvaNegativnaDijagonala = 0;
int drugaNegativnaDijagonala = 0;
int trecaNegativnaDijagonala = 0;
int determinanta = 1231;
cout << "Elementi matrice se unose broj pa razmak ili enter. Matrica je dimenzija 3x3, zato
je potrebno unijeti 9 cjebrojnih brojeva.";
cout << "\nPrimjer: 1 2 3 4 5 6 7 8 9";
cout << "\nUnesite elemente matrice: "<< endl;
for (int i = 0; i < 3; i++) //upisujemo 3 clana po duzini matrice
{
for (int j = 0; j < 3; j++) //upisujemo 3 clana po visini matrice
{

cin >> matrica[i][j]; //ovdje je matrica formirana


}
}
cout << "Matrica s dodatim kolonama: \n"; //od ove linije do linije 34 nam program ispisuje
elemente matrice
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << matrica[i][j] << " ";

8
}
cout << "| " << matrica[i][0] << " " << matrica[i][1] << "\n";
}

prvaPozitivnaDijagonala = matrica[0][0] * matrica[1][1] * matrica[2][2];


//od ove pa sve do 42 linije koda program nam izracunava sve elemente matrice
drugaPozitivnaDijagonala = matrica[0][1] * matrica[1][2] * matrica[2][0];
trecaPozitivnaDijagonala = matrica[0][2] * matrica[1][0] * matrica[2][1];

prvaNegativnaDijagonala = matrica[2][0] * matrica[1][1] * matrica[0][2];


drugaNegativnaDijagonala = matrica[2][1] * matrica[1][2] * matrica[0][0];
trecaNegativnaDijagonala = matrica[2][2] * matrica[1][0] * matrica[0][1];

determinanta = (prvaPozitivnaDijagonala + drugaPozitivnaDijagonala +


trecaPozitivnaDijagonala) - (prvaNegativnaDijagonala + drugaNegativnaDijagonala +
trecaNegativnaDijagonala);
//U ovoj liniji program nam izracunava determinantu sabiranjem I oduzimanjem svih racuna
od linije koda 36 do 42
cout << "Determinanta 3x3 zadane matrice je: " << determinanta;
//ovdje nam program ispisuje determinantu izracunatu u 44 liniji
return 0; //kraj koda
}

9
Testiranje
Trestira se zadatak iz analize

Zadatak je u potpunosti izvršen pravilno, bez greške. Možemo vidjeti sve dijelove zadatka,
koristeći I sam primjer koji nam je dat u kodu, a to je upisivanje brojeva od 1 do 9. Zadatak je
ispisao matricu I izračunao determinantu. Samim time zadatak je izvršen I nema grešaka I
najasnoća, u slučaju da je neki dio koda nejasan, u istom možemo naći komentare koji nam
otkrivaju šta se izračunava koristeći ovaj kod I upisuje u isti.

10

You might also like