Uvod u programiranje matematika XI predavanje Matrice Vesna
- Slides: 21
Uvod u programiranje - matematika – XI predavanje Matrice Vesna Veličković vesna@pmf. ni. ac. rs
Tipovi u Pascalu • Definicija tipa type <ime tipa> = <tip> ; Vrste tipova u Pascalu Prosti (nestruktuirani) Složeni (struktuirani) Redni tipovi INTEGER CHAR BOOLEAN intervalni nabrojani pointer REAL array record string file set
Array tip Više promenljivih istog tipa čini jednu celinu. Ta celina ima zajedničko ime, a do pojedinačnih komponenti se dolazi pomoću indeksa. array [ <tip indeksa> { , <tip indeksa> } ] of <tip komponente> Tip indeksa mora biti neki redni tip. Tip komponente može biti bilo koji tip.
Matrica 1 1 2 3 a[3, 2] . . . n. . . max. Vrsta 2 3 . . . max Kolona
Deklaracija matrice Matrica je dvodimenzionalni array (ima dva indeksa). const max. Vrsta = 100; max. Kolona = 50; type matrica = array [1. . max. Vrsta , 1. . max. Kolona ] of real; var x : matrica; n, m : integer; // broj stvarno upotrebljenih vrsta i kolona
Upotreba matričnog array tipa • Deklaracija tipa. U ovoj fazi opisujemo kako će promenljiva tog tipa izgledati, ali za sada ne postoji ni jedna promenljiva tog tipa • Deklaracija promenljivih. Odvaja se memorijski prostor potreban za čuvanje promenljive tog tipa, i uvodi se ime te promenljive. Vrednost svih komponenti te promenljive je nedefinisana, pa se još uvek ne mogu upotrebljavati. • Definisanje vrednosti komponenti. Do pojedinačne komponente matrice se dolazi navodjenjem njenog imena i indeksa vrste i indeksa kolone u uglastim zagradama. • Upotreba cele promenljive ili neke od njenih komponetni.
Specifičnost matričnog array tipa • Obično se u primenama ne zna unapred tačan broj vrsta i kolona matrice. U deklaraciji tipa matrice se procenjuje maksimalan broj potrebnih vrsta i kolona. • Zbog toga uz promenljivu matričnog array tipa idu po dve integer promenljive, za svaki indeks po jedna koja označava koliko komponenti je stvano upotrebljeno. • Procenjeni maksimalni broj komponetni ne sme biti premali, da bi program mogli upotrebiti u većem broju slučajeva, ali ni preveliki da ne bi imali mnogo neiskorišćenog prostora.
Definisanje vrednosti komponenti Ovo se može uraditi na dva načina: • Celoj promenljivoj array tipa se dodeljuje vrednost druge promenljive istog tipa. var a, b : matrica; a : = b; • Dodeljivanje vrednosti pojedinačnim komponentama se može učitavanjem ili pomoću naredbe dodeljivanja. a[3, 5] : = 8; Edit 1. Text : = Str. To. Int (a[7, 2]);
Učitavanje i štampanje • Učitavanje i štampanje matrica se radi pokomponentno (komponeta po komponenta). Ne može se cela matrica učitati ili odštampati samo jednom naredbom.
Rad sa matricama • Deklarisati tip matrica. • Učitati dve matrice, sabrati ih i pomnožiti i odštampati dobijene vednosti. • Da bi matrice mogle da se i sabiraju i množe, broj vrsta i broj kolona mora biti jednak. const max = 50; type matrica = array [1. . max, 1. . max] of real;
procedure ucitaj_matricu (var a: matrica; n, m : integer); var i, j : integer; begin for i: =1 to n do for j: =1 to m do <uciraj a[i, j]>; end; procedure stampaj_matricu (a: matrica; n, m: integer); var i, j : integer; begin for i: =1 to n do begin for j: =1 to m do <stampaj a[i, j]>; <predji u novi red>; end;
procedure saberi (a, b: matrica; n, m: integer; var c: matrica); var i, j : integer; begin for i: =1 to n do for j: =1 to m do c[i, j] : = a[i, j] + b[i, j]; end; procedure pomnozi (a, b: matrica; n, p, m: integer; var c: matrica); var i, j, k : integer; begin for i: =1 to n do for j: =1 to m do begin c[i, j] : = 0; for k: =1 to p do c[i, j] : = c[i, j] + a[i, k] * b[k, j]; end;
procedure TForm 1. Button 1 Click(Sender: TObject); var a, b, c : matrica; n : integer; begin <ucitaj n>; ucitaj_matricu (a, n, n); ucitaj_matricu (b, n, n); saberi (a, b, n, n, c); stampaj_matricu (c, n, n); pomnozi (a, b, n, n, n, c); stampaj_matricu (c, n, n); end;
Glavna dijagonala j glavna dijagonala i=j 1 1 2 ispod glavne dijagonale i >j isnad glavne dijagonale i <j i 3. . n 2 3 . . n
sporedna dijagonala i + j = n+1 Sporedna dijagonala j iznad sporedne dijagonale i + j < n+1 1 1 2 ispod sporedne dijagonale i + j > n+1 i 3. . n 2 3 . . n
Komponenta String. Grid
Svojstva komponente String. Grid Brojanje vrsta i kolona počinje od 0. • Col. Count = broj kolona • Row. Count = broj vrsta • Fixed. Cols = broj fiksiranih vrsta • Fixed. Rows = broj fiksiranih kolona • Scroll. Bars • • ss. Both ss. None ss. Horizontal ss. Vertical
Upisivanje matrice u String. Grid n : = String. Grid 1. Row. Count - 1; m : = String. Grid 1. Col. Count - 1; for vrste: =1 to n do for kolone: =1 to m do String. Grid 1. Cells [kolone, vrste] : = Int. To. Str (a [vrste, kolone])
Domaći zadatak 17 • Za neparno n odštampati matricu O 8 8 8 O O 8 O O 8 8 8 8 8 O
Domaći zadatak 18 • Popunjavanje matrice spiralno 1 24 23 22 21 20 19 2 25 40 39 38 37 18 3 26 41 48 47 36 17 4 27 42 49 46 35 16 5 28 43 44 45 34 15 6 29 30 31 32 33 14 7 8 9 10 11 12 13
Domaći zadatak 19 • Popunjavanje matrice dijagonalno 1 2 4 7 11 16 22 3 5 8 12 17 23 29 6 9 13 18 24 30 35 10 14 19 25 31 36 40 15 20 26 32 37 41 44 21 27 33 38 42 45 47 28 34 39 43 46 48 49
- Objektno orijentisano programiranje
- Sabiranje matrica
- Perbedaan matematika ekonomi dan non matematika ekonomi
- Induksi matematika
- Vesna grupa
- Vesna bujan
- Vesna futo vugdelija
- Bůh vesna
- Vesna knezevic predic
- Vesna mihajlovic
- Dr vesna mijailovic iskustva
- Vesna radoman
- Mojca osvald
- Varnostni odklon
- Vesna žulj
- Vesna loborec
- Vesna futo vugdelija
- Vesna božica proljeća
- Vesna bjedov
- Vesna turuk
- Vesna jevremovic
- Vesna antonic