ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

NetBeansによる演習 (7+)

2013-12-31 14:03:46 | 暮らし
progJ.pdf
progJ-s.pdf
progJ-e.pdf

記事一覧

                            派生クラスの追加

progJ-e.pdf へ [#38%22] を追加しました.
※ [#29%4],[#38%2] も少し変更.

//Stack.java
package myproj; import java.util.*;
class Stack extends List {
  void push(String s){
    if(sz >= 0){ins(s, 1);}
  }
  String pop( ){
    Cell c = top.n;
    if(sz <= 0){sz--; return "0";}
    del(1); return c.d;
  }
  int popInt( ){
    return Integer.parseInt(pop( ));
  }
  void pushInt(int n){
    push(Integer.toString(n));
  }
  void addInt( ){
    pushInt(popInt() + popInt( ));
  }
  void multInt( ){
    pushInt(popInt() * popInt( ));
  }
  public static
  void main(String[ ] args) {
    Stack d = new Stack( );
    String expr = "123 45 + 6 * =";
    String s; char c;
    StringTokenizer st;
    st = new StringTokenizer(expr);
    while(st.hasMoreTokens( )){
      s = st.nextToken( );
      c = s.charAt(0);
      if(c == '=') break;
      if(c == '+'){d.addInt( );}
      else if (c == '*'){d.multInt( );}
      else{d.push(s);}
    }
    s = d.pop( ); if(d.sz != 0){s = "?";}
    System.out.println(s);
  }
}