📄 times.java
字号:
import java.util.Vector;public class Times extends Expression {private Expression[] factors; public Times(Expression[] f) { factors = new Expression[f.length]; for(int i=0;i<f.length;i++) factors[i] = (Expression)f[i].clone(); } public Expression[] getFactors() { return factors; } public Object clone() { return new Times(factors); } public Expression eval() { Expression[] result = new Expression[factors.length]; for(int i=0;i<factors.length;i++) result[i] = factors[i].eval(); return new Times(result); } public String toString() { StringBuffer result = new StringBuffer("("); result.append(factors[0].toString()); for(int i=1;i<factors.length;i++) { result.append("*"); result.append(factors[i].toString()); } result.append(")"); return result.toString(); } public Expression derive(Symbol s) { Expression[] result = new Expression[factors.length]; for(int i=0;i<factors.length;i++) { Expression[] partProd = new Expression[factors.length]; for(int j=0;j<factors.length;j++) { partProd[j] = (i==j)?factors[j].derive(s):factors[j]; } result[i] = new Times(partProd); } return new Plus(result); } public boolean equals(Expression ex) { if(!(ex instanceof Times)) return false; Times t = (Times)ex; Expression efac[] = t.getFactors(); if(efac.length == factors.length) { boolean ret = true; for(int i=0;i<factors.length;i++) if(!(efac[i].equals(factors[i]))) { ret = false; //break; } return ret; } else return false; } public Expression simplify() { Vector v = new Vector(); for(int i=0;i<factors.length;i++) { if((factors[i].simplify()).equals(new NumericValue(0.0))) return new NumericValue(0.0); if(!((factors[i].simplify()).equals(new NumericValue(1.0)))) v.add(factors[i].simplify()); } Expression simplFactors[] = new Expression[v.size()]; for(int i=0;i<v.size();i++) simplFactors[i] = (Expression) v.get(i); return new Times(simplFactors); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -