Mathematica/Osnovni ukazi v Mathematici/Programiranje v Mathematici

Iz MaFiRaWiki

Vsebina

EVALUACIJA


If

If[test,then,else] je vgrajeni ukaz, ki izračuna then, če je test True, in else če je False

Npr:

If[7 > 8, x, y]

vrne

y

saj je 7 < 8.


If[test,then,else,unknown] je vgrajeni ukaz, ki izračuna then, če je test True, else če je False ter unknown, če test ni niti True niti False

Npr:

If[x == y, a, b, c]

vrne

c

saj ne vemo, koliko sta vrednosti x in y.


Do

Do[expr,{n}] je ukaz, ki n - krat preračuna formulo expr

Npr:

Do[Print[Plus[x, 1]], {2}]

vrne

1 + x
1 + x


Do[expr,{i,imax}] je ukaz, ki izvaja expr ponavljajoče za i med 1 in imax, po korakih za 1

Npr:

Do[ Print[i!], {i, 5} ]

vrne

1
2
6
24
120


While

While[test,body] je ukaz, ki izračunava body ponavljajoče, dokler je test True

Npr:

n = 17
While[(n = Floor[n/2]) != 0, Print[n]]

vrne

8
4
2
1


For

For[start,test,incr,body] je ukaz, ki izračuna start, nato ponavljajoče izvaja body in incr, vse dokler test ni False

Npr:

For[i=1, i < 4, i++, Print[i]]

vrne

1
2
3 


FUNKCIJSKO PROGRAMIRANJE


Čista funkcija

Function[body] ali body& sta ukaza za čisto funkcijo. Formalni parametri so # (ali #1), #2, ...


Function[x,body] je vgrajeni uakz, za čisto funkcijo z enim samim formalnim paramatrom x


Map

Map[f,{a,b,...}] je ukaz, ki uporabi f na vsakem elementu v seznamu in vrne seznam {f[a],f[b],...}

Npr:

Map[ Function[x, x^2], a + b + c ] 

uporabi funkcijo na vsakem clenu posebej in vrne

a2 + b2 + c2


Apply

Apply[f,{a,b,...}] je ukaz, ki uporabi f na vseh elementih seznama in vrne f[a,b,...]

Npr:

Apply[Plus,{a,b,c}] 

vrne

a+b+c


Cases

Cases[list,form] je vgrajeni ukaz, ki vrne elemente seznama, ki se ujemajo z vzorcem form

Npr:

Cases[2, x, 4, _Integer] 

vrne

{2,4}


Cases[expr,lhs->rhs] ukaz, ki najde elemente izraza expr, ki se ujemajo z vzorcem lhs, ter vrne rezultat, ki se nanasa na rhs

Npr:

Cases[{3, 4, x, x^2, x^3}, x^n_ -> n]

vrne

{2,3}


Select

Select[list,test] je ukaz, ki vrne elemente, za katere je test[elem] True

Npr:

Select[{1,3,6,8,10},# > 5&] 

vrne elemnte, ki so vecji od 5, tj.

{6,8,10}


Array

Array[f,n] je ukaz, ki ustvari seznam dolžine n, oblike {f[1],f[2],...,f[n]}

Npr:

Array[f,3]

vrne

{f[1], f[2], f[3]}


MANIPULIRANJE Z NIZI OZ. 'STRINGI'


String

String je glava od niza "text"

Npr:

"string" 

vrne

string


StringJoin

StringJoin[{s1,s2,...}] je ukaz, ki združi nize s1, s2, ...

Npr:

StringJoin[{"rac", "unaln", "istvo"}]

vrne

racunalnistvo


StringLength

StringLength[s] je ukaz, ki vrne število znakov v nizu s

Npr:

StringLength["mathematica"]

vrne

11


StringReverse

StringReverse[s] je ukaz, ki obrne vrstni red znakov v nizu s

Npr:

StringReverse["fakulteta"]

vrne

atetlukaf


StringTake

StringTake[s, n] je ukaz, ki vrne niz, sestavljen iz prvih n znakov niza s

Npr:

StringTake["tetamicka", 4]

vrne

teta


StringTake[s, -n] je ukaz, ki vrne niz, sestavljen iz zadnjih n znakov niza s

Npr:

StringTake["tetamicka", -5]

vrne

micka


StringTake[s, {n}] je ukaz, ki vrne n-ti znak iz niza s

Npr:

StringTake["programiranje", {7}]

vrne

m


StringTake[s, {n1,n2}] je ukaz, ki vrne znake med n1 in n2 v nizu s (vključno z njima)

Npr:

StringTake["programiranje", {7,10}] 

vrne

mira


StringInsert

StringInsert[s,snov,n] je vgrajeni ukaz, ki vstavi niz snov na n-to mesto v nizu s

Npr:

StringInsert["programiranje", "amam", 8]

vrne

programamamiranje


StringReplace

StringReplace[s,sb->sbnov] je ukaz, ki zamenja sb s sbnov kjerkoli v nizu s se le ta (sb) pojavi

Npr:

StringReplace["abc abcb abdc", "ab" ~~ _ -> "X"]

vrne

X Xb Xc

pri čemer "ab" ~~ _ pomeni niz ab, ki mu sledi katerikoli znak (le eden).


StringReplacePart[s,snov,{m,n}] je ukaz, ki zamenja znake na mestih od m do n niza s z novih nizom snov

Npr:

StringReplacePart["programiranje","ani",{1,6}]

vrne

animiranje


StringPosition

StringPosition[s, sub] je ukaz, ki vrne seznam začetnih in končnih pozicij na katerih se pojavi sub kot podniz niza s

Npr:

StringPosition["abcdabcdaabcabcd", "abc"]

vrne

{{1, 3}, {5, 7}, {10, 12}, {13, 15}}


StringCases

StringCases["string", patt] je ukaz, ki vrne seznam podnizov niza "string", ki se ujemajo z nizom patt

Npr:

StringCases["abc abcb abdc", "ab" ~~ _]

vrne

{abc, abc, abd}

pri čemer "ab" ~~ _ pomeni niz ab, ki mu sledi katerikoli znak (le eden).


StringSplit

StringSplit[s] je ukaz, ki razcepi niz s na podnize, ločene s presledki

Npr:

StringSplit["a b::c d::e f g"]  

vrne

{a,b::c,d::e,f,g}


StringSplit[s,del] je ukaz, ki razcepi niz s vsakic, ko se pojavi znak oz. niz del

Npr:

StringSplit["a b::c d::e f g", "::"]  

vrne

{"a b", "c d", "e f  g"}


Characters

Characters["string"] je vgrajeni ukaz, ki preoblikuje niz v seznam znakov

Npr:

Characters["mathematica"]

vrne

{m, a, t, h, e, m, a, t, i, c, a}


StringJoin

StringJoin[{"c1","c2",...}] je ukaz, ki preoblikuje seznam zankov c1, c2, ... v niz

Npr:

StringJoin[{"r","a","č","u","n","a","l","n","i","k"}]

vrne

računalnik


UpperCaseQ

UpperCaseQ[string] je ukaz, ki preveri, če so vsi znaki v nizu velike črke

Npr:

UpperCaseQ["MešanO"]

vrne

False


LowerCaseQ

LowerCaseQ[string] je ukaz, ki preveri, če so vsi znaki v nizu male črke

Npr:

LowerCaseQ[seznam]

vrne

True


Glej tudi

Osebna orodja