package Wider; /** * Einfache Klasse, die die Formeln, die für das Berechnen des Widerstandsnetzwerkes * nötig sind, kapselt. Duch Austauschen/Manipulieren dieser Klasse kann man ganz * einfach zB ein Kondensatornetzwerk aus dem Widerstandsnetwerk machen ;-) */ public class Calculator implements Tokens{ /** * Führt Rechenoperation durch... * @param double[] args: Widerstandswerte auf die die Operation durchzuführen ist. * @param int op: Durchzuführende Operation * * @return Ergebnis der Rechnung */ public double calc(double[] args, int op) throws Exception { double ret=0; if (op==PLUS) { // Serienscahltung: R[ges.]=R[0]+R[1]+R[2]+... for (int i=0;i<args.length;i++) { ret+=args[i]; } } else if (op==SLASH) { // Parallelschaltung for (int i=0;i<args.length;i++) { if (args[i]!=0) ret+=1/args[i]; } ret=1/ret; } else throw new WiderException("invalid operator"); return ret; } }