⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aplet.java

📁 http://w3eval.calcsharp.net/ W3Eval is Java applet that evaluates mathematical expressions. It uses
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
      funkcije.addElement( new Funkcija("hypot", 2) );      funkcije.addElement( new Funkcija("frac", 1) );      funkcije.addElement( new Funkcija("floor", 1) );      funkcije.addElement( new Funkcija("fact", 1) );      funkcije.addElement( new Funkcija("exp2", 1) );      funkcije.addElement( new Funkcija("exp10", 1) );      funkcije.addElement( new Funkcija("exp", 1) );      funkcije.addElement( new Funkcija("deg", 1) );      funkcije.addElement( new Funkcija("cur", 1) );      funkcije.addElement( new Funkcija("csch", 1) );      funkcije.addElement( new Funkcija("csc", 1) );      funkcije.addElement( new Funkcija("count", 0) );      funkcije.addElement( new Funkcija("coth", 1) );      funkcije.addElement( new Funkcija("cot", 1) );      funkcije.addElement( new Funkcija("cosh", 1) );      funkcije.addElement( new Funkcija("cos", 1) );      funkcije.addElement( new Funkcija("combr", 2) );      funkcije.addElement( new Funkcija("comb", 2) );      funkcije.addElement( new Funkcija("ceil", 1) );      funkcije.addElement( new Funkcija("avg", 0) );      funkcije.addElement( new Funkcija("atanh", 1) );      funkcije.addElement( new Funkcija("atan2", 2) );      funkcije.addElement( new Funkcija("atan", 1) );      funkcije.addElement( new Funkcija("asinh", 1) );      funkcije.addElement( new Funkcija("asin", 1) );      funkcije.addElement( new Funkcija("asech", 1) );      funkcije.addElement( new Funkcija("asec", 1) );      funkcije.addElement( new Funkcija("acsch", 1) );      funkcije.addElement( new Funkcija("acsc", 1) );      funkcije.addElement( new Funkcija("acoth", 1) );      funkcije.addElement( new Funkcija("acot", 1) );      funkcije.addElement( new Funkcija("acosh", 1) );      funkcije.addElement( new Funkcija("acos", 1) );		funkcije.addElement( new Funkcija("abs", 1) );      Funkcija fn=null;      for ( int i=funkcije.size()-1; i>=0; i-- )         {         fn=(Funkcija)funkcije.elementAt( i );         all.add( new DefaultMutableTreeNode( fn.funkcija ) );         }      }   public void punjenje_operatora( DefaultMutableTreeNode o )      {      // punjenje stabla      DefaultMutableTreeNode arithmetic=null;      DefaultMutableTreeNode shift=null;      DefaultMutableTreeNode relational=null;      DefaultMutableTreeNode logical=null;      DefaultMutableTreeNode conditional=null;      arithmetic = new DefaultMutableTreeNode( "Arithmetic" );      shift = new DefaultMutableTreeNode( "Shift" );      relational = new DefaultMutableTreeNode( "Relational" );      logical = new DefaultMutableTreeNode( "Logical" );      conditional = new DefaultMutableTreeNode( "Conditional" );      o.add( arithmetic );      o.add( shift );      o.add( relational );      o.add( logical );      o.add( conditional );      arithmetic.add( new DefaultMutableTreeNode( "^" ) );      arithmetic.add( new DefaultMutableTreeNode( "**" ) );      arithmetic.add( new DefaultMutableTreeNode( "*" ) );      arithmetic.add( new DefaultMutableTreeNode( "/" ) );      arithmetic.add( new DefaultMutableTreeNode( "%" ) );      arithmetic.add( new DefaultMutableTreeNode( "mod" ) );      arithmetic.add( new DefaultMutableTreeNode( "+" ) );      arithmetic.add( new DefaultMutableTreeNode( "-" ) );      shift.add( new DefaultMutableTreeNode( "<<" ) );      shift.add( new DefaultMutableTreeNode( ">>" ) );      shift.add( new DefaultMutableTreeNode( ">>>" ) );      relational.add( new DefaultMutableTreeNode( "<" ) );      relational.add( new DefaultMutableTreeNode( ">" ) );      relational.add( new DefaultMutableTreeNode( "<=" ) );      relational.add( new DefaultMutableTreeNode( ">=" ) );      relational.add( new DefaultMutableTreeNode( "==" ) );      relational.add( new DefaultMutableTreeNode( "!=" ) );      relational.add( new DefaultMutableTreeNode( "<>" ) );      logical.add( new DefaultMutableTreeNode( "and" ) );      logical.add( new DefaultMutableTreeNode( "xor" ) );      logical.add( new DefaultMutableTreeNode( "or" ) );      conditional.add( new DefaultMutableTreeNode( "&&" ) );      conditional.add( new DefaultMutableTreeNode( "||" ) );      // punjenje vektora      operatori.addElement( new Operator( "||",     (byte)11 ) );      operatori.addElement( new Operator( "xor",    (byte)8 ) );      operatori.addElement( new Operator( "or",     (byte)9 ) );      operatori.addElement( new Operator( "mod",    (byte)2 ) );      operatori.addElement( new Operator( "and",    (byte)7 ) );      operatori.addElement( new Operator( "^",      (byte)1 ) );      operatori.addElement( new Operator( ">>>",    (byte)4 ) );      operatori.addElement( new Operator( ">>",     (byte)4 ) );      operatori.addElement( new Operator( ">=",     (byte)5 ) );      operatori.addElement( new Operator( ">",      (byte)5 ) );      operatori.addElement( new Operator( "==",     (byte)6 ) );      operatori.addElement( new Operator( "<>",     (byte)6 ) );      operatori.addElement( new Operator( "<=",     (byte)5 ) );      operatori.addElement( new Operator( "<<",     (byte)4 ) );      operatori.addElement( new Operator( "<",      (byte)5 ) );      operatori.addElement( new Operator( "/",      (byte)2 ) );      operatori.addElement( new Operator( "-",      (byte)3 ) );      operatori.addElement( new Operator( "+",      (byte)3 ) );      operatori.addElement( new Operator( "**",     (byte)1 ) );      operatori.addElement( new Operator( "*",      (byte)2 ) );      operatori.addElement( new Operator( "&&",     (byte)10 ) );      operatori.addElement( new Operator( "%",      (byte)2 ) );      operatori.addElement( new Operator( "!=",     (byte)6 ) );      }  public void start()    {    izrazi.requestFocus();    }  public void stop()    {    }  public void destroy()    {    }  public String getAppletInfo()    {    return "Applet Information";    }  public String[][] getParameterInfo()    {    return null;    }  static    {    try      {      UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );      // UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );      }    catch(Exception e)      {      }    }   void dodjeljivanje( String varijabla, double vrijednost )      {		Varijabla   v;      boolean varijabla_pronadena=false;      int i;		for ( i=0; i<varijable.size(); i++ )			{			v=(Varijabla)varijable.elementAt( i );			if ( varijabla.equals( v.varijabla ) )            {				varijable.setElementAt( new Varijabla( varijabla, vrijednost ), i );            varijabla_pronadena=true;            break;            }         // ako je varijabla > v.varijabla         else if ( varijabla.compareTo( v.varijabla )>0 )            {            varijabla_pronadena=false;            break;            }			}      if ( !varijabla_pronadena )         {         DefaultMutableTreeNode nova_varijabla=new DefaultMutableTreeNode( varijabla );         user_defined.add( nova_varijabla );         varijable.insertElementAt( new Varijabla( varijabla, vrijednost ), i );         drvo.updateUI();         // selektiraj dodanu varijablu         TreePath p=new TreePath( nova_varijabla.getPath() );         drvo.scrollPathToVisible( p );         drvo.setSelectionPath( p );         }      }   void izrazi_keyPressed( KeyEvent e )      {      if ( e.getModifiers()==2 && ( e.getKeyCode()==KeyEvent.VK_ENTER || e.getKeyCode()==KeyEvent.VK_N ||      e.getKeyCode()==KeyEvent.VK_P || e.getKeyCode()==KeyEvent.VK_E || e.getKeyCode()==KeyEvent.VK_R ) )         {         Vector tokeni;         String s;         int p;         Raspon r;         boolean status;         int duzina_varijable=0;         String varijabla=new String();         s=izrazi.getText();         p=izrazi.getCaretPosition();         r=Izrazi.raspon_trenutnog_izraza( s, p );         if ( r==null )         	return;         s=s.substring( r.pocetak, r.kraj );         if ( e.getKeyCode()==KeyEvent.VK_ENTER )            {            duzina_varijable=Izracunavanje.dodjeljivanje( s );            if ( duzina_varijable!=0 )               {               varijabla=s.substring( 0, duzina_varijable ).trim();               r.pocetak=r.pocetak+s.length();               s=s.substring( duzina_varijable+1 ).trim();               r.pocetak=r.pocetak-s.length();               rezultat.setText( s );               }            }         rezultat.setText( "" );         status=Provjera_zagrada.zagrade_pravilne( s );   		if ( status==false )     			{   			rezultat.append( "ERROR : " + Poruke.nepravilan_raspored_zagrada );      		return;   			}         tokeni=Tokenizacija.rastavljanje_izraza ( s, varijable, operatori, funkcije );         Raspon raspon_greske=new Raspon();   		StringBuffer tekst_greske=new StringBuffer();   		status=Provjera_izraza.pokretanje( tokeni, raspon_greske, tekst_greske );   		if ( status==false )     			{   			rezultat.append( "ERROR : " + tekst_greske );   	      izrazi.setSelectionStart( r.pocetak + raspon_greske.pocetak );   	      izrazi.setSelectionEnd( r.pocetak + raspon_greske.kraj );            return;   			}         if ( e.getKeyCode()==KeyEvent.VK_ENTER )            {            Vector	rez;            if ( jRadioButtonMenuItem1.isSelected() )               drg='D';            else if ( jRadioButtonMenuItem2.isSelected() )               drg='R';            else if ( jRadioButtonMenuItem3.isSelected() )               drg='G';            rez=Izracunavanje.rezultat( tokeni );            if ( duzina_varijable==0 )               {               for ( int i=0; i<rez.size(); i++ )               	rezultat.append( (String)rez.elementAt(i) + "\n" );               }            else               {               double vrijednost;               String vrijednost_str;               vrijednost_str=(String)(rez.elementAt( rez.size()-1 ));               vrijednost_str=vrijednost_str.trim();               if ( vrijednost_str.equals( "Infinity" ) )                  vrijednost=Double.POSITIVE_INFINITY;               else if ( vrijednost_str.equals( "-Infinity" ) )                  vrijednost=Double.NEGATIVE_INFINITY;               else if ( vrijednost_str.equals( "NaN" ) )                  vrijednost=Double.NaN;               else                  vrijednost=Double.parseDouble( (String)(rez.elementAt( rez.size()-1 )) );               rezultat.append( varijabla + " = " + vrijednost );               dodjeljivanje( varijabla, vrijednost );               }            }         else if ( e.getKeyCode()==KeyEvent.VK_N  )            {            String spoj;            spoj=Izracunavanje.spoj_tokena( tokeni );           	rezultat.append( spoj );            }         else if ( e.getKeyCode()==KeyEvent.VK_P )            {      	   Vector	rez;            rez=Izracunavanje.ispis_tokena( tokeni );            for ( int i=0; i<rez.size(); i++ )      	      	rezultat.append( (String)rez.elementAt(i) + "\n" );            }         else if ( e.getKeyCode()==KeyEvent.VK_E )            {            if ( jRadioButtonMenuItem1.isSelected() )               drg='D';            else if ( jRadioButtonMenuItem2.isSelected() )               drg='R';            else if ( jRadioButtonMenuItem3.isSelected() )               drg='G';      	   Vector	rez;            rez=Izracunavanje.rezultat( tokeni );            String x=((String)rez.elementAt( rez.size()-1 )).trim();      	   rezultat.append( x );            long l;            try               {               l=(long)Double.parseDouble( x );               }            catch ( Exception eee )               {               l=Long.MIN_VALUE;               }            if ( Integer.MIN_VALUE<=l && l<=Integer.MAX_VALUE )               {               if ( l<0 )                  l=l+4294967296L;               rezultat.setText( "" );               rezultat.append( "Dec = "+x+"\n");               /*               if ( String.valueOf ( Double.parseDouble( x ) ).indexOf( "E" )!=-1 )                  rezultat.append( "\nExp="+Double.parseDouble( x ) );               */               rezultat.append( "\nHex = "+Matematika.broj_baza( l, 16 ) );               rezultat.append( "\nOct = "+Matematika.broj_baza( l, 8 ) );               rezultat.append( "\nBin = "+Matematika.broj_baza( l, 2 ) + "\n" );               for ( int z=9; z>=3; z-- )                  if ( z!=8 )                     rezultat.append( "\nBase"+z+" = "+Matematika.broj_baza( l, z ) );               }            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -