// // Written by Nicholas D. Exner, Exner Enterprises C.2000, May 2000 // Class DrawPoly uses code references to other classes such as // ManagePanel.class and Box.class that are the intellectual propertyof // Nicholas Exner. These classes have been included here with the // consent of the author. //N= 3620092 X: 15.679225524625934 import java.applet.*; import java.awt.*; import java.math.*; import java.util.*; import java.awt.event.*; import java.awt.image.*; public class SumSeries extends Applet { // implements Runnable { boolean threadRun=true; Thread runner; Image offscreenImg; Graphics h; TextField tf,tft,tfcur; Choice digitIn; Image sumImg; public void init(){ sumImg = getImage(getCodeBase(),"title.gif"); setLayout(new BorderLayout()); setBackground(new Color(150,150,255)); Panel p2 = new Panel(); p2.setLayout(new FlowLayout(FlowLayout.LEFT)); p2.setBackground(new Color(150,150,255)); Panel p = new Panel(); p.setLayout(new GridLayout(4,3,5,5)); p.setBackground(new Color(150,150,255)); offscreenImg = createImage(this.size().width, this.size().height); h = offscreenImg.getGraphics(); tf = new TextField(6); tft = new TextField(6); tfcur = new TextField(6); tf.setText("0"); tft.setText("0"); tfcur.setText("0"); digitIn = new Choice(); digitIn.addItem("Select Precision"); for (int i=1;i<6;i++){ digitIn.addItem(""+i); } digitIn.select("Select"); p.add(new Label("Precision:")); p.add(digitIn); p.add(new Label("Current Term:")); p.add(tfcur); p.add(new Label("Partial Sum:")); p.add(tf); p.add(new Label("# of Terms:")); p.add(tft); p2.add(p); Panel hi = new Panel(); hi.setLayout(new GridLayout(4,1)); hi.add(new Button("Compute Next Term")); hi.add(new Button("Compute Next 10 Terms")); hi.add(new Button("Compute Next 100 Terms")); hi.add(new Button("Compute All")); p2.add(hi); add("South",p2); } public void paint(Graphics g){ g.drawImage(sumImg,15,30,this); } public void calcSeries(){ BigDecimal newx = new BigDecimal("1"); BigDecimal oldx = new BigDecimal("0"); BigDecimal change = new BigDecimal("1"); int n=2; while(!oldx.equals(newx)){ change = new BigDecimal(""+n); change = operationInverse(change,digitIn.getSelectedIndex()); change = correctScale(change,digitIn.getSelectedIndex()); newx = correctScale(newx,digitIn.getSelectedIndex()); oldx = newx; // System.out.print("C: "+change.toString()); // System.out.println(" D: "+newx.toString()); newx = newx.add(change); newx = correctScale(newx,digitIn.getSelectedIndex()); tf.setText(newx.toString()); tft.setText(""+n); tfcur.setText(change.toString()); n++; } if (digitIn.getSelectedIndex() < 1) tft.setText("0"); } public void calcSeries(int xx){ int n=(int)Integer.parseInt(tft.getText()); int x = xx; if (n <= 0) { n=0; tft.setText("1"); tf.setText("0"); tfcur.setText("1"); //x--; } BigDecimal newx = new BigDecimal(tf.getText()); BigDecimal change = new BigDecimal(tfcur.getText()); int nn = n+1; for (int i=nn;i