📄 example1_4.java
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class Complex
{ double real,image;
public static void init(double a,double b,Complex c)
{c.real=a;c.image=b;}
public static double abs(Complex a)
{double x,y,r;
x=Math.abs(a.real);y=Math.abs(a.image);
if(x>y)r=x*Math.sqrt(1+(y/x)*(y/x));
else r=y*Math.sqrt(1+(x/y)*(x/y));
return r;
}
public static void cheng(Complex a,Complex b,Complex c)
{ c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+a.image*b.real;
}
public static void chu(Complex a,Complex b,Complex c)
{ double w;
if(Math.abs(b.real)>Math.abs(b.image))
{w=b.real+b.image*(b.image/b.real);
c.real=(a.real+a.image*(b.image/b.real))/w;
c.image=(a.image-a.real*(b.image/b.real))/w;
}
else
{w=b.real*(b.real/b.image)+b.image;
c.real=(a.real*(b.real/b.image)+a.image)/w;
c.image=(a.image*(b.real/b.image)-a.real)/w;
}
}
public static void Root(Complex a,Complex[] b,int n)
{double r,sita,Pi=Math.PI,w=2*Pi/n,c,s,csita,ssita,cw,sw,tc;
r=Complex.abs(a);
if(a.image==0)
{if (a.real>=0)sita=0;
else sita=Pi/n;}
else if(a.real==0)
{if(a.real>0)sita=Pi/2/n;
else sita=-Pi/2/n;}
else {if (a.real>0) sita=Math.atan(a.image/a.real)/n;
else sita=(Math.atan(a.image/a.real)+Pi)/n;}
csita=Math.cos(sita);ssita=Math.sin(sita);
cw=Math.cos(w);sw=Math.sin(w);
c=1;s=0;r=Math.exp(Math.log(r)/n);
for(int k=0;k<n;k++)
{b[k].real=r*(csita*c-ssita*s);
b[k].image=r*(ssita*c+csita*s);
tc=c;c=c*cw-s*sw;s=s*cw+tc*sw;
}
}
}
public class Example1_4 extends Applet implements ActionListener
{TextField text1,text2,text3;
TextArea text4;
Button button1;
public void init()
{text1=new TextField(10);text2=new TextField(10);text3=new TextField(5);
text4=new TextArea(10,50);
button1=new Button("计算根");
add(text1);add(text2);add(text3);add(button1);add(text4);
text4.setEditable(false);
button1.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{double n1,n2,r;
int i,n;
Complex a;
Complex[] b=new Complex[4];
if(e.getSource()==button1)
{n1=Double.valueOf(text1.getText()).doubleValue();
n2=Double.valueOf(text2.getText()).doubleValue();
n=Integer.parseInt(text3.getText());
a=new Complex();Complex.init(n1,n2,a);
for(i=0;i<4;i++)b[i]=new Complex();
text4.setText("");
text4.append("复数A=("+a.real+")+("+a.image+")I\n");
Complex.Root(a,b,n);
text4.append("它的"+n+"重根为:\n");
for(i=0;i<n;i++)
{text4.append("("+b[i].real+")+("+b[i].image+")I\n");}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -