index2 - Matlab Računarski alati Decembar 2005....

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Matlab Računarski alati Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 1 UVOD U MATLAB • MATLAB je softverski paket namenjen za rešavanje matematičkih problema, analizu podataka i vizuelizaciju • Glavne mogućnosti: numerička analiza, matrični račun, obrada podataka i grafičko prikazivanje • Opis problema je matematički • Poseduje programski jezik višeg nivoa • SIMULINK – alat za simulaciju dinamike sistema u grafičkom okruženju • Toolbox – paketi alata koji proširuju mogućnosti Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 2 Podaci i rad sa njima • Osnovni element MATLAB-a je pravougaona matrica • Specijalni slučajevi su matrice dimenzije 1x1 koje se nazivaju skalarima i vektori koji imaju samo jednu dimenziju (vrstu ili kolonu) • Imena promenljivih i funkcija koje se koriste u MATLAB-u moraju da počinju sa slovom, a u imenu mogu da sadrže i brojeve. • NAPOMENA: MATLAB razlikuje velika i mala slova pa se zato mora voditi računa pri kucanju jer promenljivoj “a” se ne može pristupiti sa “A” jer su to dve različite promenljive u MATLAB-u. Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 3 • Promenljive u Matlab-u su slobodnog tipa Primer a=’pera’; a=1; dimenzija 1x4 dimenzija 1x1 tip string tip celobrojni • Ukoliko se iza komande nalazi ; ne ispisuje se vrednost izraza Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 4 Izrada programa u MATLAB-u 1. 2. 2 1 3. komandni prozor listing promenljivih istorija komandi 3 Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 5 M-file editor • Pisanje programa se vrši u Matlab/M-file editoru • File -> New > M-File Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 6 Debagiranje • Upotreba brakepoint mehanizma • Kontrola vrednosti promenljivih u toku izvršavanja Postavljanje/uklanjanje BP BP Uklanjanje svih BPa Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 7 Službene reči MATLAB programskog jezika R.BR. 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 Službena reč ANS REALMAX PI INPUT LOG EXP COS COT COSH COTH ELSE ELSEIF CASE FOR LENGTH FINDSTR LOAD STR2NUM Značenje Poslednji odgovor Najveći realan broj 3.1415926535897... Unos promenljive Prirodni logaritam eksponent osnove e Kosinus Kotangens Kosinushiperbolički Kotangens hiperbolički Uslovno grananje, ako je, inače Uslovno grananje, akoje, inače ako je Naredba grananja, za, ako je Naredba ciklusa, od do Dužina niza Nalaženje kraćeg u dužem stringu Učitavanje iz datoteke Prevvara string u realan broj RAČUNARSKI ALATI / Prof Nenad Grujović 8 R.BR. 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 Službena reč EPS REALMIN IJ DISP LOG10 SIN TAN SINH TANH IF END SWITCH OTHERWISE SQRT NUM2STR STRFIND SAVE Značenje Tačnost Najmanji realan broj Imaginarna jedinica Ispis liste Logaritam sa onovom 10 sinus Tangens Sinushiperbolički Tangenshiperbolički Uslovno granjanje, ako je Završetak bloka, programa, naredbe Naredba grananja, za Naredba grananja, za, inače Kvadratni koren Pretvara broj u string Nalaženje drugor u prvom stringu Snimanje datoteke Decembar 2005. Ulazne naredbe • INPUT(a[,’s’]) • INPUT - službena reč koja ukazuje da je reč o naredbi ulaza • a - string konstanta koja se ispisuje • ‘s’ - označava da se radi o string promenljivoj Primeri: A=INPUT(‘A=‘); RAČUNARSKI ALATI / Prof Nenad Grujović Decembar 2005. 9 Izlazne naredbe • DISP([lista]) ili DISP(i) • DISP - službena reč koja ukazuje da je reč o naredbi izlaza • i - promenljiva ili string konstanta • lista - lista string konstanti ili promenljivih (za ispis brojeva treba koristiti funkciju num2str) Primeri: DISP(A) 12.330 Decembar 2005. DISP(‘OVO JE ISPIS’) OVO JE ISPIS RAČUNARSKI ALATI / Prof Nenad Grujović 10 Aritmetički izrazi Aritmetičke operacije sa prioritetima: ZNAK ^ \/ * + NAZIV Stepenovanje Promena znaka Deljenje sa desna i leva Množenje Oduzimanje Sabiranje PRIORITET 1 (najviši) 2 3 3 4 4 (najniži) Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 11 Primeri aritmetičkih izraza: U matematici a ⋅c + d b Primer redosleda računanja: U MATLAB-u A/B*C+D X^3 X*X*X A/B^C^2-4.6/(D+3.) 1. C^2 2. B^X 3. A/Z 4. D+3. 5. 4.6/U 6. Z-V a b⋅c ⇔ x 3 3 x 3 + x 2 − 25 x y x+ y 3*X^3+X^2-25 X*Y/(X+Y) A^2-4*B+30 A*A-4*B+30` → → → → → → X Y Z U V W A /( B * C ) A/ B / C a 2 − 4b + 30 Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 12 Ugrađene funkcije Kvadratni koren: a → SQRT (a) a≥0 Trigonometrijske funkcije: SIN ( x) COS ( x) TAN ( x) COT ( x) Logaritamska funkcija: (ugao x mora biti u radijanima!) Inverzne trigonometrijske funkcije: ASIN ( x) ACOS ( x) ATAN ( x) ACOT ( x ) ln a → LOG (a ) log10 a → LOG10 (a ) a>0 Eksponencijalna funkcija: arcsin( x) = α ⇒ − π 2 2 arccos( x) = β ⇒ 0 ≤ β ≤ π , arctan( x) = γ ⇒ − ≤α ≤ π , x ≤1 x ≤1 e x → EXP( x ) Apsolutna vrednost: Decembar 2005. π a → ABS (a ) 2 2 arcctan ( x ) = δ ⇒ 0 ≤ δ ≤ π 13 ≤γ ≤ π RAČUNARSKI ALATI / Prof Nenad Grujović Programske strukture LINIJSKE PROGRAMSKE STRUKTURE Zadatak: Sastaviti program koji za zadate vrednosti x i y, izračunava vrednost funkcije 1. NAREDBA 2. NAREDBA F ( x , y ) = e − 2 x sin( 3 y − x ) DISP(‘UNESITE VREDNOST ZA X I Y: ‘); X=INPUT(‘X=‘); Y=INPUT(‘Y=‘); F=EXP(-2*X)*SIN(3*Y-X) n. NAREDBA Linijska struktura Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 14 Programske strukture RAZGRANATE PROGRAMSKE STRUKTURE 1. NAREDBA Naredbe uslovnog prelaska: 2. NAREDBA 3. NAREDBA 4. NAREDBA • • • • • blokovski uslovni prelazak logički uslovni prelazak aritmetički uslovni prelazak izračunati uslovni prelazak dodeljeni uslovni prelazak Razgranata struktura Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 15 Programske strukture Relacijski izraz: sastavljen od dva aritmetička ili dva znakovna izraza između kojih se piše relacijski znak > ≥ < ≤ = ≠ > >= < <= == ~= Vrednost relacijskog izraza je logička konstanta (TRUE ili FALSE)! Primeri: A < (B-4.2) C < ’PETROVIC' Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 16 Programske strukture Logički uslovni prelazak: Primer 1: (primer1.m) IF(i) naredba Primer 2: (primer2.m) A>B NE DA x>0 x=0 x>0 y = x2 y = 2x y=x C=A+B IF(X > 0.)Y=X^2; END IF(X == 0)Y=2*X; END IF(X < 0.)Y=X; END Logički uslovni prelazak IF(A > B) C=A+B; END Decembar 2005. Primer 3: TOL=1.E-10 IF((A-B) < TOL)… IF(ABS(A-B) < TOL)... 17 RAČUNARSKI ALATI / Prof Nenad Grujović Zadatak:Napisati program za izračunavanje funkcije: ⎧ x1 + x2 ⎪ y = ⎨ x1 ⋅ x2 ⎪x − x ⎩1 2 x1 < x2 x1 = x2 x1 > x2 (zadatak1.m) DISP(‘UNESITE X1 I X2’); X1=INPUT(‘X1=‘); X2=INPUT(‘X2=‘); IF X1<X2 Y=X1+X2 ELSEIF X1=X2 Y=X1*X2 ELSE Y=X1-X2 END 18 Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović Blokovski uslovni prelazak: Uslov po kojem se vrši prelazak predstavlja logički izraz i čija vrednost može biti: TRUE - izvršava se blok naredbi B1 koji sledi iza naredbe prelaska IF FALSE - izvršava se blok naredbi B2 koji sledi iza naredbe prelaska IF I DA B1 NE IF(I) THEN B1 B2 ELSE B2 END IF Decembar 2005. Struktura IF…ELSEIF…ELSE…END RAČUNARSKI ALATI / Prof Nenad Grujović 19 IF I IF I B1 B1 END I DA B1 NE ELSE END Primeri: a > b ⇒ c = a ⋅b a > b ⇒ c = a ⋅b a ≤b⇒ c = a+b IF (A > B) C=A*B ELSE C=A+B END IF(A > B) C=A*B END Struktura IF…THEN Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 20 Zadatak: Za zadate vrednosti a i b, napisati deo programa koji izračunava vrednost c, prema sledećoj formuli 2. REŠENJE (primer4_2.m) IF(A > B) C=A-B ELSE IF(A < B) C=A*B END IF(A == B) C=A+B END END 1. REŠENJE (primer4_1.m) IF(A > B) C=A-B ELSE IF(A < B) C=A*B ELSE C=A+B END END Decembar 2005. ⎧ a − b, ⎪ c = ⎨ a ⋅ b, ⎪ ⎩a + b, a>b a<b a=b 3. REŠENJE (primer4_3.m) IF(A > B) C=A-B ELSE IF(A < B) C=A*B ELSE C=A+B END 21 RAČUNARSKI ALATI / Prof Nenad Grujović Naredba višestrukog prelaska: SWITCH m (n1 , n2,…,ni) n1 , n2,… - izraz uz koji se izvršavaju naredbe ako je jednak m m - izraz ili promenljiva SWITCH m CASE n1 B1 ٠ ٠ ٠ CASE ni Bi OTHERWISE B0 END 22 m∉[1,i ] 1 m 2 i B0 B1 Bi Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović Zadatak: Napisati program za izračunavanje vrednosti y prema formuli ⎧ x1 + x2 , k = 1 ⎪ y = ⎨ x1 * x2 , k = 2 ⎪x − x , k = 3 ⎩1 2 DISP (’UNESITE X1,X2 I K’) X1=INPUT(‘X1=’); X2=INPUT(‘X2=‘); K=INPUT(‘K=‘); SWITCH K CASE 1 Y=X1+X2; CASE 2 Y=X1*X2; CASE 3 Y=X1-X2; OTHERWISE DISP (’POGRESNO UNETA VREDNOST ZA K’); END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 23 CIKLIČNE STRUKTURE FOR i=m1:[m3:]m2 FOR - službena reč i - celobrojna ili realna promenljiva m1,m2,m3 - celobrojni ili realni aritmetički izrazi (ako se m3 ne navede uzima se m3=1) K<0 i = m1 DA m1 ≤ m2 m1 ≥ m2 m1 m1+m3 m1+2m3 ... m3 > 0 m3 < 0 TELO CIKLUSA i=m1+(K-1)m3 i = i + m3 i >m2 k = int((m2 − m1 ) / m3 + 1 ) k ≤ 0 − ne prolazi se kroz telo ciklusa RAČUNARSKI ALATI / Prof Nenad Grujović 24 Prikaz ciklusa prema definiciji FOR-naredbe Decembar 2005. i=m1:[m3:]m2 i=m1, m2, [m3] i=m1:[m3:]m2 i=m1, m2, [m3] TELO CIKLUSA TELO CIKLUSA FOR i=m1:[m3:]m2 telo ciklusa END Ciklusi sa DO naredbom Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 25 CIKLIČNE STRUKTURE WHILE izraz WHILE - službena reč izaraz - logički izraz WHILE naredba se izvršava sve dok je izraz tačan Prikaz ciklusa prema definiciji WHILE-naredbe Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 26 STRUKTURE PODATAKA - NIZOVI Niz - skup podataka istog tipa Primeri u matematici: elementi vektora i matrica Xi {X1 , X 2 ,...X n } ⎡ a11 a12 ⎢a a ⎢ 21 22 ... ⎢ ... ⎢ ⎣ an1 an 2 X IME NIZA I ELEMENTI NIZA X MATRIC AA 1,2 AA(1,2) - član A ai , j ... a1n ⎤ ... a2n ⎥ ⎥ ... ⎥ ⎥ ... ann ⎦ Operacije sa članovima niza: X - niz X(I) - i-ti član niza X(I+1) A(I,J) - član ai,j X(3)=(X(1)+X(2))/2.0 A - matrica Decembar 2005. A(I,J)=C*A(I-1,J+2) 27 RAČUNARSKI ALATI / Prof Nenad Grujović Primer1: NALAŽENJE SUME ELEMENATA NIZA NAČIN 1 (zadatak3_1.m) FOR I=1:20 X(I)=INPUT(‘’); END SUMA=0.0; FOR I=1:20 SUMA=SUMA+X(I); END SUMA END NAČIN 2 (zadatak3_2.m) Primer2: SABIRANJE MATRICA NAČIN 1 (primer5_1.m) FOR I=1:3 FOR J=1:4 C(I,J)= A(I,J)+B(I,J); END END NAČIN 2 (primer5_2.m) C=A+B X=INPUT(‘X=‘); SUMA=SUM(X) END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 28 Primer3: MNOŽENJE MATRICA NAČIN 1 (primer6_1.m) FOR I=1:4 FOR J=1:4 C(I,J)=0.0; FOR K=1:4 C(I,J)=C(I,J)+A(I,K)*B(K,J); END END END NAČIN 2 (primer6_2.m) C=A*B; Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 29 FUNKCIJSKI POTPROGRAM FUNCTION [lista]=fun( [ f [ ,f ]…] ) • • telo funkcijskog potprograma • END FUNCTION - službena reč [lista] - lista argumenata koji vraćaju vrednost programu odakle je pozvana funkcija, [lista] može biti i samo jedan argument (function a=fun(…)) fun - ime funkcijskog potprograma f - fiktivni argument (ime promenljive, ime niza, fiktivno ime funkcijskog potprograma, fiktivno ime opšteg potprograma) END - službena reč koja označava fizički kraj funkcijskog potprograma Napomena: Funkcijski podprogram mora da se snimi u poseban fajl koji ima isto ime kao i funkcija sa ekstenzijom *.m - fun.m Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 30 Poziv funkcijskog potprograma: fun( [ s [ ,s ]…] ) fun - naziv pozvanog funkcijskog potprograma s - stvarni argument (izraz, ime niza, ime funkcijskog potprograma, ime unutrašnje funkcije, ime opšteg potprograma, fiktivni argument, koji se pojavljuje u listi fiktivnih argumenata funkcijeskog ili opšteg potprograma, u okviru kojeg se ostveruje poziv) Primer 1: (suma.m) FUNCTION SUMA=SUMA(A,B,C,D) SUMA=A+B+C+D; END Primer 2: (zbir1.m) FUNCTION ZBIR=ZBIR(A,N) ZBIR=0.; FOR I=1:N ZBIR=ZBIR+A(I); END END Način 2 (zbir2.m) FUNCTION ZBIR=ZBIR(A,N) ZBIR=SUM(A); END RAČUNARSKI ALATI / Prof Nenad Grujović 31 Pozivanje funkcije ZX=ZBIR(X,M) Decembar 2005. OPŠTI POTPROGRAM • • • telo opšteg potprograma Razlika izmedju opšteg potprograma i funkcijskog potprograma je u tome što opšti potprogram ne mora da ima function i ne vraća nikakve vrednosti programu iz kojeg se poziva već je to samo skup naredbi koje se više puta ponavljaju pa su smeštene u posebnu celinu. Snima se u fajl sa ekstenzijom *.m - (ime.m) END - fizički kraj opšteg potprograma Poziv opšteg potprograma: ime Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 32 Primer : FUNKCIJSKI POTPROGRAM ZA MNOZENJE MATRICA (mproiz.m) FUNCTION R=MPROIZ(B,D,NCB,NCD,NVD) FOR I=1:NCB FOR J=1:NVD R(I,J)=0; FOR K=1:NCD R(I,J)=R(I,J)+B(I,K)*D(K,J); END END END NVB=NCD END j i NCB B NCD D NVB NVD Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović R=B*D NCB i,j • R NVD 33 REŠENI ISPITNI ZADACI Primer 1: ODREĐIVANJE PREDZNAKA PROIZVODA ČLANOVA NIZA BEZ MNOZENJA (APRIL 89/90) FPP F F=1 IN=0 K=1,N >0 A(K) <0 IN=IN+1 MOD(IN,2) =0 F=-1 RETURN Decembar 2005. F=1 =0 K=1,N >0 A(K) <0 F=-F F=0 =0 F=0 RETURN a/ RAČUNARSKI ALATI / Prof Nenad Grujović b/ 34 % PROGRAM GLAVNI A=INPUT(‘A=‘); J=F(A,10) END (f.m) FUNCTION F=F(A,N) % POCETNA VREDNOST F F=1; % PETLJA PO CLANOVIMA NIZA K=1; WHILE (A(K)<0)&(K<N) F=-F; K=K+1; END IF A(K)=0 F=0; END END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 35 Primer 2: FUNKCIJSKI POTPROGRAM ZA ODREĐIVANJE NORME NIZA (OKTOBAR 90/91) 2 2 a = a12 + a2 + ... + an FPP ANORM ANORM=0. I=1,N ANORM=ANORM+A(I)2 ANORM=SQRT(ANORM) RETURN (anorm.m) FUNCTION AN=ANORM(A,N) AN=0. FOR I=1:N AN=AN+A(I)^2; END AN=SQRT(AN); END (anorm2.m) FUNCTION AN=ANORM2(A) AN=SQRT(SUM(A.^2)); END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 36 Primer 3: GLAVNI PROGRAM I FUNKCIJSKI POTPROGRAM ZA SORTIRANJE ELEMENATA NIZA PO OPADAJUĆEM REDU (glsort.m) %PROGRAM GLSORT N=INPUT(‘N=‘); A=INPUT(‘A=‘); A=SORT(A,N) END (sort.m) FUNCTION A=SORT(X,N) A=X; FOR I=1:N-1 FOR J=I+1:N IF(A(I)>A(J)) ELSE XP=A(I) A(I)=A(J) A(J)=XP END END END END 37 PP SORT DO I=1,N-1 X(I)>X(J) NE XP=X(I) X(I)=X(J) X(J)=XP DA RETURN Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović Primer 4: FUNKCIJSKI POTPROGRAM ZA ODREDJIVANJE SREDNJE VREDNOSTI NEGATIVNIH CLANOVA MATRICE (APRIL 89/90) (negsre.m) PP NEGSRE FUNCTION SV=NEGSRE(A,N1,N2) M=0 % INICIJALIZACIJA S=0 M=0; S=0; % PETLJA FOR I=1:N1 FOR J=1:N2 NE IF(A(I,J)<0.) A(I,J)<0 M=M+1; DA S=S+A(I,J); M=M+1 END END S=S+A(I,J) END % SREDNJA VREDNOST IF M>0 SV=S/M SV=S/M; END RETURN END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 38 Primer 5: FUNKCIJSKI POTPROGRAM ZA ODREDJIVANJE VREDNOSTI CLANA MATRICE NA DIJAGONALI KAO RAZLIKE SUMA CLANOVA ODGOVARAJUCE VRSTE I KOLONE (OKTOBAR 90/91) OPP DIAG(A,N) I=1,N S=0. J=1,N S=S+A(I,J)-A(J,I) A(I,I)=S RETURN Decembar 2005. (diag.m) FUNCTION A=DIAG(X,N) A=X; FOR I=1:N S=0.; FOR J=1:N S=S+A(I,J)-A(J,I); END A(I,I)=S; END END RAČUNARSKI ALATI / Prof Nenad Grujović 39 UNOŠENJE I IZDAVANJE PODATAKA RAD SA DATOTEKAMA LOAD ime LOAD - službena reč ime - puno ime datoteke učitava sadržaj datoteke i smešta je u promenljivu ime SAVE ime [promenljiva] [-ASCII] SAVE - službena reč ime - puno ime datoteke promenljiva - lista promenljivih ASCII - snimanje tekstualne datoteke, inače snima u binarnom formatu u datoteku ime snima sadržaje promenljivih promenljiva Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 40 RAD SA ZNAKOVNIM VELIČINAMA NAREDBA DODELE ZNAKOVNE VREDNOSTI Definicija znakovnog izraza → Operacija dopisivanja ili konkatenacije: [‘BEO‘ 'GRAD‘] 'BEOGRAD' Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 41 Znakovna naredba dodele promenljiva = izraz Primer: A=INPUT(‘A=‘,’S’) B=INPUT(‘B=‘,’S’) C=INPUT(‘C=‘,’S’) X=[A B]; Y=[A B C]; DISP([‘X=‘,X,’ Y=‘,Y]) END Znakovne funkcije LENGTH(a) Argument funkcije, a, je znakovni izraz, a vrednost funkcije je dužina znakovnog podataka koji se javlja kao argument funkcije. Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 42 Primer: A=INPUT(‘A=‘,’S’); N=LENGTH(A); DISP(['DUZINA JE:', NUM2STR(N)]) END CHAR(i) Argument funkcije CHAR je prirodan broj, i, a vrednost funkcije je znak pridružen ovom broju u računaru, ASCII kod. Napomena: Ne postoji funkcija koja je inverzna funkciji CHAR, ali može da se napravi na sledeći način: (ichar.m) FUNCTION A=ICHAR(C) A=C-CHAR(0); END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 43 Primer: C=INPUT(‘C=‘,’S’); I=INPUT(‘I=‘); IC=ICHAR(C); CI=CHAR(I); ICI=ICHAR(CHAR(I)); CIC=CHAR(ICHAR(C)); DISP([C,’ ‘,NUM2STR(I),’ ‘,CI,’ ‘,NUM2STR(IC),’ ‘,CIC,’ ‘,NUM2STR(ICI)]) END FINDSTR(a,b) Argumenti funkcije su znakovni izrazi a i b, a vrednost funkcije je niz brojeva koji definišu pozicije znaka u dužoj nisci od koje se sa leva na desno, javlja kraća niska. Ukoliko se kraća niska ne nalazi u dužoj onda se vraća prazan niz [ ]. Primer: I=FINDSTR('JUGOSLAVIJA', 'LAV') I=FINDSTR('LAV‘, 'JUGOSLAVIJA') Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović → → I=6 I=6 44 STRFIND(a,b) Argumenti funkcije su znakovni izrazi a i b, a vrednost funkcije je niz brojeva koji definišu pozicije znaka u prvoj nisci (a) od koje se prvi put, sleva na desno, javlja druga niska (b). Ukoliko se druga niska ne nalazi u prvoj onda se vraća prazan niz [ ]. Primer: I=STRFIND('JUGOSLAVIJA', 'LAV') I=STRFIND('LAV‘, 'JUGOSLAVIJA') Izdvajanje znakovne podniske/podniza: v(i:j) → → I=6 I=[ ] v - znakovne promenljiva; i,j - celobrojni izrazi Vrednost funkcije je znakovna podniska izdvojena iz znakovnog podatka, koji je vrednost znakovne promenljive,v, od pozicije i do pozicije j. ( 1≤ i ≤ j ≤LENGTH(v) ) Primer: RED=INPUT(‘RED=‘,’S’); I=INPUT(‘I=‘); J=INPUT(‘J=‘); PODNIS=RED(I:J); Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 45 REŠENI ISPITNI ZADACI (reseni1.m) % OKTOBAR 89/90 3. ZADATAK DISP(’UNESI 30 RECI:’); FOR I=1:30 A(I)=INPUT(‘’,’S’); END B=INPUT(’UNESI SLOVO:\N’); FOR I=1:30 K=0; FOR J=1:LENGTH(A(I)) IF(A(I)(J:J)==B) K=K+1 END END IF(K>=2) DISP(A(I)) END END END Decembar 2005. (reseni2.m) % SEPTEMBAR 90/91 3. ZADATAK A=INPUT(‘A=‘,’S’) I=LENGTH(A); DISP([’IMA ’,NUM2STR(I),‘ SIMBOLA’]) END RAČUNARSKI ALATI / Prof Nenad Grujović 46 (reseni3.m) % JANUAR 91/92 3. ZADATAK FOR I=1:20 C(I)=INPUT(‘’,’S’); END FOR I=1:20 K=0; FOR J=1:17 IF(C(I)(J:J+3)==’ABCD’) K=K+1; END END IF(K>0) DISP(NUM2STR(K)) END END END (reseni4_1.m) % SEPTEMBAR 91/92 DATUM=INPUT(‘’,’S’); I=(DATUM(1:1)-‘0’)*10+… (DATUM(2:2)-‘0’); J=(DATUM(4:4)-‘0’)*10+… (DATUM(5:5)-‘0’); DISP(I*J) END 3. ZADATAK (reseni4_2.m) NAČIN 2 DATUM=INPUT(‘’,’S’); I=STR2NUM(DATUM(1:2)); J=STR2NUM(DATUM(4:5)); DISP(I*J) END Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 47 POSTUPAK IZRADE ZADATKA U MATLAB-U Zadatak: Napisati program za izračunavanje funkcije: ⎧ x1 + x2 ⎪ y = ⎨ x1 ⋅ x2 ⎪x − x ⎩1 2 x1 < x2 x1 = x2 x1 > x2 1. Pokretanje programa pocinje klikom misa na ikonicu Matlab- a 2. Na ekranu se pojavljuje Matlab prozor koji je sada aktivni prozor. U njemu je omogucena komunikacija sa MATLAB programskim prevodiocem. Program daje znak >> koji oznacava da je spreman da prihvati komande od korisnika. Na desnoj strani se nalazi komandni prozor u kome se kucaju sve komande. Na levoj strani se nalaze dva prozora: gornji za listing promenljivih, gde se ispisuje ime, veličina i tip matrice; i donji u kojem se ispisuje istorija komandi koje su zadavane Matlab-u. Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 48 3. File =>New=>M-File Komanda M-File sluzi za otvaranje novog rpozora za formiranje M datoteke (slika desno). 4. U prozoru Editor vrši se kucanje programa (slika dole). Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 49 5. Nakon ispisivanja, program se pokrece klikom kursora na ikonicu Run. Run Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 50 6. U komandnom prozoru (Command Window), nakon pokretanja programa, zahteva se unosenje odgovarajucih komadi. U nasem primeru zahteva se unosenje X1 I X2. Ukoliko ih zapisujemo u obliku matrice , elementi se moraju smestiti unutar uglastih zagrada. Pri tome se vrste matrica odvajeju znakom ; (tacka zarez), dok se elementi unutar jedne vrste razdvajaju praznim mestom ili zarezom. Prvo se trazi unosenje elemenat X1, zatim pritisko na Enter, unosenje X2. Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 51 Nakon unošenja X1 i X2, pritiskom na taster Enter, izbacuje se traženo rešžsenje našeg zadatka. Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 52 ...
View Full Document

This note was uploaded on 05/05/2011 for the course FC gj, taught by Professor Glokgh during the Spring '97 term at Punjab Engineering College.

Ask a homework question - tutors are online