About
Contacts
Feedback
Programs and Tutorials
Utilities
DSP Applications
EM Applications
Propagation
Downloads
Links
What's New
Site Map

Downloads...
 

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();

   
 


Please contact our Webmaster with questions or comments.
Webmaster: M. Irsadi Aksun