Ohjelmointi

Mathematican oma ohjelmointikieli antaa mahdollisuudet varsin monipuoliseen ohjelmointiin. Yksinkertaisissa ohjelmissa komentoja vain suoritetaan järjestyksessä. Lisäksi saatetaan käyttää mm. Table-komentoa ja määritellä omia funktioita. Toisinaan peräkkäin suoritettavat komennot kannattaa kirjoittaa tiedostoon jollakin tekstieditorilla. Tiedosto tallennetaan m-tiedostoksi eli esimerkiksi tiedosto.m. Tiedosto ajetaan antamalla Mathematicassa komento
<<tiedosto.m
Seuraavassa esitellään lyhyesti tavallisimmat ohjelmoinnin ohjausrakenteet: For, Do, While ja If. Lisäksi tutustutaan mutkikkaammissa ohjelmissa varsin hyödylliseen Module-komentoon.

Mathematica Book
Muita ohjausrakenteita: luku
2.5.9

For

For-lauseen syntaksi on seuraavanlainen:

For[alkuehto,ehtolauseke,lisäys,toistolauseke]

For-lauseessa suoritetaan ensin alkuehto, jonka jälkeen suoritetaan toistuvasti toistolauseke ja lisäys, kunnes ehtolauseke ei ole enää voimassa.
Jos alkuehto, ehtolauseke, lisäys tai toistolauseke koostuu useista käskyistä, ne erotetaan toisistaan puolipisteellä.

[Graphics:../Images/gr_630.gif]
[Graphics:../Images/gr_631.gif]
[Graphics:../Images/gr_632.gif]
[Graphics:../Images/gr_633.gif]
[Graphics:../Images/gr_634.gif]
[Graphics:../Images/gr_635.gif]

Do

[Graphics:../Images/gr_636.gif] [Graphics:../Images/gr_637.gif]
[Graphics:../Images/gr_638.gif] [Graphics:../Images/gr_639.gif]
[Graphics:../Images/gr_640.gif] [Graphics:../Images/gr_641.gif]

Jos
toistolauseke koostuu useista käskyistä, ne erotetaan toisistaan puolipisteellä. Vertaa: Table-komento

[Graphics:../Images/gr_642.gif]
[Graphics:../Images/gr_643.gif]
[Graphics:../Images/gr_644.gif]
[Graphics:../Images/gr_645.gif]

While

While[ehtolauseke, toistolauseke] tarkistaa ensin, onko ehtolauseke tosi ja toistaa sitten toistolauseketta, niin kauan kuin ehtolauseke on tosi. Jos toistolauseke koostuu useista käskyistä, ne erotetaan toisistaan puolipisteellä.
Ehtolauseke muodostetaan vertailuoperaatioiden ja loogisten operaatioiden avulla.

[Graphics:../Images/gr_646.gif]
[Graphics:../Images/gr_647.gif]
[Graphics:../Images/gr_648.gif]
[Graphics:../Images/gr_649.gif]
[Graphics:../Images/gr_650.gif]
[Graphics:../Images/gr_651.gif]
[Graphics:../Images/gr_652.gif]
[Graphics:../Images/gr_653.gif]

If

If-lauseella on useita eri muotoja. Siihen liittyvä ehtolauseke muodostetaan vertailuoperaatioiden ja loogisten operaatioiden avulla.

If[ehtolauseke, lauseke]
Jos ehtolauseke on tosi, niin suoritetaan lauseke.

[Graphics:../Images/gr_654.gif]
[Graphics:../Images/gr_655.gif]

If[ehtolauseke, lauseke1, lauseke2]
Jos ehtolauseke on tosi, niin suoritetaan lauseke1 ja jos se on epätosi suoritetaan lauseke2. Määritellään esimerkkinä Heavisiden funktio [Graphics:../Images/gr_656.gif].

[Graphics:../Images/gr_657.gif]
[Graphics:../Images/gr_658.gif]
[Graphics:../Images/gr_659.gif]

Module

Module-komennolla voidaan ohjelmoida omia komentoja ja funktioita. Sen sisällä määritellyt muuttujat ovat lokaaleja, eivätkä viittaa mihinkään Module-komennon ulkopuolella määriteltyyn muuttujaan. Tämä mahdollistaa samannimisten muuttujien käytön Module-komennon sisä- ja ulkopuolella.
Module[{x,y,...},lauseke]
Lokaalit muuttujat erotetaan toisistaan pilkulla ja niille voidaan antaa myös alkuarvot, esimerkiksi {x=x0, y=y0, ...}
Lausekeosassa komennot erotetaan toisistaan puolipisteellä. Lausekeosan viimeisen komennon tulos tulostuu automaattisesti.

[Graphics:../Images/gr_660.gif]
[Graphics:../Images/gr_661.gif]
[Graphics:../Images/gr_662.gif]
[Graphics:../Images/gr_663.gif]

Ohjelmat rakennetaan usein funktioiksi. Ohjelma voidaan siten suorittaa funktiolle annetun argumentin arvolla.

[Graphics:../Images/gr_664.gif]
[Graphics:../Images/gr_665.gif]
[Graphics:../Images/gr_666.gif]

Joskus on tarpeen sallia viittaukset komennon ulkopuolelle globaaleihin muuttujiin. Tällöin käytetään Module-komennon sijasta Block-komentoa. Block-komennossa muuttujille luodaan lokaalit alkuarvot, mutta muuttujien nimet voivat olla globaaleja.

Mathematica Book
Lisää Module- ja Block-komennoista: luku
2.6