⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 secadapt.java

📁 数值算法
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Panel;
import java.io.*;
public class SecAdapt extends Frame implements ActionListener
{
	private float A=0.5f,B=5.5f,E=0.01f;
	private float S,U,V,H,T1,T2,W,ST[]=new float[100];
	private int I;
	Button bb;
	TextField tf;
	public SecAdapt()
	{	
		setLayout(new FlowLayout(FlowLayout.LEFT));
		bb=new Button("DRAW");
		tf=new TextField(20);
		tf.setEditable(false);
		add(tf);
		add(bb);
		setSize(700,500);
		setBackground(Color.white);
		bb.addActionListener(this);
	}
	
		
	public void paint(Graphics g)
	{
		float i,x;
		g.drawLine(300,50,300,450);
		g.drawLine(10,250,700,250);
		g.drawString("x",10,250);
		g.drawString("y",300,50);
		for(i=A;i<=B;i=i+0.01f)
		{	
			x=i-3.0f;
			g.drawLine((int)(i*100),(int)(250-Fac(x)*100),(int)(i*100+1),(int)(250-Fac(x+0.01f)*100));
		}	 
	}
	public float Fac(float x)//use after multiply 100,out same
	{		
		float y;
		if(x==0)y=1;
		else
		{
			y=(float)(Math.sin(x)/x);
		}
		return y;
	}
	public void Scrawl(float WW)
	{
		int x1,x2,y1,y2;	
		Graphics g=getGraphics();
		for(int i=0;i<50000000;i++){}
		
		x1=(int)(WW*100)+300;
		y1=(int)(250-Fac(WW)*100);
		x2=(int)(WW*100)+300;
		y2=250;
		g.drawLine(x1,y1,x2,y2);
	}
	public void CYC()
	{
	
		H=V-U;
		T1=(Fac(U)+Fac(V))*H/2;
		W=(U+V)/2;
		T2=T1/2+Fac(W)*H/2;
		Scrawl(W);	
		
		if(Math.abs(T2-T1)<(H*E))
		{
			S=S+T2;
			if(I==0)
			{
				System.out.println(S);
				tf.setText("S="+S);
				
			}
			else
			{
				U=V;
				V=ST[I];
				I=I-1;			
				CYC();
			}
		}
		else if(Math.abs(T2-T1)>=(H*E))
		{
			I=I+1;
			ST[I]=V;			
			V=W;
			CYC();
		}
	}
	public void Metic()
	{
		A=A-3f;
		B=B-3f;
		E=E/(B-A);
		I=0;
		S=0;
		U=A;
		V=B;
		CYC();
	}
	public void actionPerformed(ActionEvent eve)
	{
		if(eve.getSource()==bb)
		{
			Graphics g=getGraphics();
			g.drawLine((int)((A-3f)*100)+300,250-(int)(Fac(A-3f)*100),(int)((A-3f)*100)+300,250);
			g.drawLine((int)((B-3f)*100)+300,250-(int)(Fac(B-3f)*100),(int)((B-3f)*100)+300,250);
			Metic();
			System.out.println("completed");
		}
	}
	
	public static void main(String[] args)throws IOException
	{
		SecAdapt fuck=new SecAdapt();
		fuck.setVisible(true);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -