Prof dr Nikola Klem dipl el in Graevinski

  • Slides: 77
Download presentation
Prof. dr Nikola Klem, dipl. el. inž. Građevinski fakultet Univerziteta u Beogradu OSNOVE PROGRAMIRANJA

Prof. dr Nikola Klem, dipl. el. inž. Građevinski fakultet Univerziteta u Beogradu OSNOVE PROGRAMIRANJA Lekcija III UVOD U MATLAB Beograd, šk. god. 2010/2011. Nikola Klem

Uvod Matlab je multifunkcionalni programski sistem koji u jednom softverskom proizvodu i na jednom

Uvod Matlab je multifunkcionalni programski sistem koji u jednom softverskom proizvodu i na jednom mestu ujedinjuje mogućnosti: numeričkih, simboličkih i grafičkih sistema. © Nikola Klem 2006‑ 2011. 2

Uvod Matlab je razvijen krajem 1970 -tih na univerzitetima New Mexico i Stanford kao

Uvod Matlab je razvijen krajem 1970 -tih na univerzitetima New Mexico i Stanford kao pomoćno sredstvo za učenje studenata tehnike linearnoj algebri i numeričkim metodama kako bi im se olakšalo korišćenje tada postojećih programskih paketa LINPAK i EISPAK. © Nikola Klem 2006‑ 2011. 3

Uvod Tokom godina je prema zahtevima mnogih korisnika stalno je dopunjavan i prilagođavan oblastima

Uvod Tokom godina je prema zahtevima mnogih korisnika stalno je dopunjavan i prilagođavan oblastima primenjene matematike i numeričkog računanja. Zbog mogućnosti lakog učenja i široke primene koristi se ne samo u akademske nego i u komercijalne svrhe. © Nikola Klem 2006‑ 2011. 4

Uvod Razvojem, kao otvoreni sistem, MATLAB je postao univerzalni matematički softverski sistem u kome

Uvod Razvojem, kao otvoreni sistem, MATLAB je postao univerzalni matematički softverski sistem u kome se zadaci mogu izvršavati: direktno jednom naredbom ili pomoću interpretera kojim se izvršava izvorni program napisan u matlabovom programskom jeziku. Postoji i prevodilac kojim se izvorni MATLAB programi prevode u izvorni kod u C-u. © Nikola Klem 2006‑ 2011. 5

Uvod Pomoću različitih kutija sa alatkama primene Matlaba se proširuju u područja: simboličke matematike,

Uvod Pomoću različitih kutija sa alatkama primene Matlaba se proširuju u područja: simboličke matematike, simulacija, obrade signala, upravljačke tehnike, statistike, fuzzy logike, neuralne mreže i ceo niz drugih područja. © Nikola Klem 2006‑ 2011. 6

Znakovi koji se mogu koristiti za formiranje elemenata jezika su: alfabetski znakovi (velika i

Znakovi koji se mogu koristiti za formiranje elemenata jezika su: alfabetski znakovi (velika i mala slova engleske abecede i _ ), numerički znakovi (cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), specijalni znakovi (. = : ; + - zagrade itd. ). © Nikola Klem 2006‑ 2011. 7

Promenljive Imena promenljivih sastoje se od niza jednog do najviše 63 alfanumeričkog znaka ili

Promenljive Imena promenljivih sastoje se od niza jednog do najviše 63 alfanumeričkog znaka ili znaka _ od kojih prvi znak imena mora biti slovo. VELIKA I MALA SLOVA SE SMATRAJU RAZLIČITIM ZNACIMA. © Nikola Klem 2006‑ 2011. 8

Promenljive Imena promenljivih ne smeju da budu jednaka ključnim rečima (komandama). Ako su imena

Promenljive Imena promenljivih ne smeju da budu jednaka ključnim rečima (komandama). Ako su imena promenljivih jednaka imenima bibliotečkih potprograma, ovi potprogrami se ne mogu koristiti. © Nikola Klem 2006‑ 2011. 9

Ključne reči © Nikola Klem 2006‑ 2011. 10

Ključne reči © Nikola Klem 2006‑ 2011. 10

Promenljive U MATLAB-u je definisan za rad samo jedan tip podataka, MATRICE, a svi

Promenljive U MATLAB-u je definisan za rad samo jedan tip podataka, MATRICE, a svi podaci su realni brojevi u dvostrukoj tačnosti. Zbog toga se promenljive ne deklarišu posebno nego kada im se dodeli vrednost. Novom dodelom vrednosti menja im se deklaracija ako je nova drugačija od predhodne. © Nikola Klem 2006‑ 2011. 11

Definisana imena ans – poslednji rezultat interaktivnog računa pi – 3. 14159 26535 89793.

Definisana imena ans – poslednji rezultat interaktivnog računa pi – 3. 14159 26535 89793. . . i – kompleksna jedinica -1, j – kompleksna jedinica, eps – relativna preciznost floating point 2 -52 (2. 2204 e-016) © Nikola Klem 2006‑ 2011. 12

Definisana imena bitmax – najveći ceo broj koji može da se tačno predstavi (9.

Definisana imena bitmax – najveći ceo broj koji može da se tačno predstavi (9. 0072 e+015) realmin – najmanji floating point broj 2 -1022 ( 2. 2251 e-308), realmax – najveći floating point broj (2 - )2 -1023 (1. 7977 e+308), Inf – beskonačno , Na. N – Not a Number. © Nikola Klem 2006‑ 2011. 13

Definisana imena © Nikola Klem 2006‑ 2011. 14

Definisana imena © Nikola Klem 2006‑ 2011. 14

Definisana imena Definisanim imenima može da se promeni vrednost naredbom za dodeljivanje vrednosti. ©

Definisana imena Definisanim imenima može da se promeni vrednost naredbom za dodeljivanje vrednosti. © Nikola Klem 2006‑ 2011. 15

Korisne komande clear – Uklanja sve promenljive iz memorije. clear x y z –

Korisne komande clear – Uklanja sve promenljive iz memorije. clear x y z – Uklanja promenljive x y z who – Prikazuje imena promenljivih koje postoje u memoriji. whos – Prikazuje imena promenljivih koje postoje u memoriji, njihovu klasu i veličinu u bajtovima. © Nikola Klem 2006‑ 2011. 16

Primer © Nikola Klem 2006‑ 2011. 17

Primer © Nikola Klem 2006‑ 2011. 17

Primer © Nikola Klem 2006‑ 2011. 18

Primer © Nikola Klem 2006‑ 2011. 18

Tipovi podataka U MATLAB-u su definisani sledeći tipovi podataka: Celobrojni: int 8, int 16

Tipovi podataka U MATLAB-u su definisani sledeći tipovi podataka: Celobrojni: int 8, int 16 i int 32; uint 8, uint 16 i uint 32. Realni: single, double. Znakovni: char. Kompleksni podaci nisu posebno definisani, ali sa njima može da se radi koristeći predefinisane vrednosti i i j. © Nikola Klem 2006‑ 2011. 19

Definisane aritmetičke operacije Aritmetičke operacije su definisane samo za tip double. © Nikola Klem

Definisane aritmetičke operacije Aritmetičke operacije su definisane samo za tip double. © Nikola Klem 2006‑ 2011. 20

Definisane aritmetičke operacije Operacije sa ostalim tipovima numeričkih podataka nisu definisane i oni mogu

Definisane aritmetičke operacije Operacije sa ostalim tipovima numeričkih podataka nisu definisane i oni mogu da se koriste samo za uskladištavanje podataka. Pre izvođenja računskih operacija moraju da se konvertuju u tip double. Ako se želi drugačiji način skladištenja rezultata od tipa double rezultat mora posle izračunavanja da se konvertuje u odgovarajući tip. © Nikola Klem 2006‑ 2011. 21

Aritmetički izrazi S obzirom na to da nisu definisane operacije za druge tipove podataka

Aritmetički izrazi S obzirom na to da nisu definisane operacije za druge tipove podataka osim double, to se sve konstante, bez obzira na njihov tip u drugim programskim jezicima ovde smatraju u dvostrukoj tačnosti. Isto tako, u MATLAB-u ne postoje celobrojni ili mešoviti aritmetički izrazi. © Nikola Klem 2006‑ 2011. 22

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 23

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 23

Pokretanje Matlaba Pokretanjem MATLAB-a dobija se njegov komandni prozor. Na gornjem delu prozora nalaze

Pokretanje Matlaba Pokretanjem MATLAB-a dobija se njegov komandni prozor. Na gornjem delu prozora nalaze se, pored trake naslova, trake menija i traka sa alatkama (ako je uključena). Komande u meniju i alatke u traci sa alatkama imaju značenja uobičajena u Windows okruženju. U verziji 7. 0 dodato je i dugme Start. © Nikola Klem 2006‑ 2011. 24

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 25

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 25

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 26

Pokretanje Matlaba © Nikola Klem 2006‑ 2011. 26

Korišćenje Matlaba MATLAB može da se koristi na dva načina: Interaktivno, Programski. © Nikola

Korišćenje Matlaba MATLAB može da se koristi na dva načina: Interaktivno, Programski. © Nikola Klem 2006‑ 2011. 27

Korišćenje Matlaba Kod interaktivnog korišćenja naredbe se kucaju direktno na prompt programskog jezika i

Korišćenje Matlaba Kod interaktivnog korišćenja naredbe se kucaju direktno na prompt programskog jezika i izvršavaju odmah po pritisku na taster Enter. Program se koristi interaktivno kalkulator ili za rešavanje jednostavnijih problema. Za rešavanje složenijih problema moraju da se pišu programi. © Nikola Klem 2006‑ 2011. 28

Korišćenje Matlaba Kod programskog korišćenja naredbe programskog jezika se unose u datoteku korišćenjem nekog

Korišćenje Matlaba Kod programskog korišćenja naredbe programskog jezika se unose u datoteku korišćenjem nekog editora. Naredbe iz datoteke izvršavaju se pozivom imena datoteke na prompt programa. Datoteke sa programima nazivaju se Mdatotekama, ili script-ovima po analogiji sa drugim programima koji imaju mogućnosti izvršavanja programa čije su naredbe ukucane u datoteku. © Nikola Klem 2006‑ 2011. 29

Interaktivan rad U radnom delu prozora program daje znak da je spreman da prihvati

Interaktivan rad U radnom delu prozora program daje znak da je spreman da prihvati komandu – prompt >> Na znak prompta kucaju se naredbe programskog jezika. Svaka naredba završava se pritiskom na taster Enter. © Nikola Klem 2006‑ 2011. 30

Interaktivan rad Komentar počinje sa znakom procenta %. Posle zadavanja svake naredbe dobije se

Interaktivan rad Komentar počinje sa znakom procenta %. Posle zadavanja svake naredbe dobije se eho – rezultat njenog izvršenja. Ovaj eho može da se spreči kucanjem ; na kraju naredbe. © Nikola Klem 2006‑ 2011. 31

Interaktivan rad (2^3)^4 Treba da bude 0. © Nikola Klem 2006‑ 2011. 32

Interaktivan rad (2^3)^4 Treba da bude 0. © Nikola Klem 2006‑ 2011. 32

Interaktivan rad © Nikola Klem 2006‑ 2011. 33

Interaktivan rad © Nikola Klem 2006‑ 2011. 33

Podešavanje Matlaba Ako je u naredbi dat samo aritmetički izraz izračunata vrednost se dodeljuje

Podešavanje Matlaba Ako je u naredbi dat samo aritmetički izraz izračunata vrednost se dodeljuje promenljivoj sa imenom ans. Sve što se pojavljuje na ekranu štampa se sa jednim redom proreda. Da bi se ovaj prored izbegao treba dati komandu format compact (sva slova mala). © Nikola Klem 2006‑ 2011. 34

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 35

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 35

Podešavanje Matlaba Standardni način prikaza numeričkih vrednosti na ekranu je u fiksnom formatu sa

Podešavanje Matlaba Standardni način prikaza numeričkih vrednosti na ekranu je u fiksnom formatu sa 4 decimale (short), a ako to nije moguće u e-formatu sa 4 decimale (short e). Ovaj način prikazivanja može se izmeniti naredbom format parametar © Nikola Klem 2006‑ 2011. 36

Podešavanje Matlaba parametar može da bude: short e long e short g long g

Podešavanje Matlaba parametar može da bude: short e long e short g long g hex bank © Nikola Klem 2006‑ 2011. (sa 4 decimale, fiksni prikaz), (sa 4 decimale, ekspon. prikaz), (sa 14 decimala), (e – format sa 14 decimala), (general – fiksni ili E), (izlaz u hexsadecimalnom obliku), (fiksni format sa dve decimale). 37

Podešavanje Matlaba parametar može da bude: compact (bez proreda), loose (sa proredom). Naredba format

Podešavanje Matlaba parametar može da bude: compact (bez proreda), loose (sa proredom). Naredba format zadata bez parametara vraća sve promenjene vrednosti na podrazumevane (default) – loose, short. © Nikola Klem 2006‑ 2011. 38

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 39

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 39

Podešavanje Matlaba Alternativni način za podešavanje je zadavanjem komande File/Preferences © Nikola Klem 2006‑

Podešavanje Matlaba Alternativni način za podešavanje je zadavanjem komande File/Preferences © Nikola Klem 2006‑ 2011. 40

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 41

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 41

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 42

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 42

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 43

Podešavanje Matlaba v. 7. 1 © Nikola Klem 2006‑ 2011. 43

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 44

Podešavanje Matlaba © Nikola Klem 2006‑ 2011. 44

Definisanje promenljive S obzirom na to da je za rad u MATLAB-u definisana samo

Definisanje promenljive S obzirom na to da je za rad u MATLAB-u definisana samo jedna vrsta podataka – dvostruka tačnost, to znači sa su sve promenljive koje se uvode u programu implicitno ovog tipa, pa nema potrebe (pa ni mogućnosti) za deklaracijom promenljive. © Nikola Klem 2006‑ 2011. 45

Definisanje promenljive © Nikola Klem 2006‑ 2011. 46

Definisanje promenljive © Nikola Klem 2006‑ 2011. 46

Aritmetički izrazi © Nikola Klem 2006‑ 2011. 47

Aritmetički izrazi © Nikola Klem 2006‑ 2011. 47

Aritmetički izrazi © Nikola Klem 2006‑ 2011. 48

Aritmetički izrazi © Nikola Klem 2006‑ 2011. 48

Naredba clc Naredbom clc se briše sadržaj komandnog prozora, ali se ne menjaju definisane

Naredba clc Naredbom clc se briše sadržaj komandnog prozora, ali se ne menjaju definisane promenljive. © Nikola Klem 2006‑ 2011. 49

Kompleksni brojevi se pišu kao u matematici tako što se kompleksnom delu pridodaje imaginarna

Kompleksni brojevi se pišu kao u matematici tako što se kompleksnom delu pridodaje imaginarna jedinica koja se označava sa i ili j. Sve operacije sa kompleksnim brojevima su definisane. © Nikola Klem 2006‑ 2011. 50

Kompleksni brojevi Pored toga postoji i pet funkcija za određivanje: realnog dela (real), imaginarnog

Kompleksni brojevi Pored toga postoji i pet funkcija za određivanje: realnog dela (real), imaginarnog dela (imag), apsolutne vrednosti (abs), ugla (angle) i konjugovanog broja (conj). © Nikola Klem 2006‑ 2011. 51

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 52

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 52

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 53

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 53

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 54

Kompleksni brojevi © Nikola Klem 2006‑ 2011. 54

Neke elementarne funkcije sin cos tan asin acos atan 2 © Nikola Klem 2006‑

Neke elementarne funkcije sin cos tan asin acos atan 2 © Nikola Klem 2006‑ 2011. sinus sind sinus, stepeni cosinus cosd cosinus, st tangens tand tangens, st arc sinus asind arc sinus, st arc cosinus acosd arc cos, st arc tangens atand arc tan, st arc tan u četiri kvadranta 55

Neke elementarne funkcije exp sqrt log 2 log 10 abs sign round mod rem

Neke elementarne funkcije exp sqrt log 2 log 10 abs sign round mod rem © Nikola Klem 2006‑ 2011. exponencijalna kvadratni koren prirodni logaritam s bazom 2 logaritam s bazom 10 apsolutna vrednost znak zaokrugljuje na najbliži ceo broj moduo posle deljenja ostatak posle deljenja 56

Učitavanje i prikaz podataka Ulazom i izlazom podataka (U/I ili engleski I/O input/output) ostvaruje

Učitavanje i prikaz podataka Ulazom i izlazom podataka (U/I ili engleski I/O input/output) ostvaruje se komunikacija programa sa njegovom okolinom. Ulaz služi za prenos podataka iz spoljnog sveta (preko spoljnih uređaja: tastatura, datoteka, itd. ) u radnu memoriju računara. Izlaz prikazuje vrednosti iz radne memorije programa na spoljnim uređajima na pr. : ekran, štampač, ploter, datoteka, itd. © Nikola Klem 2006‑ 2011. 57

Unošenje podataka s tastature Za učitavanje podataka sa tastature koristi se naredba: input ('text')

Unošenje podataka s tastature Za učitavanje podataka sa tastature koristi se naredba: input ('text') za numeričke podatke ili input ('text', 's') za znakovne podatke. Proizvoljan text dat u zagradama pod apostrofima pojavljuje se prilikom izvršavanja naredbe na ekranu kao prompt, kada program stane da bi se ukucao podatak. Umesto teksta pod apostrofima može se koristiti i znakovna promenljiva. © Nikola Klem 2006‑ 2011. 58

Unošenje podataka s tastature Učitani podatak se konvertuje u numeričku vrednost i može se

Unošenje podataka s tastature Učitani podatak se konvertuje u numeričku vrednost i može se dodeliti promenljivoj naredbom za dodeljivanje vrednosti. Primer A = input ('A = ') pri čemu će se, kada bude trebalo uneti podatak, na ekranu pojaviti A =. Ako u naredbi input postoji i drugi parametar 's' podatak koji se unosi sa tastature se tumači kao znakovni. © Nikola Klem 2006‑ 2011. 59

Prikazivanje podataka na ekranu Za prikazivanje podataka na ekranu koristi se naredba disp (podatak)

Prikazivanje podataka na ekranu Za prikazivanje podataka na ekranu koristi se naredba disp (podatak) pri čemu podatak u zagradama može biti bilo koji tip podataka (na pr. numerička ili znakovna promenljiva ili konstanta ili aritmetički izraz). © Nikola Klem 2006‑ 2011. 60

Učitavanje i prikaz podataka © Nikola Klem 2006‑ 2011. 61

Učitavanje i prikaz podataka © Nikola Klem 2006‑ 2011. 61

Učitavanje i prikaz podataka © Nikola Klem 2006‑ 2011. 62

Učitavanje i prikaz podataka © Nikola Klem 2006‑ 2011. 62

Radni prostor (Workspace) Za vreme rada u Matlab-u definišu se promenljive. Po zatvaranju programa

Radni prostor (Workspace) Za vreme rada u Matlab-u definišu se promenljive. Po zatvaranju programa sve što je urađeno se gubi. Naredbom File/Save Workspace As sadržaj memorije se snima u datoteku tipa. mat iz koje se posle ponovnog pokretanja programa može učitati i nastaviti rad. © Nikola Klem 2006‑ 2011. 63

Radni prostor (Workspace) U verziji 7. 1 sadržaj radnog prostora se učitava iz datoteke

Radni prostor (Workspace) U verziji 7. 1 sadržaj radnog prostora se učitava iz datoteke naredbom Open. U prozoru za dijalog se kao tip datoteke koja se učitava odabere. mat. © Nikola Klem 2006‑ 2011. 64

Radni prostor (Workspace) © Nikola Klem 2006‑ 2011. 65

Radni prostor (Workspace) © Nikola Klem 2006‑ 2011. 65

Matlab programi (script) Za jednostavne probleme često je dovoljna interaktivna primena Matlaba zadavanjem niza

Matlab programi (script) Za jednostavne probleme često je dovoljna interaktivna primena Matlaba zadavanjem niza komandi na znak prompta. Već kod većih problema, ili kod ponavljanja nekih naredbi ovakva primena postaje nepraktična. © Nikola Klem 2006‑ 2011. 66

Matlab programi (script) MATLAB pruža mogućnost programiranja, tako što se program napisan u M-jeziku

Matlab programi (script) MATLAB pruža mogućnost programiranja, tako što se program napisan u M-jeziku snimi u datoteku (kao script) i izvršava iz nje. Ova datoteka treba da ima nastavak. m. Programska datoteka može se napraviti bilo kojim editorom teksta. Matlab ima svoj editor teksta koji se dobija klikom na dugme New u liniji sa alatkama ili iz menija File/New (/M-File). © Nikola Klem 2006‑ 2011. 67

Matlab programi (script) © Nikola Klem 2006‑ 2011. 68

Matlab programi (script) © Nikola Klem 2006‑ 2011. 68

Matlab programi (script) Program je formulacija jednog algoritma (i njemu pripadajuće strukture podataka) u

Matlab programi (script) Program je formulacija jednog algoritma (i njemu pripadajuće strukture podataka) u određenom programskom jeziku. Algoritam rešava jednu klasu problema. Specifikacije jednog pojedinačnog problema slede iz zadatih ulaznih podataka. © Nikola Klem 2006‑ 2011. 69

Matlab programi - primer Zadatak: Nacrtati dijagram toka i napisati program kojim se učitavaju

Matlab programi - primer Zadatak: Nacrtati dijagram toka i napisati program kojim se učitavaju vrednosti dva broja, računa njihov zbir i ispisuju učitani brojevi i rezultat. © Nikola Klem 2006‑ 2011. 70

Matlab programi - primer Projektovanje programa: - početak, - učitavanje podataka, - računanje zbira,

Matlab programi - primer Projektovanje programa: - početak, - učitavanje podataka, - računanje zbira, - ispisivanje podataka, - kraj programa. Potreban prostor u memoriji: © Nikola Klem 2006‑ 2011. 71

Matlab programi - primer početak A, B C=A+B A, B, C kraj © Nikola

Matlab programi - primer početak A, B C=A+B A, B, C kraj © Nikola Klem 2006‑ 2011. % program - zbir dva broja a = input ('a ='); b = input ('b ='); c = a + b; disp (a); disp (b); disp (c); disp (' kraj programa') ; % kraj programa 72

Matlab programi - primer © Nikola Klem 2006‑ 2011. 73

Matlab programi - primer © Nikola Klem 2006‑ 2011. 73

Matlab programi (script) © Nikola Klem 2006‑ 2011. 74

Matlab programi (script) © Nikola Klem 2006‑ 2011. 74

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 75

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 75

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 76

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 76

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 77

Podešavanje radnog kataloga v 7. 1 © Nikola Klem 2006‑ 2011. 77