В программе использовались следующие блок-схемы:
Рисунок 2. Блок-схема программы
Рисунок 3. Блок-схема чтения данных
Рисунок 4. Блок-схема расчёта
Рисунок 5. Блок-схема формирования графического представления результатов расчёта
|
Алгоритм программы (код программы)
import java.io.*;
import java.util.*;
import java.util.regex.*;
import java.lang.Math;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.Graphics2D;
import java.awt.Graphics;
import java.awt.geom.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.DecimalFormat;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.Font;
public class GlavnProg extends JFrame{
private JPanel buttons;
private PanelRisov pic;
private JButton paint,calc;
LineMassive al;
public GlavnProg(){
buttons=new JPanel();
buttons.setSize(200,30);
buttons.setLayout(new FlowLayout());
pic=new PanelRisov();
pic.setSize(700,465);
paint = new JButton("Risunok");
calc=new JButton("Podschet");
calc.addActionListener(new Risovanie(this));/*new ActionListener(){
public void actionPerformed(ActionEvent e){
al=readS();
al.calculate();
pic.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
add(pic,BorderLayout.CENTER);
}
});*/
paint.setEnabled(false);
paint.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
BufferedImage bi=(BufferedImage)pic.createImage(pic.getWidth(),pic.getHeight());
Graphics2D g2=bi.createGraphics();
pic.paint(g2);
g2.dispose();
try{
ImageIO.write(bi,"jpeg",new File("ResPict.jpeg"));
}catch(Exception exc){exc.printStackTrace();}
}
});
buttons.add(calc);
buttons.add(paint);
setLayout(new BorderLayout());
add(buttons,BorderLayout.NORTH);
pic.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
add(pic,BorderLayout.CENTER);
setTitle("Trans and Wires");
setSize(1000,700);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args){
Line l;
double dd[];
GlavnProg rsd=new GlavnProg();
}
public LineMassive readS(){
Scanner sc;
ArrayList<String> al=new ArrayList<String>();
LineMassive al1=new LineMassive();
int nn,nk,Tmatj,Snomj;
double L,Ksj,Cosfij;
double wire[]=new double[5],trans[]=new double[10];
String wireName="";
boolean wireQ=true;
try{
RandomAccessFile raf=new RandomAccessFile("ishod.txt","r");
String s="",d;
while((s=raf.readLine())!=null){
d=new String(s.getBytes("ISO-8859-1"),"Cp1251");
System.setOut(new PrintStream(System.out, true, "cp866"));
al.add(d);
}
raf.close();
}catch(Exception e){
e.printStackTrace();
}
int ii;
String temp,s;
for(int i=7;i<al.size()-1;i++){
nn=0;nk=0;Snomj=0;Tmatj=0;
L=.0;Ksj=.0;Cosfij=.0;
wire=null;
s=al.get(i);
sc=new Scanner(s).useDelimiter(":");
temp=sc.next();
temp=temp.trim();
nn=Integer.valueOf(temp);
temp=sc.next();
temp=temp.trim();
nk=Integer.valueOf(temp);
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")!=0){
wireName=temp;
wire=readWire(wireName);
wireQ=true;
}
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")<0){
L=Double.valueOf(temp);
}
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")<0){
Snomj=Integer.valueOf(temp);
trans=readTrans(Integer.toString(Snomj));
wireQ=false;
}
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")<0){
Ksj=Double.valueOf(temp);
}
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")<0){
Tmatj=Integer.valueOf(temp);
}
temp=sc.next();
temp=temp.trim();
if(temp.lastIndexOf("-")<0){
Cosfij=Double.valueOf(temp);
}
if(wireQ){
al1.add(new Line(nn,nk,L,Ksj,Tmatj,Cosfij,wireName).setWire(wire));
} else {
al1.add(new Line(nn,nk,L,Ksj,Tmatj,Cosfij,wireName).setTrans(trans));
}
}
return al1;
}
public double[] readWire(String wire){
double[] date=new double[5];
Scanner sc;
double dd;
int c=0;
try{
RandomAccessFile raf=new RandomAccessFile("wires.txt","r");
String s="",d,temp;
while((s=raf.readLine())!=null){
if(s.endsWith("-----")||c<5) {c++; continue;}
d=new String(s.getBytes("ISO-8859-1"),"Cp1251");
if(d.indexOf(wire)>0){
int i=0;
sc=new Scanner(d).useDelimiter(":");
sc.next();
while(sc.hasNext())
date[i++]=Double.valueOf(sc.next().trim());
date[0]=date[0]*1000.0;
}
}
raf.close();
}catch(Exception e){
e.printStackTrace();
}
return date;
}
public double[] readTrans(String snom){
double[] date=new double[10];
Scanner sc;
double dd;
try{
RandomAccessFile raf=new RandomAccessFile("trans.txt","r");
String s="",d;
while((s=raf.readLine())!=null){
d=new String(s.getBytes("ISO-8859-1"),"Cp1251");
if(d.indexOf(":"+snom)>0){
int i=0;
sc=new Scanner(d).useDelimiter(":");
sc.next();
while(sc.hasNext()){
date[i++]=Double.valueOf(sc.next().trim());
if(i==1) date[i-1]=date[i-1]*1000.0;
else if(i==5) date[i-1]=date[i-1]*1000.0;
else if(i==7) date[i-1]=date[i-1]*1000.0;
else if(i==10) date[i-1]=date[i-1]*1000.0;
}
break;
}
}
}catch(Exception e){
e.printStackTrace();
}
return date;
}
class Risovanie implements ActionListener{
GlavnProg rsd;
Risovanie(GlavnProg rsd){this.rsd=rsd;}
public void actionPerformed(ActionEvent e){
al=readS();
al.calculate();
pic.setPic();
Graphics2D g2=(Graphics2D)pic.getGraphics();
pic.mao=al.mao;
paint.setEnabled(true);
try{
DecimalFormat df=new DecimalFormat("0.00"),df2=new DecimalFormat("0.000");
RandomAccessFile wrRes=new RandomAccessFile("result.txt","rw");
String res= "---------------------------------------------------------------------\n"+
"HOMEP ПOTOK MOЩHOCTИ BETBИ: ПOTEPИ MOЩHOCTИ: ПOTEPИ: HAПPЯЖ.:\n"+
"--------------------------------:-----------------:::\n"+
"HAЧAЛA:KOHЦA:AKTИBHЫЙ:PEAKTИBH.: AKTИBH.: PEAKT.: HAПPЯЖ.: УЗЛOB:\n"+
":::--------:----------:--------:--------:--------:---------\n"+
":BETBИ:BETBИ: KBT: KBAP: KBT: KBAP: KB: KB:\n"+
"---------------------------------------------------------------------\n";
//res=new String(res.getBytes("ISO-8859-1"),"Cp1251");
wrRes.writeChars(res);
for(int i=0;i<al.size();i++){
res=":"+formingString(""+al.get(i).nn,5)+":"+formingString(""+al.get(i).nk,5)+":"+
formingString(df.format(al.get(i).Pj/1000),8)+":"+formingString(df.format(al.get(i).Qj/1000),10)+":"+
formingString(df.format(al.get(i).retdPo()/1000),8)+":"+formingString(df.format(al.get(i).retdQo()/1000),8)+":"+
formingString(df2.format(al.get(i).dUj/1000),8)+":"+formingString(df2.format(al.get(i).Uuzl/1000),8)+":\n";
wrRes.writeChars(res);
}
wrRes.close();
}catch(Exception ex){ex.printStackTrace();}
}
public String formingString(String s,int n){
int len=s.length();
for(int i=0;i<n-len;i++)
s+=" ";
return s;
}
}
class PanelRisov extends JPanel{
private int d,dt,w,x,y;///w - width of the line,d-diameter of the dot,dt - trans
int[] mao;
public boolean pic=false;
int c1,scale=1,scl=1;
DecimalFormat df=new DecimalFormat("0.00");
public void paintComponent(Graphics g){
if(pic){
int ip=0,it,countT=0,countL=0,tmao[],lmao[];
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
g2.setFont(new Font("Serif",Font.PLAIN,10));
drawT(g2,x,y);
al.get(ip).x=x;
al.get(ip).y=y;
drawPic(g2,0);
}
}
public void drawPic(Graphics2D g2, int ip){
int x1=al.get(ip).x,y1=al.get(ip).y,count=0,countL=0,countT=0,grad=30,dgrad,templ;
ArrayList<Integer> lines=new ArrayList<Integer>(),tr=new ArrayList<Integer>();
for(int i=1;i<mao.length;i++){
if(mao[i]==ip) {
count++;
if(al.get(i).wireQ) {countL++; lines.add(i); }
if(!al.get(i).wireQ){countT++; tr.add(i); }
}
}
boolean[] vert=new boolean[count];
if(countL<4&&countL!=0){
do{
try{
x=al.get(ip).x;
y=al.get(ip).y;
drawL(g2,x,y,countL,lines);
countL--;
al.get(lines.get(countL)).x=this.x;
al.get(lines.get(countL)).y=this.y;
g2.drawString(""+al.get(lines.get(countL)).nk,this.x+15,this.y-10);
g2.drawString(df.format(al.get(lines.get(countL)).Pj/1000)+"+j"+df.format(al.get(lines.get(countL)).Qj/1000),this.x+15,this.y-w+30);
templ=(int)lines.get(countL).floatValue();
drawPic(g2,templ);
}catch(Exception e){e.printStackTrace();System.exit(0);}
}while(countL!=0);
//return;
}else if(countL>=4){
dgrad=300/(countL-1);
do{
x=al.get(ip).x;
y=al.get(ip).y;
drawL(g2,x,y,grad,lines);
grad+=dgrad;
countL--;
al.get(lines.get(countL)).x=this.x;
al.get(lines.get(countL)).y=this.y;
drawPic(g2,(int)lines.get(countL).floatValue());
}while(countL!=0);
}
if(countT!=0&&countT>2){
int nap=1,dg=0;
x=al.get(ip).x;
y=al.get(ip).y;
drawTrans(g2,x,y,countT,tr);
if(grad<180) nap=1;
if(grad==180) nap=3;
if(grad>180) nap=2;
countT--;
}else if(countT<3&&countT!=0){
c1=tr.size()-1;
do{
try{
x=al.get(ip).x;
y=al.get(ip).y;
drawTrans(g2,this.x,this.y,countT,tr);
countT--;
templ=(int)tr.get(countT).floatValue();
}catch(Exception e){e.printStackTrace();System.exit(0);}
}while(countT!=0);
}
return;
}
public void setPic(){pic=true; repaint();}
public void paint(Graphics g){
g.setFont(new Font("Serif",Font.PLAIN,5));
d=8;dt=24;w=70;x=150;y=30;scale=0;scl=1;
super.paint(g);
}
public void drawT(Graphics2D g2,int x,int y){
int i=10;
g2.drawLine(x,y,x+i,y);
g2.drawLine(x+i/2,y,x+i/2,y+w);
g2.fill(new Ellipse2D.Double(x,y+w,d,d));
g2.drawString(""+al.get(0).nn,x+i+5,y-3);
g2.drawString(df.format(al.get(0).Pj/1000)+"+j"+df.format(al.get(0).Qj/1000),x+i+5,y+w/2-3);
g2.drawString(""+al.get(0).nk,x+i/2+5,y+w-3);
this.y+=w+d/2;
this.x+=i/2;
}
public void drawTrans(Graphics2D g2,int x,int y,int naprav,ArrayList<Integer> tr){
int i=30,di=20,c=0;
if(naprav==3){
g2.drawLine(x,y,x,y+i);
g2.draw(new Ellipse2D.Double(x-dt/2,y+i,dt,dt));
g2.draw(new Ellipse2D.Double(x-dt/2,y+i+di,dt,dt));
g2.drawLine(x,y+i+di+dt,x,y+di);
g2.drawLine(x,y+i+2*di+dt-10,x,y+i+2*di+dt+20);
g2.drawString(df.format(al.get(c).Pj/1000)+"+j"+df.format(al.get(c).Qj/1000),x+i+5,y+w/2-3);
g2.drawString(""+al.get(c).nk,x+i/2+5,y+w-3);
}else if(naprav==2){
g2.drawLine(x,y,x+i,y);
g2.draw(new Ellipse2D.Double(x+i,y-dt/2,dt,dt));
g2.draw(new Ellipse2D.Double(x+i+di,y-dt/2,dt,dt));
g2.drawLine(x+i+di+dt,y,x+i+2*di+dt,y);
g2.drawLine(x+i+2*di+dt,y-10,x+i+2*di+dt,y+10);
g2.drawString(df.format(al.get(tr.get(c1)).Pj/1000)+"+j"+df.format(al.get(tr.get(c1)).Qj/1000),x+(i+2*di-30)/2,y-dt+5);
g2.drawString(""+al.get(tr.get(c1)).nk,x+i+2*di+dt+5,y);
c1--;
return;
}else if(naprav==1){
g2.drawLine(x,y,x-i,y);
g2.draw(new Ellipse2D.Double(x-i-dt,y-dt/2,dt,dt));
g2.draw(new Ellipse2D.Double(x-i-di-dt,y-dt/2,dt,dt));
g2.drawLine(x-(i+di+dt),y,x-(i+2*di+dt),y);
g2.drawLine(x-(i+2*di+dt),y-10,x-(i+2*di+dt),y+10);
g2.drawString(df.format(al.get(tr.get(c1)).Pj/1000)+"+j"+df.format(al.get(tr.get(c1)).Qj/1000),x-(i+2*di+dt+80)/2,y-dt+5);
g2.drawString(""+al.get(tr.get(c1)).nk,x-(i+2*di+dt+25),y);
c1--;
return;
} else{
c1=tr.size()-1;
int xn,yn,nap1=naprav/2,chet=naprav%2,gr,nap2;
nap2=nap1+chet;
chet=nap1%2;
nap1=nap1/2;
gr=90/(nap1+1);
do{
xn=(int)((double)(w-30)*Math.cos(gr));yn=(int)((double)(w-30)*Math.sin(gr));
g2.drawLine(x,y,x-xn,y-yn);
drawTrans(g2,x-xn,y-yn,1,tr);
g2.drawLine(x,y,x-xn,y+yn);
drawTrans(g2,x-xn,y+yn,1,tr);
nap1--;
gr+=gr;
}while(nap1!=0);
if(chet!=0) drawTrans(g2,x,y,1,tr);
chet=nap2%2;
nap2=nap2/2;
gr=90/(nap2+1);
do{
xn=(int)((double)(w-30)*Math.cos(gr));yn=(int)((double)(w-30)*Math.sin(gr));
g2.drawLine(x,y,x+3*xn,y-yn);
drawTrans(g2,x+3*xn,y-yn,2,tr);
g2.drawLine(x,y,x+3*xn,y+yn);
drawTrans(g2,x+3*xn,y+yn,2,tr);
nap2--;
gr+=gr;
}while(nap2!=0);
if(chet!=0) drawTrans(g2,x,y,2,tr);
}
}
public void drawL(Graphics2D g2,int x,int y,int naprav,ArrayList<Integer> ln){
if(naprav==1){
g2.drawLine(x,y,x,y+(int)1.7*w);
g2.fill(new Ellipse2D.Double(x-d/2,y+(int)1.7*w,d,d));
this.y+=(int)1.7*w+d/2;
}else if(naprav==2){
g2.drawLine(x,y,x,y+20);
g2.drawLine(x,y+20,x+2*w+scale,y+20);
g2.drawLine(x+2*w+scale,y+20,x+2*w+scale,y+w-20+20);
g2.fill(new Ellipse2D.Double(x+2*w+scale-d/2,y+w-d/2-20+20,d,d));
this.x+=2*w+scale;//+d/2;
this.y+=w-20+20;
scale+=50*scl;
scl++;
}else if(naprav==3){
g2.drawLine(x,y,x-w,y);
g2.fill(new Ellipse2D.Double(x-w,y-d/2,d,d));
this.x-=w+d/2;
}else {
int xn,yn,nap1=naprav/2,chet=naprav%2,gr,nap2;
nap2=nap1+chet;
chet=nap1%2;
nap1=nap1/2;
gr=90/(nap1+1);
do{
xn=(int)((double)(w-20)*Math.cos(gr));yn=(int)((double)(w-20)*Math.sin(gr));
g2.drawLine(x,y,x-xn,y-yn);
g2.drawLine(x,y,x-xn,y+yn);
nap1--;
gr+=gr;
}while(nap1!=0);
if(chet!=0) g2.drawLine(x,y,x-w,y);
chet=nap2%2;
nap2=nap2/2;
gr=90/(nap2+1);
do{
xn=(int)((double)(w-20)*Math.cos(gr));yn=(int)((double)(w-20)*Math.sin(gr));
g2.drawLine(x,y,x+xn,y-yn);
g2.drawLine(x,y,x+xn,y+yn);
nap2--;
gr+=gr;
}while(nap2!=0);
if(chet!=0) g2.drawLine(x,y,x+w,y);
return;
}
}
}
}
class Line{
public int nn,nk,Tmatj,x,y;
private double L,Ksj,Snomj,Cosfij;
private double Unom,R0,X0,Idop,Ic;////wire
private double Unomt,NN,Uks,dPks,Ixx,dPxx,Rtr,Xtr,dQxx;/////trans
private String wireName,transName;
public double Pj,Qj,dUj,Uuzl;
private double Sj,Wpj,Wqj,Tgfij,Kfj2,rj,xj;
private double dWlj,dWtj,dPlj,dPtj,dWxxj,dQlj,dQtj;
public boolean wireQ;
Line(int n,int k,double l,double K,int T,double Cos,String wireName){
this.nn=n;this.nk=k;this.L=l;this.Ksj=K;this.Tmatj=T;
this.Cosfij=Cos;this.wireName=wireName;
}
public Line setWire(double[] wire){
int i=0;
Unom=wire[i];
R0=wire[++i];
X0=wire[++i];
Idop=wire[++i];
Ic=wire[++i];
wireQ=true;
return this;
}
public Line setTrans(double[] trans){
int i=0;
Snomj=trans[i];
Unomt=trans[++i];
NN=trans[++i];
Uks=trans[++i];
dPks=trans[++i];
Ixx=trans[++i];
dPxx=trans[++i];
Rtr=trans[++i];
Xtr=trans[++i];
dQxx=trans[++i];
wireQ=false;
return this;
}
public void PQTrans(){
if(!wireQ){
Tgfij=(Math.sqrt(1-Cosfij*Cosfij))/Cosfij;
Sj=Snomj*Ksj;
Pj=Sj*Cosfij;
Qj=Sj*(Math.sqrt(1-Cosfij*Cosfij));
}
}
public void calculate(){
Tgfij=(Math.sqrt(1-Cosfij*Cosfij))/Cosfij;
Wpj=Tmatj*Pj;
Wqj=Wpj*((Math.sqrt(1-Cosfij*Cosfij))/Cosfij);///!!!!!!!!!!!!!!tg
/////13-14
Kfj2=(0.16/Ksj+0.86)*(0.16/Ksj+0.86);
if(R0!=.0){
rj=L*R0;
dWlj=(Wpj*Wpj*(1+Tgfij*Tgfij)*Kfj2*rj)/(Unom*Unom*8760);
}else
////////16
{//if(dPks!=.0){
rj=dPks*10000000/(Snomj*Snomj);
dWtj=(Wpj*Wpj*(1+Tgfij*Tgfij)*Kfj2*rj)/(Unom*Unom*8760);
}
///////18
if(!wireQ)
dWxxj=dPxx*Tmatj;
///////////21
if(wireQ){
rj=L*R0;
dPlj=(Pj*Pj+Qj*Qj)*rj/10000000;
}else
{
rj=dPks*10000000/(Snomj*Snomj);
dPtj=(Pj*Pj+Qj*Qj)*rj/10000000;
}
if(wireQ){
xj=X0*L;
dQlj=(Pj*Pj+Qj*Qj)*xj/10000000;
}else{
xj=Xtr;
dQtj=(Pj*Pj+Qj*Qj)*xj/10000000;
}
if(wireQ){
rj=L*R0;
xj=X0*L;
}else{
rj=dPks*10000000/(Snomj*Snomj);
xj=Xtr*L;
}
dUj=(Pj*rj+Qj*xj)/10000;
}
public double retdPo(){
if(wireQ){
return dPlj;
}else {return dPtj;}
}
public double retdWo(){
if(wireQ){ return dWlj;}else {return dWtj;}
}
public double retdWxxj(){
return dWxxj;
}
public double retdPxx(){
return dPxx;
}
public double retdQxx(){return dQxx;}
public double retdQo(){
if(wireQ){return dQlj;} else{ return dQtj;}
}
public double retPj(){return Pj;}
public double retQj(){return Qj;}
}
class LineMassive{
private ArrayList<Line> al=null;
private double dWlo,dWto,dWxxo,dW,dPlo,dPto,dPxxo,dP,dPlto,Pgu,sPj,sQj,dQlo,dQto,dQxxo,dQ,dQlt,Qgu;
private double dPp,dPtop,dPltop,dPlop,dPxxop,dQp,dQtop,dQltp,dQlop,dQxxop;
int n1[],n2[],mao[];
int count;
public LineMassive(){
al=new ArrayList<Line>();
}
public int size(){
return al.size();
}
public Line get(int i){
return al.get(i);
}
public void add(Line l){
al.add(l);
}
public void calcPQ(){
for(int i=0;i<al.size();i++){
al.get(i).PQTrans();
}
}
private void calcdWo(){
for(int i=0;i<al.size();i++)
if(al.get(i).wireQ){
dWlo+=al.get(i).retdWo();}
else{ dWto+=al.get(i).retdWo();}
}
private void calcWxx(){
for(int i=0;i<al.size();i++)
if(!al.get(i).wireQ) dWxxo+=al.get(i).retdWxxj();
}
private void calcdPo(){
for(int i=0;i<al.size();i++)
if(al.get(i).wireQ){
dPlo+=al.get(i).retdPo();}
else{ dPto+=al.get(i).retdPo();}
}
private void calcPxx(){
for(int i=0;i<al.size();i++)
if(!al.get(i).wireQ) dPxxo+=al.get(i).retdPxx();
}
private void calcPgu(){
for(int i=0;i<al.size();i++){
sPj+=al.get(i).retPj();
sQj+=al.get(i).retQj();
}
}
private void calcdQo(){
for(int i=0;i<al.size();i++)
if(al.get(i).wireQ){
dQlo+=al.get(i).retdQo();}
else{ dQto+=al.get(i).retdQo();}
}
private void calcQxx(){
for(int i=0;i<al.size();i++)
if(!al.get(i).wireQ) dQxxo+=al.get(i).retdQxx();
}
public void calculate(){
calcPQ();
VAO();
PTR();
for(int i=0;i<al.size();i++)
al.get(i).calculate();
UUzl();
calcdWo();
calcWxx();
dW=dWlo+dWto+dWxxo;
calcdPo();
calcPxx();
dP=dPlo+dPto+dPxxo;
dPlto=dPlo+dPto;
Pgu=sPj+dP;
dPp=dP*100/Pgu;
dPtop=dPto*100/Pgu;
dPltop=dPlto*100/Pgu;
dPlop=dPlo*100/Pgu;
dPxxop=dPxxo*100/Pgu;
calcdQo();
calcQxx();
dQ=dQlo+dQto+dQxxo;
dQlt=dQlo+dQto;
Qgu=sQj+dQ;
dQp=dQ*100/Qgu;
dQtop=dQto*100/Qgu;
dQltp=dQlt*100/Qgu;
dQlop=dQlo*100/Qgu;
dQxxop=dQxxo*100/Qgu;
}
public void VAO(){
n1=new int[al.size()];
n2=new int[al.size()];
mao=new int[al.size()];
for(int i=0;i<al.size();i++){
n1[i]=al.get(i).nn;
n2[i]=al.get(i).nk;
}
mao[0]=0;
for(int i=0;i<al.size();i++)
if(n1[i]!=1)
for(int j=0;j<al.size();j++)
if(n1[i]==n2[j])
mao[i]=j;
}
public void PTR(){
int j;
double p,q;
for(int i=0;i<al.size();i++){
if(al.get(i).wireQ)
continue;
j=i;
p=al.get(j).Pj;
q=al.get(j).Qj;
do{
count++;
j=mao[j];
al.get(j).Pj+=p;
al.get(j).Qj+=q;
}while(j!=0);
}
}
private void UUzl(){
int j;
double uOb=10500;
for(int i=0;i<al.size();i++){
j=mao[i];
uOb-=al.get(j).dUj;
al.get(i).Uuzl=uOb;
}
}
}