|
Parser.jar
CParser.jar
GraphPanel.jar
NOT: CParser Parser'in complex islemler yapabilen halidir. Tek
farki, input olarak double degil Complex alir ve output olarak da
double degil Complex verir.
Parser
da desteklenen fonksiyonlar icin tiklayin!
CParser
da desteklenen fonksiyonlar icin tiklayin!
Parser'in
Kullanimi:
Parser.jar dosyasini download ettikten sonra winzip ile kendi programinizin
oldugu yere açin.
Metodlar:
public void setX(double
val)
public void setY(double val)
public
void setZ(double val)
public void setT(double val)
public void setU(double val)
public void setV(double val)
public double getX()
public double getY()
public double getZ()
public double getT()
public double getU()
public double getV()
public void setvar(int order,double val)
public double getvar(int val)
public void parse(String func) throws ParseException
public double calculate() throws ParseException
public String toFormattedString(double num,int prec1,int prec2)
Programda sirasiyla x,y,z,t,u ve v degiskenleri tanimlidir. Bu degiskenlerin
degerlerini setX(),.. vb metodlariyla
degistirebilirsiniz. getX(),... vb
metodlariyla o anki x degerini alabilirsiniz. Ayrica setvar(int
order,double val) metodu ile order'inci sirada bulunan degiskenin
degerini degistirebilirsiniz. Mesela setvar(0,10)
x'in degerini 10'a esitler.
public void parse(String func) throws ParseException
public double calculate() throws ParseException
parse(String func) metodu verilen parametreyi parse eder.
Bu metod ile parse edilen bir fonksiyon calculate()
fonksiyonu kullanilarak hesaplanir.
Örnekler:
x^3+sin(x)+cos(x)fonksiyonunun x=3 deki degerini hesaplamak için
Parser p=new Parser();
try{
p.setX(3);
double result=p.evaluate("x^3+sin(x)+cos(x)");
}catch(ParseException pex){}
x^3+sin(x)+cos(x) fonksiyonunun x=1 den x=100 e kadar olan degerlerini
tek tek hesaplamak için
Parser p=new Parser();
try{
p.parse("x^3+sin(x)+cos(x)");
for(int i=1;i<100;i++){
p.setX(i);
p.calculate();
// burada gerekli
isleri yap
}
}catch(ParseException pex){}
NOT: Bir programda, programin en basinda Parser
p=new Parser() seklinde bir tanimlama yapip bu degiskeni
tüm program boyunca kullanmak hiz acisindan daha iyidir!
public
static String toFormattedString(double num,int prec1,int prec2)
metodu verilen sayinin precision'ini ayarlamak icin kullanilir. prec1
virgülden önceki kismin precision'ini için, prec2
ise virgülden sonraki kismin precision'ini ayarlamak için
kullanilir. Bu parametrelerden herhangibiri 0 olursa, o parametre
ile ilgili prec. ayari yapilmaz.
Örnekler:
toFormattedString("12345.67890",0,3)
= "12345.678"
toFormattedString("12345.67890",3,3)
= "123.456E2"
toFormattedString("12345.67890",3,0)
= "123.45678E2"
GraphPanel'in Kullanimi:
GraphPanel.jar dosyasini download ettikten sonra winzip ile kendi
programinizin oldugu yere açin. Ayrica parser.jar dosyasini
da ayni yere açin.
Constructor:
public GraphPanel(int width,int height)
Metodlar:
public void setRanges(double xmin,double xmax,double
ymin,double ymax)
public void setSensitivity(int sens)
public boolean addPlot(String func)
public boolean addPlot(String func,int type)
public boolean removePlot(String func)
public boolean removeAllPlots()
public boolean setVisible(String func,boolean visible)
public boolean setPlotType(String func,int type)
void redrawAxes()
public void clearPanel()
public void redraw()
setRanges(...) fonksiyonu, grafigin
cizilecegi araligi degistirir.
boolean
addPlot(String func) verilen parametreyi grafik listesine
ekler. Bir GraphApplet üzerine
en fazla 8 adet grafik eklenir. Bu metod eger basarili olursa true
degeri dondurur. Eger, zaten 8 tane plot varsa veya eklenilmek istenen
fonksiyon daha önceden eklenmis ise false degeri dondurur.
boolean
addPlot(String func,int type) metodunun addPlot(String
func) metodundan tek farki, bu metod da ayrica grafigin type'ininda
belirtilebilmesidir.(type=0 iken line, type=1 iken point çizilir).Bu
sekilde ayrica setPlotType(..) metodunun
kullanilmasina gerek kalmaz. addPlot(String
func) metodu type'i default olarak 0 yapar.
public
boolean removePlot(String func) metodu daha önceden
eklenmis bir fonksiyonu listeden atmaya yarar. Eger verilen parametredeki
fonksiyon bulunup remove edilirse geriye true degerini döndürür.
Eger verilen fonksiyon bulunamazsa geriye false degeri döndürür.
public boolean removeAllPlots() metodu
bütün listeyi temizler.
public boolean setVisible(String func,int
type) metodu, listeye önceden eklenmis bir fonksiyonu
Visible yada Hidden yapar. 2.parametre olarak false verilirse Hidden
olur. true verilirse Visible olur. Eger verilen parametredeki fonksiyon
bulunursa geriye true degerini döndürür. Eger verilen
fonksiyon bulunamazsa geriye false degeri döndürür.
public
boolean setPlotType(String func,boolean visible)
metodu, listeye önceden eklenmis bir fonksiyonu seklini degistirir.
2.parametre olarak 0 verilirse grafik line'lar kullanilarak çizilir.
1 verilirse grafik sadece noktalar kullanilarak cizilir. Eger verilen
parametredeki fonksiyon bulunursa geriye true degerini döndürür.
Eger verilen fonksiyon bulunamazsa geriye false degeri döndürür.
setSensitivity(...) fonksiyonu toplam
kaç noktada deger alinacagini belirtir. Bu degerin degistirilmesine
gerek yoktur. default olarak maximum degere ayarlidir. Bazi özel
durumlarda daha hizli grafik cizmek için deger düsürülebilir.
Ama o zaman da grafik kalitesi düser.
NOT:
Bu fonksiyonlarin hiçbiri grafigi otomatik olarak update
etmez. Grafigi update etmek için redraw()
metodunu kullanin.
void
redrawAxes() metodu, eksenleri tekrar çizer.
public void clearPanel() metodu bütün
paneli siler.
public void redraw() metodu bütün
paneli tekrar çizer. Yapilan bir degisikligi update etmek
için bu metodu kullanin.
Örnek:
Paneli bir java programina eklemek için su satirlari kullanin:
GraphPanel graphPanel; // Bu tanimlamayi
en basta yapin.
//Constructor içinde
graphPanel = new GraphPanel(404,384);
add(graphPanel);
graphPanel.setBounds(20,20,404,384);
graphPanel.setRanges(-10,10,-10,10);
graphPanel.redrawAxes();
NOT: constructorda verilen width ve height ile setBounds(int
x,int y, int width, int height) fonksiyonundaki width ve
height esit olmalidir!
Daha sonra bir y=sin(x) fonksiyonunun grafigini cizmek için
graphPanel.addPlot("sin(x)");
graphPanel.redraw();
|