📄 zsy.java
字号:
import java.io.*;
import java.math.*;
import java.awt.*;
import java.awt.event.*;
public class zsy{
public static void main(String args[]){
Frame f=new Frame("zsy");
Label l1=new Label("点击“积分”按钮,画出的面积即为所求的积分。");
Label l2=new Label("积分的值为");
Panel p=new Panel();
Button b=new Button("积分");
TextField o=new TextField(15);
Monitor m=new Monitor(f,p,o);
p.add(l1);
p.add(l2);
p.add(o);
p.add(b);
f.add("North",p);
f.pack();
f.setSize(1000,700);
f.setVisible(true);
b.addActionListener(m);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);}});
Graphics g=f.getGraphics();
g.drawLine(100,350,900,350);
g.drawLine(200,100,200,600);
g.drawString("0",200,370);
for(int i=1;i<=7;i++)
g.drawString(Integer.toString(i),i*100+200,370);
double x,y;
for(x=-1;x<=7;x+=0.01){
y=200*(Math.sin(x))/x;
g.drawString(".",200+(int)(100*x),350-(int)y);}}}
class Monitor implements ActionListener{
Monitor(Frame f,Panel p,TextField o){
this.f=f;
this.p=p;
this.o=o;}
private Frame f;
private Panel p;
private TextField o;
public void actionPerformed(ActionEvent e){
Graphics g=f.getGraphics();
double a=0.00000001;
double b=6;
double x,y,h,t0,t1;
double c=0.0000001;
int n,k;
h=b-a;
t0=0.5*h*(((Math.sin(a))/a)+((Math.sin(b))/b));
t1=0.5*t0+0.5*h*(Math.sin(a+0.5*h))/(a+0.5*h);
n=1;
g.setColor(Color.blue);
while((t1-t0)*(t1-t0)>=c*c){
h=0.5*h;
n=2*n;
t0=t1;
t1=0;
for(k=1;k<=n;k++){
for(int i=0;i<1000000;i++){}
t1=t1+(Math.sin(a+(k-0.5)*h))/(a+(k-0.5)*h);
x=a+(k-0.5)*h;
y=(Math.sin(a+(k-0.5)*h))/(a+(k-0.5)*h);
g.drawLine(200+(int)(x*100),350-(int)(y*200),200+(int)(x*100),350);}
t1=0.5*t0+0.5*h*t1;}
System.out.println(t1);
p.add(o);
o.setText(" "+t1);
}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -