funktiopiirturi
Class FuncXtoY

java.lang.Object
  extended by funktiopiirturi.FuncXtoY

public class FuncXtoY
extends java.lang.Object

FuncXtoY esittää muotoa y = f(x) olevaa funktiota, jonka arvon voi laskea antamalla x.


Field Summary
private static Constant CONST_E
           
private static Constant CONST_PI
           
private static java.util.Set<java.lang.String> functions
           
private  Expression rightSide
           
private static java.util.Hashtable<java.lang.String,Expression> symbols
           
private static Variable varX
           
 
Constructor Summary
FuncXtoY(java.lang.String s)
          Luo rakentaa parametrina annetusta merkkijonosta muotoa y=f(x) olevan funktion.
 
Method Summary
private static void calcStack(java.util.Stack<java.lang.String> opStack, java.util.Stack<Expression> valStack, java.lang.String opNotAllowed, boolean funcAllowed)
          Apufunktio, joka kokoaa pinossa olevia operaatioita, kunnes joko operaatiot loppuvat tai kohdataan liian alhaisen prioriteetin operaatio (nämä on annettu parametrina).
 double calcValue(double x)
          Laskee funktion arvon parametrina annetussa kohdassa.
private static boolean close(double val1, double val2)
          Testauksessa hyödynnettävä funktio, joka tarkastaa, ovatko liukuluvut käytännössä samoja.
static Expression Construct(java.util.List<java.lang.String> atoms)
          Rakentaa parametrina annetusta matemaattisesta alkiolistasta rekursiivisen puumaisen lausekerakenteen.
static void main(java.lang.String[] args)
          Testaukseen tarkoitettu main-metodi.
private static void printConstructTest(java.lang.String s)
          Testausfunktio, joka tulostaa parametrina annetun merkkijonon, ja siitä johdetun kaavan käyttäjän vertailtavaksi.
private static void printResult(java.lang.String s, boolean succ)
          Testausapufunktio, joka tulostaa annetun testin string-esityksen, sekä tiedon testin onnistumisesta ruudulle.
private static java.util.List<java.lang.String> Split(java.lang.String s)
          Pilkkoo parametrina annetun matemaattisen lausekkeen alkeisosasiksi (operaatioihin, funktioihin, muutujiin, vakioihin, sulkuihin).
private static void testFuncXtoY(java.lang.String expr, double x, double val)
          FuncXtoY-luokan testaukseen tarkoitettu apumetodi.
private static void testSplit(java.lang.String s)
          Lausekkeen sisävävän string-muuttujan paloittelun testaukseen käytettävä metodi.
private static void testValue(Expression e, double val)
          Testausfunktio tutkii, täsmääkö lausekkeen arvo annettuun vertailuarvoon, ja tulostaa verrattavan lausekkeen, tulosarvon sekä täsmäsikö se vertailuarvoon.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

functions

private static java.util.Set<java.lang.String> functions

symbols

private static java.util.Hashtable<java.lang.String,Expression> symbols

CONST_PI

private static Constant CONST_PI

CONST_E

private static Constant CONST_E

varX

private static Variable varX

rightSide

private Expression rightSide
Constructor Detail

FuncXtoY

public FuncXtoY(java.lang.String s)
         throws UndefinedSymbolException,
                NotDefinedOperationException,
                ParseException,
                java.lang.NumberFormatException
Luo rakentaa parametrina annetusta merkkijonosta muotoa y=f(x) olevan funktion.

Parameters:
s - funktion oikean puolen string-esitys
Throws:
UndefinedSymbolException
NotDefinedOperationException
ParseException
java.lang.NumberFormatException
Method Detail

Split

private static java.util.List<java.lang.String> Split(java.lang.String s)
Pilkkoo parametrina annetun matemaattisen lausekkeen alkeisosasiksi (operaatioihin, funktioihin, muutujiin, vakioihin, sulkuihin). Palauttaa String-listan, jossa alkeisosaset ovat erikseen.

Parameters:
s - pilkottava lauseke/funktio
Returns:
lista, jossa lauseke alkeisosasina

Construct

public static Expression Construct(java.util.List<java.lang.String> atoms)
                            throws UndefinedSymbolException,
                                   NotDefinedOperationException,
                                   ParseException,
                                   java.lang.NumberFormatException
Rakentaa parametrina annetusta matemaattisesta alkiolistasta rekursiivisen puumaisen lausekerakenteen. Mahdottoman kohdan sattuessa heittää asiaankuluvan poikkeuksen.

Parameters:
atoms - alkiolista, joka sisältää matemaattisen lausekkeen alkeisosaset oikeassa järjestyksessä. Alkiot ovat string muodossa.
Returns:
lauseke, jonka arvon voi laskea
Throws:
UndefinedSymbolException
NotDefinedOperationException
ParseException
java.lang.NumberFormatException

calcStack

private static void calcStack(java.util.Stack<java.lang.String> opStack,
                              java.util.Stack<Expression> valStack,
                              java.lang.String opNotAllowed,
                              boolean funcAllowed)
Apufunktio, joka kokoaa pinossa olevia operaatioita, kunnes joko operaatiot loppuvat tai kohdataan liian alhaisen prioriteetin operaatio (nämä on annettu parametrina).

Parameters:
opStack - operaatiopino
valStack - operandipino. Tästä otetaan operandit operaatioille, ja tähän työnnetään koottu lopputulos.
opNotAllowed - operaatiot, joihin funktion suoritus loppuu
funcAllowed - kootaanko funktiot (vai pysäytetäänkö niihin)

calcValue

public double calcValue(double x)
Laskee funktion arvon parametrina annetussa kohdassa.

Parameters:
x - parametri x
Returns:
funktion arvo

close

private static boolean close(double val1,
                             double val2)
Testauksessa hyödynnettävä funktio, joka tarkastaa, ovatko liukuluvut käytännössä samoja.

Parameters:
val1,val2 - testattavat arvot

printResult

private static void printResult(java.lang.String s,
                                boolean succ)
Testausapufunktio, joka tulostaa annetun testin string-esityksen, sekä tiedon testin onnistumisesta ruudulle. Tuloste pilkkoutuu alle 80 merkin mittaisiksi riveiksi.

Parameters:
s -
succ -

testValue

private static void testValue(Expression e,
                              double val)
Testausfunktio tutkii, täsmääkö lausekkeen arvo annettuun vertailuarvoon, ja tulostaa verrattavan lausekkeen, tulosarvon sekä täsmäsikö se vertailuarvoon. Tulostaa tuloksen näytölle.

Parameters:
e - lauseke, jonka arvoa tutkitaan
val - vertailuarvo

testSplit

private static void testSplit(java.lang.String s)
Lausekkeen sisävävän string-muuttujan paloittelun testaukseen käytettävä metodi. Tulostaa alkuperäisen lausekkeen, sekä paloitellun version palat välilyönnillä eroteltuina.

Parameters:
s - paloiteltava merkkijono

printConstructTest

private static void printConstructTest(java.lang.String s)
Testausfunktio, joka tulostaa parametrina annetun merkkijonon, ja siitä johdetun kaavan käyttäjän vertailtavaksi.

Parameters:
s - vertailtava kaava

testFuncXtoY

private static void testFuncXtoY(java.lang.String expr,
                                 double x,
                                 double val)
FuncXtoY-luokan testaukseen tarkoitettu apumetodi. Luo ko. luokan ilmentymän parametrina annetusta lausekkeesta. Laskee lausekkeen arvon annetussa pisteessä, ja vertaa sitä valmiiksi annettuun vertailuarvoon. Tulostaa lausekkeen, lasketun arvon sekä vertailun tuloksen näytölle.

Parameters:
expr - lauseke, josta funktion generoidaan
x - piste, jossa funktion arvo lasketaan
val - vertailuarvo

main

public static void main(java.lang.String[] args)
Testaukseen tarkoitettu main-metodi.

Parameters:
args -