Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1

    Richiesta di aiuto per rendere il mio codice leggibile!!!!

    Ciao a tutti!!!
    Sono una nuova utente, mi sono affacciata al modo Java da pochissimo e ho un minimini background in C/C++.

    Dopo giornate di scervellamento ho finalmente ottenuto un codice che fa quello che voglio...il problema che ho ora peró é che devo renderlo a classi, ovvero ora ho tutto in main, ed ovviamente non é quello che voglio...

    Dunque il mio codice fa:
    legge una serie di punti da file, raggruppa questi in punti di tre in tre e calcola le medie sulle y. Ad una ad una compara le medie e restituisce le rispettive x quendo si ha un "salto" nelle medie.

    Di seguito il mio codice...
    Allego anche il txt, e aggiungo che nel caso di questo txt di esempio il programma mi devo restituire primo jump x=21, secondo jump x=104, T = 83.

    Lo fa.. ma non ho la piú pallida idea di come rendere il tutto object oriented....

    Qualcuno che mi possa aiutare???

    grassssie

    codice:
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    import java.util.StringTokenizer;
     
    public class ReadFile {
         
        public static void main(String[] args) throws IOException 
        {
        
    
        BufferedReader br = null;
     
        
        try{
            String line;
            /*interval for calculating average, 100ns*/
            int n=3; 
            /*energy threshold, change in average indicating a jump*/
            double m=3; 
            /*other constants*/
            int j=0, k=0; 
            double Sum=0, Ave1=0, Ave2=0; 
            double T1=0, T2=0, T=0;
            boolean first_time = true, first_time_ave = true, second_time_ave = true;
            
            br = new BufferedReader(new FileReader("prova2.txt"));
            
            
            while ((line = br.readLine()) != null) 
            {
               
               StringTokenizer stringTokenizer = new StringTokenizer(line, " ");
               
                        
              while (stringTokenizer.hasMoreElements()) 
               {
                  double x = Double.parseDouble(stringTokenizer.nextElement().toString());
                  double y = Double.parseDouble(stringTokenizer.nextElement().toString());
                  
                  
                  if (k == 0 && first_time_ave == true) T1=x; //fissare il primo elemento x per il primo salto
                  else if (k == 0 && first_time_ave == false && second_time_ave == true) T2=x;    //fissare ogni volta il primo elemento, secondo salto
                  
                  if(k<n)
                    {    
                          Sum += y;
                          k++;
                          System.out.println("y = " + y);    
                    }
                    
                    if(k==n)
                    {   
                        if(first_time == true)
                            {
                                Ave1=Sum/3;
                                System.out.println("sum y = " + Sum);
                                System.out.println("Ave.1 = " + Ave1);
                                first_time = false;
                                Sum=0;
                                   k=0;
                            }
                        
                            else 
                                {   
                                    Ave2=Sum/3;
                                    System.out.println("sum y = " + Sum);
                                    System.out.println("Ave.i = " + Ave2);
                                    
                                     
                                if (Math.abs(Ave1-Ave2) > m)
                                    {        
                                        if(first_time_ave == true)
                                            {
                                                System.out.println("First jump at x = " + T1);
                                                Sum=0;
                                                   k=0;
                                                   Ave1=Ave2;
                                                   Ave2=0;
                                                   first_time_ave = false;
                                            }
                                        else 
                                            {    
                                                System.out.println("Second jump at x = " + T2);
                                                
                                                Sum=0;
                                                   k=0;
                                                   Ave1=Ave2;
                                                   Ave2=0;
                                                   second_time_ave = false;
                                            }        
                                    }
                                else 
                                    {        
                                            Sum=0;
                                            k=0;
                                            Ave1=Ave2;
                                            Ave2=0;
                                    }
                                }
                    
                    }
                        StringBuilder sb = new StringBuilder();
                      
                   
               }
        
        }
            if (second_time_ave == true) System.out.println("Recoil at t = " + T1 + " But NO alpha decay");
            else {
                    T = Math.abs(T1-T2);
                    System.out.println("\nDifference in time is : T = " + T + "\n");
                }
            System.out.println("Done\n");
        }
        
        
        catch (NumberFormatException e) 
            {
                System.out.println(e.toString());
            }
        finally 
            {
                try 
                    {
                        if (br != null)
                        br.close();
                    } 
                catch (IOException ex) 
                    {
                        ex.printStackTrace();
                    }
         
        }
        }
    }
    File allegati File allegati
    Ultima modifica di LeleFT; 02-07-2015 a 11:47 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.