3. Ohjelmoitavuudesta
3.1 Komentotiedoston tekeminen ja ajo, parametrinvälitys
Maplessa on mahdollista tehdä ja ajaa komentotiedostoja script-kielen luonteisesti.
Oheinen pikku ohjelma laskee annettujen lukujen aritmeettisen keskiarvon:
> karvo:=proc()
> a:=readstat("Anna lista luvuista, joiden keskiarvon haluat (tyyliin [1,2,...]: ");
> b:=nops(a):
> s:=0:
> for i from 1 to b do
> s:=s+a[i]:
> od:
> print(s/b);
> end:
Warning, `a` is implicitly declared local
Warning, `b` is implicitly declared local
Warning, `s` is implicitly declared local
Warning, `i` is implicitly declared local
Ohjelma käynnisteään komennolla karvo(); . Alla olevilla komennoilla lasketaan lukujen 1, 2, 3, 4, 3, 6, ja 5 keskiarvo:
> karvo();
Anna lista luvuista, joiden keskiarvon haluat (tyyliin [1,2,...]: [1,2,3,4,3,6,5];
> restart:
Ohjelman käynnistyskomennossa voidaan myös suoraan välittää parametreja ohjelmalle. Tällä tavoin voidaan määritellä tarvittaessa uusia funktioita tiettyjen toistuvien laskutoimitusten suorittamiseksi. Esimerkiksi äskeisestä keskiarvo-ohjelmasta saisi seuraavasti kätevämmän:
> karvo2:=proc(a)
> b:=nops(a):
> s:=0:
> for i from 1 to b do
> s:=s+a[i]:
> od:
> print(s/b);
> end:
Warning, `b` is implicitly declared local
Warning, `s` is implicitly declared local
Warning, `i` is implicitly declared local
Nyt luvut, joiden aritmeettinen keskiarvo halutaan laskea, voidaan välittää suoraan käynnistyskomennossa. Niinpä äskeinen keskiarvon laskeminen hoituu seuraavalla komennolla:
> karvo2([1,2,3,4,3,6,5]);
> restart:
Parametreja voi käynnistyskomennossa olla myös useampia. Esimerkiksi neljän luvun summan laskemista varten voitaisiin määritellä funktio:
> neljanSumma:=proc(i,j,k,l)
> print(i+j+k+l);
> end:
Nyt lukujen 1, 2, 7 ja 11 summa saadaan komennolla
> neljanSumma(1,2,7,11);
> restart:
3.2 Maple-koodien tallennus ja lataus
Kirjoitetut koodit tallennetaan tavallisesti muodossa *.mpl, jolloin ne voidaan haluttaessa ladata käyttöön. Esimerkiksi keskiarvon laskeva ohjelma:
> karvo2:=proc(a)
> b:=nops(a):
> s:=0:
> for i from 1 to b do
> s:=s+a[i]:
> od:
> print(s/b);
> end:
Warning, `b` is implicitly declared local
Warning, `s` is implicitly declared local
Warning, `i` is implicitly declared local
Ohjelma tallennetaan komennolla save . Komennossa on mainittava ohjelman nimi sekä nimi, jolla koodi tallennetaan. Jos koodi halutaan tallentaa johonkin muualle kuin oletushakemistoon, on tallennuskomennossa annettava hakemistopolku.
> save (karvo2, `keskiarvo.mpl`):
Tallennuksen jälkeen ohjelma voidaan aina haluttaessa ladata käyttöön komennolla read :
> read `keskiarvo.mpl`:
Mikäli ohjelma ei ole tallennettuna oletushakemistoon, on read -komennossa annettava hakemistopolku.
Maple-koodeja on hyödyllistä tallentaa ja koota itselleen ohjelmakirjastoja. Koodeja on muutenkin kohtuullisessa määrin yleisesti saatavilla.