// econpac.java // Production, Prices and Consumption // adapted from a program in basic by H.T. Odum & E. Odum, 1994 import java.applet.Applet; import java.awt.*; public class econpac extends Applet { Label prompt1,prompt2,prompt3; TextField input1,input2,input3; double tm,p1,m1; Button drawbutton; public void init() { prompt1 = new Label("TM Total money supply: "); input1 = new TextField("100",4); add(prompt1);add(input1); prompt2 = new Label("P1 Price of products: "); input2 = new TextField("1",4); add(prompt2);add(input2); prompt3 = new Label("M1 Producers money "); input3 = new TextField("30",4); add(prompt3);add(input3); drawbutton = new Button("Draw"); add(drawbutton); } public boolean action(Event e, Object o) { tm=(float)Integer.parseInt(input1.getText()); p1=(float)Integer.parseInt(input2.getText()); m1=(float)Integer.parseInt(input3.getText()); repaint(); return true; } public void paint(Graphics g) { g.drawRect(0,90,320,210); g.drawLine(0,190,320,190); int t; double i,c,q,r,p,jg,js; double p2,m2; double q0,m0,c0,t0; double dq,dm,dc,dt; double k0,k1,k2,k3,k4,k5,k6; t=1; i=1;c=10;q=10;r=0;p=0;jg=0;js=0; p2=2.5;m2=0; q0=0.5;m0=1;c0=0.1;t0=0.3; dq=0;dm=0;dc=0;dt=2; k0=45; k1=0.01; k2=0.01; k3=0.0003; k4=50; k5=0.005; k6=1.0; do { g.setColor(Color.blue); if (300-q>90) g.drawOval(t,(int)(300-q*q0),1,1); else g.drawOval(t,90,1,1); g.setColor(Color.green); if (300-c>90) g.drawOval(t,(int)(300-c*c0),1,1); else g.drawOval(t,90,1,1); g.setColor(Color.red); if (190-m1>90) g.drawOval(t,(int)(190-m1*m0),1,1); else g.drawOval(t,190,1,1); g.setColor(Color.pink); if (190-m2>90) g.drawOval(t,(int)(190-m2/m0),1,1); else g.drawOval(t,190,1,1); r=i/(1+k0*jg); p=k4*r*jg; jg=k2*m1/p2; js=k1*m2/p1; dq=p-k5*q-js; dm=k1*m2-k2*m1; dc=k6*js-k3*c-jg; q=q+dq*dt; if (q<0) q=0; c=c+dc*dt; if (c<0) c=0; m1=m1+dm*dt; m2=tm-m1; t=t+1; } while (t<320); g.drawLine(0,190,320,190); } } // Camila Duarte & e. Ortega, January 24th, 2001