next up previous contents
Next: Matemaattiset funktiot (matfunc.pas) Up: Analyysiohjelmiston toteutus Previous: Parametritiedostojen jäsennys (parlex.pas)

Laskin (calc.pas)

Tämä moduuli määrittelee funktioita, proseduureja sekä tietotyyppejä aritmeettisten lausekkeiden jäsentämiseen ja evaluointiin. Moduuli anatools.pas käyttää tätä moduulia rekisteröintisekvenssien laskutoimituksiin. Laskin soveltuu sellaisenaan laskutoimitusten suorittamiseen reaaliluvuilla, mutta sen toiminnallisuutta on mahdollista laajentaa. Laskin kykenee jäsentämään ja evaluoimaan lausekkeita, jotka sisältävät muuttujia, joiden tyyppi on käyttäjän määrittelemä. Moduuli anatools.pas määrittelee uuden muuttujatyypin, joka kuvaa rekisteröintisekvenssejä, jolloin laskimella voi suorittaa laskutoimituksia rekisteröintisekvensseillä. Uuden muuttujatyypin määrittely tapahtuu toteuttamalla moduulin calc.pas määrittelemästä luokasta TUserVar peritty luokka. Laskutoimitusten semantiikka toteutetaan määrittelemällä laskutoimituksia vastaavat virtuaalimetodit halutulla tavalla.

Laskin käsittelee lausekkeita kolmessa muodossa: merkkijonona, lineaariseksi jäsennettynä listana ja jäsennyspuuna. Funktiolla StringToList merkkijono voidaan jäsentää lineaariseksi listaksi. Lista voidaan jäsentää evaluointia varten jäsennyspuuksi funktiolla ListToTree. Funktio SimplifyTree suorittaa yksinkertaisia optimointeja jäsennyspuulle. Jäsennyspuun arvo voidaan evaluoida funktiolla EvaluateTree.

Laskin sisältää normaalit aritmeettiset operaatiot: yhteen-, vähennys-, kerto- ja jakolaskun sekä potenssiin korotuksen. Lisäksi laskin sisältää suhteellisen runsaan määrän funktioita sekä symboliset vakiot $\pi$ ja e (luonnollinen luku), joihin laskimelle jäsennettäväksi annettavissa lausekkeissa voi viitata symboleilla PI ja #E. Moduuli määrittelee myös globaalit muuttujat State_X, State_Y, State_Z sekä State_T, joiden arvoihin lausekkeissa voi viitata symboleilla X, Y, Z ja T. Näiden muuttujien avulla laskinta voi käyttää halutun lausekkeen evaluointiin kolmiulotteisessa avaruudessa eri ajanhetkinä. Lausekkeissa voi käyttää myös pallokoordinaatteja, joihin voi viitata symboleilla R, PHI ja THETA. Käyttäjän määrittelemää tyyppiä olevat muuttujat tulee lausekkeissa sulkea kulmasulkujen sisään.


next up previous contents
Next: Matemaattiset funktiot (matfunc.pas) Up: Analyysiohjelmiston toteutus Previous: Parametritiedostojen jäsennys (parlex.pas)
Antti Miettinen
9/3/1997

Valid HTML 3.2!