Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.46 KB | None | 0 0
  1. основная суть проблемы заключается в циклах, где идет распределение по минимальному элементу. Он просто зацикливается все зависает, либо не идет никакого распределения. Что делать с этим уже не имею понятия. Можно, наверное, было исключить часть кода, но мало ли проблема появилась еще до циклов.
  2.  
  3. //ввод и вывод матрицы, векторов спроса и предложений
  4. stolbF.addActionListener(new ActionListener () {
  5.  
  6.     public void actionPerformed(ActionEvent arg0) {
  7.         // TODO Auto-generated method stub
  8.         int razmer = Integer.valueOf(stolbF.getText());
  9.         stolb = razmer;
  10.         System.out.println(stolb);
  11.     }
  12. });
  13. strocF.addActionListener(new ActionListener () {
  14.  
  15.     public void actionPerformed(ActionEvent arg0) {
  16.         // TODO Auto-generated method stub
  17.         int razmer1 = Integer.valueOf(strocF.getText());
  18.         stroc = razmer1;
  19.         System.out.println(stroc);
  20.     }
  21. });
  22. vvod.addActionListener(new ActionListener () {
  23.  
  24.     public void actionPerformed(ActionEvent arg0) {
  25.         // TODO Auto-generated method stub
  26.         if (wow==0) {
  27.             if (i<stolb) {
  28.                     String k =vvod.getText();
  29.                     matr[i][j]=Integer.valueOf(k );
  30.                     System.out.println(matr[i][j]);
  31.                     j++;
  32.                     vvod.setText(null);
  33.                     if(j==stolb) {
  34.                     i++;
  35.                     j=0;
  36.                     }          
  37.             }
  38.         }; 
  39.         if(wow==1) {
  40.             if(i<stolb) {
  41.                 String s = vvod.getText();
  42.                 sp[i]=Integer.valueOf(s);
  43.                 vvod.setText(null);
  44.                 i++;
  45.             }
  46.         }
  47.         if(wow==2) {
  48.             if(i<stolb) {
  49.                 String s = vvod.getText();
  50.                 pr[i]=Integer.valueOf(s);
  51.                 vvod.setText(null);
  52.                 i++;
  53.             }
  54.         }
  55.         if(i==stolb) {
  56.             i=0;
  57.             j=0;
  58.         }
  59.        
  60.     }
  61. });
  62. btn1.addActionListener(new ActionListener() {
  63. public void actionPerformed(ActionEvent arg0) {
  64.     if(wow==0) {   
  65.         String s=null;
  66.         for (int i = 0;i<stolb;i++) {
  67.             for (int j = 0;j<stolb;j++) {
  68.                 s=Integer.toString(matr[i][j]);
  69.                 matrr=matrr+" "+s;
  70.             }
  71.             matrr=matrr+"\n ";
  72.         }
  73.         matrica.setText(matrr);
  74.         matrr=" ";
  75.     }
  76.     if(wow==1) {   
  77.         String s1=null;
  78.         s1=Integer.toString(sp[i]);
  79.         spp=spp+s1;
  80.         for (int i = 1;i<stolb;i++) {
  81.                 s1=Integer.toString(sp[i]);
  82.                 spp=spp+"; "+s1;
  83.                 System.out.print(spp);
  84.         }
  85.         spros.setText(spp);
  86.         spp=" ";
  87.     }
  88.     if(wow==2) {   
  89.         String s2=null;
  90.         s2=Integer.toString(pr[i]);
  91.         prr=prr+s2;
  92.         for (int i = 1;i<stolb;i++) {
  93.                 s2=Integer.toString(pr[i]);
  94.                 prr=prr+"; "+s2;
  95.         }
  96.         predlog.setText(prr);
  97.         prr=" ";
  98.     }  
  99. }
  100. });
  101. btn2.addActionListener(new ActionListener() {
  102.     public void actionPerformed(ActionEvent e) {
  103.  
  104.         for (int i=0;i<stolb;i++) {
  105.             sum1+=sp[i];
  106.        
  107.         }  
  108.         System.out.println(sum1);
  109.         for (int i=0;i<stolb;i++) {
  110.             sum2+=pr[i];
  111.            
  112.         }
  113.         String proverka=" ";
  114.         String strproverka=null;
  115.         strproverka=Integer.toString(sp[0]);
  116.         proverka=proverka+strproverka;
  117.         for (int i = 1;i<stolb;i++) {
  118.             strproverka=Integer.toString(sp[i]);                       
  119.             proverka=proverka+"+"+strproverka;
  120.             }
  121.         proverka=proverka+"=";
  122.         strproverka=Integer.toString(pr[0]);
  123.         proverka=proverka+strproverka;
  124.         for (int i = 1;i<stolb;i++) {
  125.             strproverka=Integer.toString(pr[i]);                       
  126.             proverka=proverka+"+"+strproverka;
  127.             }
  128.         proverka = proverka +"="+sum2;
  129.         if(sum1==sum2) {
  130.             func.setText(proverka);
  131.             }
  132.             else
  133.             {
  134.                 func.setText("Не равны. Повторите ввод!");
  135.             }
  136.  
  137.     }
  138. });
  139. btn3.addActionListener(new ActionListener() {
  140.     public void actionPerformed(ActionEvent arg0) {
  141.         wow=comboBox.getSelectedIndex();
  142.        
  143.     }
  144. });
  145. // распределение
  146. raspredbtn.addActionListener(new ActionListener() {
  147.     public void actionPerformed(ActionEvent e) {
  148.         int min = 990;
  149.         int index_min_i = 0;
  150.         int index_min_j = 0;
  151.  
  152.         while ((sum1> 0) && (sum2> 0)) { // считаем пока есть запасы и заявки
  153.         // нахождение минимального элемента
  154.         for (int i = 0; i < stolb; i++) {
  155.         for (int j = 0 ; j <stolb; j++) {
  156.         if ((pr[i] > 0) && (sp[j] > 0)) {
  157.         if ((matr[i][j] < min)) {
  158.         min = matr[i][j];
  159.         index_min_i = i;
  160.         index_min_j = j;
  161.         }
  162.         }
  163.         }
  164.         System.out.println("Минимальный равен " + min + " = [" + index_min_i + "]" + "[" + index_min_j + "]");
  165.         }
  166.  
  167.  
  168.         // спрос равен предложению
  169.         if (sp[index_min_j] == pr[index_min_i])
  170.         {
  171.         mresh[index_min_i][index_min_j] = pr[index_min_j];
  172.         sp[index_min_j] =0;
  173.         pr[index_min_i] = 0;
  174.         }
  175.         //спрос больше предложения
  176.         if (sp[index_min_j]> pr[index_min_i])
  177.         {
  178.         mresh[index_min_i][index_min_j] = pr[index_min_i];
  179.         sp[index_min_j] -= pr[index_min_i];
  180.         pr[index_min_i]=0;
  181.  
  182.         }
  183.         //предложение больше спроса
  184.         if (sp[index_min_j] < pr[index_min_i])
  185.         {
  186.  
  187.         mresh[index_min_i][index_min_j] = sp[index_min_j];
  188.         pr[index_min_i] -= sp[index_min_j];
  189.         sp[index_min_j]=0;
  190.         }
  191.         sum1=0;
  192.         sum2=0;
  193.         for (int i=0;i<stolb;i++) {
  194.         sum1+=sp[i];
  195.  
  196.         }
  197.         System.out.println(sum1);
  198.         for (int i=0;i<stolb;i++) {
  199.         sum2+=pr[i];
  200.  
  201.         }
  202.  
  203.         }
  204.         String s=null;
  205.         for (int i = 0;i<stolb;i++) {
  206.             for (int j = 0;j<stolb;j++) {
  207.                 if(mresh[i][j]>0)
  208.                 {
  209.                     s=Integer.toString(mresh[i][j]);
  210.                 }
  211.                 else
  212.                 {
  213.                     s="-";
  214.                 }
  215.                 lmresh=lmresh+" "+s;
  216.             }
  217.             lmresh=lmresh   +"\n ";
  218.         }
  219.         raspred.setText(lmresh);
  220.         lmresh=" ";
  221.  
  222.      
  223.    
  224.     }});
  225. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement