Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 1
Matlab
Računarski alati
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 2
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ć 3
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ć 4
• Promenljive u Matlab-u su slobodnog tipa
Primer
a=’pera’; dimenzija 1x4 tip stringa=1; dimenzija 1x1 tip celobrojni
• Ukoliko se iza komande nalazi ; ne ispisuje se vrednost izraza
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 5
12
3
Izrada programa u MATLAB-u
1. komandni prozor
2. listingpromenljivih
3. istorijakomandi
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 6
M-file editor
• Pisanjeprograma se vrši u Matlab/M-fileeditoru
• File -> New -> M-File
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 7
Postavljanje/uklanjanjeBP
BP
Uklanjanje svih BP-a
• Upotreba brakepointmehanizma
• Kontrola vrednosti promenljivih u toku izvršavanja
Debagiranje
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 8
R.BR. Službena reč Značenje R.BR. Službena reč Značenje
1 ANS Poslednji odgovor 2 EPS Tačnost
3 REALMAX Najveći realan broj 4 REALMIN Najmanji realan broj
5 PI 3.1415926535897... 6 I J Imaginarna jedinica
7 INPUT Unos promenljive 8 DISP Ispis liste
9 LOG Prirodni logaritam 10 LOG10 Logaritam sa onovom 10
11 EXP eksponent osnove e 12 SIN sinus
13 COS Kosinus 14 TAN Tangens
15 COT Kotangens 16 SINH Sinushiperbolički
17 COSH Kosinushiperbolički 18 TANH Tangenshiperbolički
19 COTH Kotangens hiperbolički 20 IF Uslovno granjanje, ako je
21 ELSE Uslovno grananje, ako je, inače 22 END Završetak bloka, programa, naredbe
23 ELSEIF Uslovno grananje, akoje, inače ako je 24 SWITCH Naredba grananja, za
25 CASE Naredba grananja, za, ako je 26 OTHERWISE Naredba grananja, za, inače
27 FOR Naredba ciklusa, od do 28 SQRT Kvadratni koren
29 LENGTH Dužina niza 30 NUM2STR Pretvara broj u string
31 FINDSTR Nalaženje kraćeg u dužem stringu 32 STRFIND Nalaženje drugor u prvom stringu
33 LOAD Učitavanje iz datoteke 34 SAVE Snimanje datoteke
35 STR2NUM Prevvara string u realan broj
Službene reči MATLAB programskog jezika
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 9
Primeri:
A=INPUT(‘A=‘);
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
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 10
Primeri:
DISP(‘OVO JE ISPIS’)
OVO JE ISPIS
DISP(A)
12.330
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)
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 11
Aritmetičke operacije sa prioritetima:
ZNAK NAZIV PRIORITET
^-
\ /*-+
StepenovanjePromena znaka
Deljenje sa desna i levaMnoženje
OduzimanjeSabiranje
1 (najviši)2334
4 (najniži)
Aritmetički izrazi
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 12
Primeri aritmetičkih izraza:Primer redosleda računanja:
A/B^C^2-4.6/(D+3.)
1. C^2 → X2. B^X → Y3. A/Z → Z4. D+3. → U5. 4.6/U → V6. Z-V → W
C/B/A
)C*B/(Acb
a⇔
⋅
U matematici U MATLAB-u
A/B*C+D
X^3 X*X*X
3*X^3+X^2-25
X*Y/(X+Y)
A^2-4*B+30A*A-4*B+30`
a c db⋅ +
3x3 23 25x x+ −
yxx y+
2 4 30a b− +
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 13
Kvadratni koren: ( )0
a SQRT aa
→≥
Logaritamska funkcija:
10
ln ( )log ( )
0
a LOG aa LOG10 a
a
→→
>
Ugrađene funkcije
Eksponencijalna funkcija:
)x(EXPex →
Trigonometrijske funkcije:
( ) ( ) ( ) ( )SIN x COS x TAN x COT x
(ugao x mora biti u radijanima!)
Inverzne trigonometrijske funkcije:
( )
( )
( ) ( ) ( )
arcsin( ) , 12 2
arccos( ) 0 , 1
arctan( )2 2
arcctan 0
ASIN x ACOS x ATAN x ACOT x
x x
x x
x
x
π πα α
β β ππ πγ γ
δ δ π
= ⇒ − ≤ ≤ ≤
= ⇒ ≤ ≤ ≤
= ⇒ − ≤ ≤
= ⇒ ≤ ≤Apsolutna vrednost: ( )a ABS a→
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 14
LINIJSKE PROGRAMSKE STRUKTURE
Zadatak: Sastaviti program koji za zadate vrednosti x i y, izračunava vrednost funkcije
)xysin(e)y,x(F x −= − 32
1. NAREDBA
2. NAREDBA
n. NAREDBA
Linijska struktura
DISP(‘UNESITE VREDNOST ZA X I Y: ‘);X=INPUT(‘X=‘);Y=INPUT(‘Y=‘);F=EXP(-2*X)*SIN(3*Y-X)
Programske strukture
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 15
RAZGRANATE PROGRAMSKE STRUKTURE
1. NAREDBA
3. NAREDBA 4. NAREDBA2. NAREDBA
Razgranata struktura
Naredbe uslovnog prelaska:
• blokovski uslovni prelazak• logički uslovni prelazak• aritmetički uslovni prelazak• izračunati uslovni prelazak• dodeljeni uslovni prelazak
Programske strukture
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 16
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'
Programske strukture
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 17
Logički uslovni prelazak: IF(i) naredba
Primer 1: (primer1.m) Primer 2: (primer2.m)
IF(A > B) C=A+B;END
C = A + B
A>BDA
NE
Logički uslovni prelazak
IF(X > 0.)Y=X^2;ENDIF(X == 0)Y=2*X;ENDIF(X < 0.)Y=X;END
Primer 3:TOL=1.E-10IF((A-B) < TOL)…IF(ABS(A-B) < TOL)...
200 20
x y xx y xx y x
> == => =
Programske strukture
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 18
Zadatak:Napisati program za izračunavanje funkcije:
(zadatak1.m)
DISP(‘UNESITE X1 I X2’);X1=INPUT(‘X1=‘);X2=INPUT(‘X2=‘);IF X1<X2
Y=X1+X2ELSEIF X1=X2
Y=X1*X2ELSE
Y=X1-X2END
1 2 1 2
1 2 1 2
1 2 1 2
x x x xy x x x x
x x x x
+ <⎧⎪= ⋅ =⎨⎪ − >⎩
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 19
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 IFFALSE - izvršava se blok naredbi B2 koji sledi iza naredbe prelaska IF
B1
B2
IF( ) THENI
ELSE
END IF
B2
I
DA
NE
B1
Struktura IF…ELSEIF…ELSE…END
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 20
I
DA
NE
B1
Struktura IF…THEN
Primeri:
IF (A > B)C=A*B
ELSEC=A+B
END
IF(A > B)C=A*B
END
a b c a ba b c a b> ⇒ = ⋅≤ ⇒ = +
a b c a b> ⇒ = ⋅
IF I
ELSE
END
B1
IF I
END
B1
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 21
Zadatak: Za zadate vrednosti a i b, napisati deo programa koji izračunava vrednostc, prema sledećoj formuli
,,,
a b a bc a b a b
a b a b
− >⎧⎪= ⋅ <⎨⎪ + =⎩
1. REŠENJE(primer4_1.m)
IF(A > B)C=A-B
ELSEIF(A < B)
C=A*BELSE
C=A+BEND
END
3. REŠENJE(primer4_3.m)
IF(A > B)C=A-B
ELSE IF(A < B)C=A*B
ELSEC=A+B
END
2. REŠENJE(primer4_2.m)
IF(A > B)C=A-B
ELSEIF(A < B)
C=A*BENDIF(A == B)
C=A+BEND
END
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 22
Naredba višestrukog prelaska: SWITCH m (n1 , n2,…,ni)
n1 , n2,… - izraz uz koji se izvršavaju naredbe ako je jednak mm - izraz ili promenljiva
BiB0
m1 2 i
B1
m∉[1,i ]
SWITCH mCASE n1
B1٠٠٠
CASE niBi
OTHERWISEB0
END
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 23
Zadatak: Napisati program za izračunavanje vrednosti y prema formuli
⎪⎩
⎪⎨
⎧
=−==+
=321
21
21
21
k,xxk,x*xk,xx
y
DISP (’UNESITE X1,X2 I K’)X1=INPUT(‘X1=’);X2=INPUT(‘X2=‘);K=INPUT(‘K=‘);SWITCH KCASE 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ć 24
CIKLIČNE STRUKTURE
FOR i=m1:[m3:]m2
FOR - službena reči - celobrojna ili realna promenljivam1,m2,m3 - celobrojni ili realni aritmetički izrazi (ako se m3 ne navede uzima se
m3=1)
TELOCIKLUSA
i = m1
K<0
i=m +(K-1)m1 3
i = i + m3
i >m2
DA1 2 3
1 2 3
00
m m mm m m
≤ >≥ <
m1m1+m3m1+2m3...
ciklusatelokrozseprolazinek)m/)mmint((k
−≤+−=
01312
Prikaz ciklusa prema definiciji FOR-naredbe
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 25
TELOCIKLUSA
i=m , m , [m ]1 2 3
TELOCIKLUSA
i=m , m , [m ]1 2 3
FOR i=m1:[m3:]m2
telo ciklusa
END
Ciklusi sa DO naredbom
i=m1:[m3:]m2
i=m1:[m3:]m2
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 26
CIKLIČNE STRUKTURE
WHILE izraz
WHILE - službena rečizaraz - logički izrazWHILE naredba se izvršava sve dok je izraz tačan
Prikaz ciklusa prema definiciji WHILE-naredbe
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 27
STRUKTURE PODATAKA - NIZOVI
Niz - skup podataka istog tipaPrimeri u matematici: elementi vektora i matrica
{ }
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
nnnn
n
n
j,i
ni
a...aa.........
a...aaa...aa
aA
XX,...X,XX
21
22221
11211
21
IME NIZA I ELEMENTI NIZA
X MATRIC AA AA(1,2) - član1,2
Operacije sa članovima niza:
X - niz X(I) - i-ti član nizaX(I+1) X(3)=(X(1)+X(2))/2.0
A - matrica A(I,J) - član ai,j A(I,J)=C*A(I-1,J+2)
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 28
Primer1:NALAŽENJE SUME ELEMENATA NIZA
NAČIN 1 (zadatak3_1.m)
FOR I=1:20X(I)=INPUT(‘’);
ENDSUMA=0.0;
FOR I=1:20SUMA=SUMA+X(I);
ENDSUMAEND
NAČIN 2 (zadatak3_2.m)
X=INPUT(‘X=‘);SUMA=SUM(X)END
Primer2:SABIRANJE MATRICA
NAČIN 1 (primer5_1.m)
FOR I=1:3FOR J=1:4
C(I,J)= A(I,J)+B(I,J);ENDEND
NAČIN 2 (primer5_2.m)
C=A+B
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 29
Primer3:MNOŽENJE MATRICA
NAČIN 1 (primer6_1.m)
FOR I=1:4FOR 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
ENDEND
NAČIN 2 (primer6_2.m)
C=A*B;
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 30
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 potprogramaf - 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ć 31
Poziv funkcijskog potprograma: fun( [ s [ ,s ]…] )
fun - naziv pozvanog funkcijskog potprogramas - 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) Primer 2: (zbir1.m)
FUNCTION SUMA=SUMA(A,B,C,D) FUNCTION ZBIR=ZBIR(A,N)SUMA=A+B+C+D; ZBIR=0.;
END FOR I=1:NZBIR=ZBIR+A(I);
ENDEND
Pozivanje funkcije Način 2 (zbir2.m)
ZX=ZBIR(X,M) FUNCTION ZBIR=ZBIR(A,N)ZBIR=SUM(A);
END
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 32
OPŠTI POTPROGRAM
•• telo opšteg potprograma•
Razlika izmedju opšteg potprograma i funkcijskog potprograma je u tome štoopšti potprogram ne mora da ima function i ne vraća nikakve vrednosti programu izkojeg se poziva već je to samo skup naredbi koje se više puta ponavljaju pa susmeš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ć 33
Primer : FUNKCIJSKI POTPROGRAM ZA MNOZENJE MATRICA R=B*D
(mproiz.m)
FUNCTION R=MPROIZ(B,D,NCB,NCD,NVD)FOR I=1:NCBFOR J=1:NVDR(I,J)=0;FOR K=1:NCDR(I,J)=R(I,J)+B(I,K)*D(K,J);
ENDEND
ENDEND
B
NVB=NCD
NVD NVD
DR
NCB
NVBNCD NCB
ij
i,j•
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 34
F=1
K=1,N
A(K)
F=-F F=0
RETURN
=0
<0
>0
a/ b/
F=1IN=0
K=1,N
FPP F
A(K)
IN=IN+1
F=0
MOD(IN,2)
F=-1
RETURN
=0
<0
>0
= 0
REŠENI ISPITNI ZADACI
Primer 1: ODREĐIVANJE PREDZNAKA PROIZVODA ČLANOVA NIZA BEZ MNOZENJA (APRIL 89/90)
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 35
% PROGRAM GLAVNIA=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;
ENDIF A(K)=0
F=0;ENDEND
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 36
Primer 2: FUNKCIJSKI POTPROGRAM ZA ODREĐIVANJE NORME NIZA (OKTOBAR 90/91)
2 2 21 2 ... na a a a= + + +
(anorm.m)
FUNCTION AN=ANORM(A,N)AN=0.FOR I=1:NAN=AN+A(I)^2;ENDAN=SQRT(AN);END
(anorm2.m)
FUNCTION AN=ANORM2(A)AN=SQRT(SUM(A.^2));END
ANORM=0.
I=1,N
FPP ANORM
ANORM=ANORM+A(I)2
ANORM=SQRT(ANORM)
RETURN
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 37
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:NIF(A(I)>A(J))ELSE
XP=A(I)A(I)=A(J)A(J)=XP
ENDEND
ENDEND
DO I=1,N-1
PP SORT
XP=X(I)X(I)=X(J)X(J)=XP
RETURN
X(I)>X(J)DA
NE
DO I=1,N-1
PP SORT
XP=X(I)X(I)=X(J)X(J)=XP
RETURN
X(I)>X(J)DA
NE
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 38
Primer 4: FUNKCIJSKI POTPROGRAM ZA ODREDJIVANJE SREDNJE VREDNOSTINEGATIVNIH CLANOVA MATRICE (APRIL 89/90)
(negsre.m)FUNCTION SV=NEGSRE(A,N1,N2)
% INICIJALIZACIJAM=0;S=0;
% PETLJAFOR I=1:N1FOR J=1:N2
IF(A(I,J)<0.)M=M+1;S=S+A(I,J);
ENDEND
END% SREDNJA VREDNOST
IF M>0SV=S/M;
ENDEND
M=M+1
RETURN
A(I,J)<0NE
DA
M=0S=0
PP NEGSRE
RETURN
S=S+A(I,J)
SV=S/M
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 39
Primer 5: FUNKCIJSKI POTPROGRAM ZA ODREDJIVANJE VREDNOSTI CLANA MATRICE NA DIJAGONALI KAO RAZLIKE SUMA CLANOVA ODGOVARAJUCE VRSTE I KOLONE (OKTOBAR 90/91)
(diag.m)
FUNCTION A=DIAG(X,N)A=X;FOR I=1:NS=0.;FOR J=1:NS=S+A(I,J)-A(J,I);
ENDA(I,I)=S;
ENDEND
S=0.
J=1,N
OPP DIAG(A,N)
S=S+A(I,J)-A(J,I)
A(I,I)=S
RETURN
I=1,N
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 40
UNOŠENJE I IZDAVANJE PODATAKA
RAD SA DATOTEKAMA
LOAD ime
LOAD - službena rečime - puno ime datotekeučitava sadržaj datoteke i smešta je u promenljivu ime
SAVE ime [promenljiva] [-ASCII]
SAVE - službena rečime - puno ime datotekepromenljiva - lista promenljivihASCII - snimanje tekstualne datoteke, inače snima u binarnom formatuu datoteku ime snima sadržaje promenljivih promenljiva
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 41
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ć 42
Znakovna naredba dodele
promenljiva = izrazPrimer:
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žinaznakovnog podataka koji se javlja kao argument funkcije.
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 43
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 znakpridruž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ć 44
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 brojevakoji 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=6I=FINDSTR('LAV‘, 'JUGOSLAVIJA') → I=6
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 45
STRFIND(a,b)
Argumenti funkcije su znakovni izrazi a i b, a vrednost funkcije je niz brojevakoji definišu pozicije znaka u prvoj nisci (a) od koje se prvi put, sleva na desno, javljadruga niska (b). Ukoliko se druga niska ne nalazi u prvoj onda se vraća prazan niz [ ].
Primer:I=STRFIND('JUGOSLAVIJA', 'LAV') → I=6I=STRFIND('LAV‘, 'JUGOSLAVIJA') → I=[ ]
Izdvajanje znakovne podniske/podniza: v(i:j)
v - znakovne promenljiva; i,j - celobrojni izrazi
Vrednost funkcije je znakovna podniska izdvojena iz znakovnog podatka, koji jevrednost 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ć 46
REŠENI ISPITNI ZADACI(reseni1.m)% OKTOBAR 89/90 3. ZADATAK
DISP(’UNESI 30 RECI:’);FOR I=1:30A(I)=INPUT(‘’,’S’);
ENDB=INPUT(’UNESI SLOVO:\N’);FOR I=1:30K=0;FOR J=1:LENGTH(A(I))
IF(A(I)(J:J)==B)K=K+1
ENDENDIF(K>=2)DISP(A(I))
ENDENDEND
(reseni2.m)% SEPTEMBAR 90/91 3. ZADATAK
A=INPUT(‘A=‘,’S’)I=LENGTH(A);DISP([’IMA ’,NUM2STR(I),‘ SIMBOLA’])END
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 47
(reseni3.m)% JANUAR 91/92 3. ZADATAKFOR I=1:20C(I)=INPUT(‘’,’S’);
ENDFOR I=1:20K=0;FOR J=1:17
IF(C(I)(J:J+3)==’ABCD’)K=K+1;
ENDENDIF(K>0)DISP(NUM2STR(K))
ENDENDEND
(reseni4_1.m)% SEPTEMBAR 91/92 3. ZADATAKDATUM=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
(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ć 48
1 2 1 2
1 2 1 2
1 2 1 2
x x x xy x x x x
x x x x
+ <⎧⎪= ⋅ =⎨⎪ − >⎩
POSTUPAK IZRADE ZADATKA U MATLAB-U
Zadatak: Napisati program za izračunavanje funkcije:
1. Pokretanje programa pocinje klikom misa na ikonicu Matlab- a
2. Na ekranu se pojavljuje Matlab prozor koji je sada aktivni prozor. U njemu jeomogucena komunikacija sa MATLAB programskim prevodiocem. Program dajeznak >> 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 komandikoje su zadavane Matlab-u.
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 49
3. File =>New=>M-FileKomanda M-File sluzi za otvaranje novog rpozora zaformiranje M datoteke (slika desno).
4. U prozoru Editor vrši se kucanje programa(slika dole).
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 50
5. Nakon ispisivanja, program se pokrece klikom kursora na ikonicu Run.
Run
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 51
6. U komandnom prozoru(Command Window), nakonpokretanja programa, zahteva se unosenje odgovarajucih komadi.
U nasem primeru zahteva se unosenje X1 I X2. Ukoliko ihzapisujemo u obliku matrice , elementi se moraju smestitiunutar uglastih zagrada. Pri tome se vrste matrica odvajeju znakom; (tacka zarez), dok se elementiunutar jedne vrste razdvajajupraznim mestom ili zarezom. Prvo se trazi unosenje elemenatX1, zatim pritisko na Enter, unosenje X2.
Decembar 2005. RAČUNARSKI ALATI / Prof Nenad Grujović 52
Nakon unošenja X1 i X2, pritiskom na taster Enter, izbacuje se traženo rešžsenjenašeg zadatka.