Simo K. Kivelä / 14.09.2010

Ohjelmoinnin alkeet

In[1]:=

luento6_1.gif

Skriptit

Skripti tarkoittaa ohjelmointirakennetta, jossa suoritettavat käskyt kirjoitetaan peräkkäin. Kun tämä ajetaan, ts. käskyt suoritetaan, saadaan kerralla tehdyksi ehkä hyvinkin monimutkainen asia. Seuraava on Mathematica-skripti, joka piirtää kolmion, sen korkeusjanat ja ympäri piirretyn ympyrän.

In[2]:=

luento6_2.gif

Out[16]=

luento6_3.gif

Piirrettävää kuviota on helppoa muuttaa antamalla skriptin alussa jotkin toiset kolmion kärkipisteet ja ajamalla skripti uudelleen.

In[17]:=

luento6_4.gif

Skripti voidaan sijoittaa myös tekstitiedostoon, jonka tyyppinä on .m . Jos tiedoston nimi on vaikkapa skripti.m
ja se sijaitsee hakemistossa, joka on Mathematican polussa, se ajetaan komennolla << (Get):

In[18]:=

luento6_5.gif

Out[18]=

luento6_6.gif

In[19]:=

luento6_7.gif

Laajemmat funktiot

Ohjelmointi voidaan viedä hieman pidemmälle kirjoittamalla laskentarutiini funktioksi, joka saa argumenteikseen kolmion kärkipisteet:

In[20]:=

luento6_8.gif

In[21]:=

luento6_9.gif

Out[21]=

luento6_10.gif

Module-komennon ensimmäinen argumentti {ab, bc, ca, abkp, bckp, cakp, abkohtis, bckohtis, ratk, kp, sade} ilmoittaa ne sisäiset muuttujat, jotka eivät näy ulkopuolelle ja joita ei sekoiteta ulkopuolisiin mahdollisesti samannimisiin muuttujiin. Esimerkiksi:

In[22]:=

luento6_11.gif

Out[22]=

luento6_12.gif

Kolmion kärkipisteille voidaan myös ensin antaa nimet:

In[23]:=

luento6_13.gif

In[26]:=

luento6_14.gif

Out[26]=

luento6_15.gif

Myös funktiomäärittelyt voidaan luonnollisesti tallettaa ulkoiseen tiedostoon.

Paketit (Packages)

Ulkoisilla tiedostolla voi olla myös mutkikkaampi rakenne. Ne voivat sisältää erilaisia mekanismeja käytössä olevien muuttujien suojaamiseen (jos ladataan kaksi tiedostoa, niissä olevat mahdollisesti samanimiset muuttujat eivät häiritse toisiaan yms.), opastuksen antamiseen jne. Tällaista rakennetta kutsutaan nimellä Package. Yksityiskohtiin ei tässä kuitenkaan puututa.

Spikey Created with Wolfram Mathematica 7.0