Kondicionali

lhs := rhs/;test    - koristi ovu definiciju samo ako test TRUE

If[test, then, else]    -   izracunaj then ako je test TRUE, a else ako je test FALSE

Which[test (1), vrijednost1, test (2), vrijednost2, ...]     -   izracunaj test (i) redom, vracajuci vrijednost vezanu za prvi koji je TRUE

If[test, then, else, unknown]    -   forma If koja ukljucuje koji izraz koristiti ako test nije ni True ni False

TrueQ[expr]     - vrati TRUE akoje je expr TRUE i FALSE inace

lhs === rhs   ili  SameQ[rhs, lhs]     - vrati TRUE ako su rhs i lhs identicni i False inace

lhs =!= rhs   ili Unsame[rhs, lhs]    - vrati True ako rhs i lhs nisu identicni i False inace

Primjeri

x := 3/;1>2

x

x

x := 3/;1<2

x

3

Clear[x, y] ; test := If[x<y, "Manji", "Veci"] ;

x := 1 ; y := 2 ; test

Manji

x := 2 ; y := 1 ; test

Veci

SameQ[x, y]

False

SameQ[x, 2]

True

UnsameQ[x, y]

True

UnsameQ[x, 2]

False

expr1 &&expr2&&expr3&& ...     - evaluira dok jedan od expr (i) nije FALSE

expr1 || expr2 || expr3 || ...     - evaluira dok jedan od expr (i) nije TRUE

Petlje i Kontrolne Strukture

Do[expr, {i, imax}]     -   radi expr gdje i varira od 1 do imax

Do[expr, {i, imin, imax, di}]     -   radi expr gdje i varira od 1imin do imax sa inkrementom di

Do[expr, {n}]     - uradi expr n puta

Primjeri

t = z ; Do[t = 1/(1 + k t), {k, 2, 6, 2}] ; t

1/(1 + 6/(1 + 4/(1 + 2 z)))

Do[Print[{i, j}], {i, 4}, {j, i - 1}]

{2, 1}

{3, 1}

{3, 2}

{4, 1}

{4, 2}

{4, 3}

While[test, tijelo]      - evaluiraj tijelo repetitivno, sve dok je test TRUE

For[start, test, incr, body]     -   evaluiraj start, onda repetitivno evaluiraj body i incr, sve dok test ne bude FALSE

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

8

4

2

1

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

1

2

3

Clear[x] For[i = 1 ; t = x, i^2<10, i ++, t = t^2 + i ; Print[t]]

1 + x^2

2 + (1 + x^2)^2

3 + (2 + (1 + x^2)^2)^2

Break[] - izadji iz najblize petlje

Continue[]    -   idi do slijedeceg koraka u trenutnoj petlji

Return[expr]    -   vrati vrijednost expr, izlazeci iz svih procedure i petji u funkciji

Goto[name]     -   idi na element Label[name]   u trenutnoj proceduri

Primjeri

t = 1 ; Do[t *= k ; Print[t] ; If[t>19, Break[]],  {k, 10}]

1

2

6

24

t = 1 ; Do[t *= k ; Print[t] ; If[k<3, Continue[]] ; t += 2, {k, 10}]

1

2

6

32

170

1032

7238

57920

521298

5213000

f[x_] :=  (If[x>5, Return[big]] ; t = x^3 ; Return[t - 7])

f[10]

big

f[3]

20


Created by Mathematica  (November 14, 2007)