Array aus non-static

mr_xxl

Mitglied
Hallo,
ich habe in einer nicht statischen Methode die Berechnung einer Variable durch geführt, die als Array zurückgegeben werden soll. Das Ergebnis brauche ich in einer statischen Methode, der Code sieht etwa so aus:
Java:
public double [ ] WertA(){
for(int i=0;……;i++){
Berechnung von a
}
return a;
}

public static double [ ] Gesamt(){
// b und c sind hier definiert

double a[]=new double[20];
        a.WertA();
…
alles= a+b+c;
return alles;

}
Aber irgendwie klappt die Zuweisung nicht. Könnt Ihr mir helfen?!
 

diggaa1984

Top Contributor
du kannst in einem statischen kontext nicht mit instanz-spezifischem kontext arbeiten .. da der statische kontext an keine intanz der klasse gebunden ist.

du könntest der statischen methode ein objekt der klasse geben, aber ob das sinn macht und schön ist ist die andere frage.
 

ARadauer

Top Contributor
Hund kann nix von Bello oder Hasso benutzen.
Bello oder Hasso können aber sehr wohl Methoden von Hund benutzen.


Poste mal die gesammte Klasse...
 

mr_xxl

Mitglied
Java:
import static java.lang.Math.*;
import java.io.*;
import java.util.*;


import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;

/**
 * The main class of the application.
 */





public class VersuchApp extends SingleFrameApplication {

   


    protected void startup() {
        show(new VersuchView(this));
    }

    /**
     * This method is to initialize the specified window by injecting resources.
     * Windows shown in our application come fully initialized from the GUI
     * builder, so this additional configuration is not needed.
     */
    @Override protected void configureWindow(java.awt.Window root) {
    }

    /**
     * A convenient static getter for the application instance.
     * @return the instance of VersuchApp
     */
    public static VersuchApp getApplication() {
        return Application.getInstance(VersuchApp.class);
    }

    /**
     * Main method launching the application.
     */

     public static int Zeitzone = 1;
     public static double gLaenge =15.231;
     public static double gBreite = 40.871;
     public static double N = 24.3778;
     public static double ae=0; 
     public static double [][]Daten=new double[9][8760];
     public static double [][] anlage=new double[8][8760];
     public static double [][] Ediff=new double[8][8760];
     public static double reihe= 6.5*14; 
     public static double b=1.65; 
     public static double h=0.992;

    public static double Wert1(double[] d){ 

      double Monat=0;
    for (int i=0; i<1; i++){ // 1. Spalte
   //   for (int i=0; i<d.length-6; i++){ //
            Monat = d[i];
      }
      return Monat;
    }

    public static double Wert2(double[] d){ 

      double Tag=0;
    for (int i=0; i<2; i++){ // 2. Spalte
   //   for (int i=0; i<d.length-6; i++){ //
            Tag = d[i];
      }
      return Tag;
    }

    public static double Wert3(double[] d){ 

      double Stunden=0;
    //for (int i=0; i<3; i++){ // 3. Spalte
      for (int i=0; i<d.length-4; i++){ //
            Stunden = d[i];
      }
      return Stunden;
    }

    public static double Wert4(double[] d){

      double Ta=0;
    //for (int i=0; i<4; i++){ // 4. Spalte
      for (int i=0; i<d.length-3; i++){ //
            Ta = d[i];
      }
      return Ta;
    }


 public static double Wert5(double[] d){ 

      double Strahlung=0;
   // for (int i=0; i<5; i++){ // 5. Spalte
     for (int i=0; i<d.length-2; i++){ 
            Strahlung = d[i];
      }
      return Strahlung;
    }



     public static double[][] Daten () throws IOException { 

      BufferedReader reader = new BufferedReader(new FileReader(new File("C:/User/Desktop/Java/Daten.txt")));
      String line = null;
      ArrayList<String> lines = new ArrayList<String>();

      while((line = reader.readLine()) != null){
         lines.add(line);
      }


      String[][] data = new String[lines.size()][];
      for(int i = 0; i<lines.size(); i++){
         data[i] = lines.get(i).split(";");
      }

       double[][] doubleArray = new double[data.length][];
       for(int i = 0; i < data.length; i++){
         doubleArray[i] = new double[data[i].length]; 
         for(int k = 0; k < data[i].length; k++){
            doubleArray[i][k] = Double.parseDouble(data[i][k]); 
         }
      }
       double  Eghor [] =new double[8760];
       for ( int i=0;i < 8760;i++){

            Eghor [i]=  VersuchApp.Wert5(doubleArray[i]);

        
        }


       double  Zeit [] =new double[8760]; 
       for ( int i=0;i < 8760;i++){

            Zeit [i]=  VersuchApp.Wert3(doubleArray[i]);

    
        }

       double  Temp [] =new double[8760]; 
       for ( int i=0;i < 8760;i++){

            Temp [i]=  VersuchApp.Wert4(doubleArray[i]);

   
        }
     


        int Jahr=2003;
      if( Jahr % 4 ==0){
         int length =8784;
               }
      int length =8760;

       double  Monat [] =new double[length];
       double  Tag [] =new double[length];
       double j[]=new double[length];
       double d[]=new double[length];
       double z[]=new double[length];
       double Moz[]=new double[length];
       double Woz[]=new double[length];
       double W[]=new double[length];
       double Sonne[]=new double[length];
       double Sonnenhoehe[]=new double[length];
       double Az[]=new double[length];
       double Azimut[]=new double[length];
       double kt[]=new double[length];
       double diff[]=new double[length];
       double Ediffhor[]=new double[length];
       double Edirhor[]=new double[length];
       double Ogen[]=new double[length];
       double Edirgen[]=new double[length];
       double Erefl[]=new double[length];


       for ( int i=0;i < length;i++){

           Monat [i]=  VersuchApp.Wert1(doubleArray[i]);
           Tag [i]=  VersuchApp.Wert2(doubleArray[i]);

           if(Monat[i]==2){
              Tag [i]= Tag[i]+31;
           }
           if(Monat[i]==3){
              Tag [i]= Tag[i]+59;   // +1
           }
           if(Monat[i]==4){
              Tag [i]= Tag[i]+90;
           }
           if(Monat[i]==5){
              Tag [i]= Tag[i]+120;
           }
           if(Monat[i]==6){
              Tag [i]= Tag[i]+151;
           }
           if(Monat[i]==7){
              Tag [i]= Tag[i]+181;
           }
           if(Monat[i]==8){
              Tag [i]= Tag[i]+212;
           }
           if(Monat[i]==9){
              Tag [i]= Tag[i]+243;
           }
           if(Monat[i]==10){
              Tag [i]= Tag[i]+273;
           }
           if(Monat[i]==11){
              Tag [i]= Tag[i]+304;
           }
           if(Monat[i]==12){
              Tag [i]= Tag[i]+334;
           }
           j[i]=360*Tag[i]/(length/24);

           d[i]= 0.3948-23.2559*cos(toRadians(j[i]+9.1))-0.3915*cos(toRadians(2*j[i]+5.4))-0.1764*cos(toRadians(3*j[i]+26));
           z[i]= 0.0066+7.3525*cos(toRadians(j[i]+85.9))+ 9.9359*cos(toRadians(2*j[i]+108.9))+0.3387*cos(toRadians(3*j[i]+105.2));
           Moz[i]= Zeit[i]- Zeitzone + 4*gLaenge/60;
           Woz[i]=Moz[i]+z[i]/60; 
           W[i]=(12-Woz[i])*15;

           Sonne[i]= cos(toRadians(W[i]))*cos(toRadians(gBreite))*cos(toRadians(d[i]))+sin(toRadians(gBreite))*sin(toRadians(d[i]));
               if (Sonne[i] >1){
                   Sonne[i] =1;}
               if (Sonne[i] < -1){
                   Sonne[i] =- 1;}
               Sonnenhoehe[i]= toDegrees(asin(Sonne[i]));


               Az[i]=(sin(toRadians(Sonnenhoehe[i]))*sin(toRadians(gBreite))-sin(toRadians(d[i])))/(cos(toRadians(Sonnenhoehe[i]))*cos(toRadians(gBreite)));
               if (Az[i] >1){
                   Az[i] =1;}
               if (Az[i] < -1){
                   Az[i] =- 1;}

                if(Woz[i] >12 ||Woz[i]<0){
                Az[i]=toDegrees(acos(Az[i]));
                }
                 else {
                 Az[i]=-toDegrees(acos(Az[i]));
                 }
               Azimut[i]=180+Az[i];


            kt[i]=Eghor[i]/(1367*sin(toRadians(Sonnenhoehe[i])));


        if(kt[i]<=0.3){
           diff[i]=Eghor[i]*(1.02-0.254*kt[i]+0.0123*sin(toRadians(Sonnenhoehe[i])));
       }
       else if(0.3 <kt[i] && kt[i]<0.78){
           diff[i]=Eghor[i]*(1.4-1.749*kt[i]+0.177*sin(toRadians(Sonnenhoehe[i])));
       }
       else if(kt[i] >= 0.78){
           diff[i]=Eghor[i]*(0.486*kt[i]-0.182*sin(toRadians(Sonnenhoehe[i])));
       }
        Ediffhor[i]=diff[i];

        if(Ediffhor[i]> Eghor[i]){
            Ediffhor[i]= Eghor[i];

        }
        Edirhor[i]= Eghor[i]-Ediffhor[i];


        Ogen[i]= toDegrees(acos(-cos(toRadians(Sonnenhoehe[i]))*sin(toRadians(N))*cos(toRadians(Azimut[i]-ae))+sin(toRadians(Sonnenhoehe[i]))*cos(toRadians(N))));

        Edirgen[i]=Edirhor[i]*cos(toRadians(Ogen[i]))/sin(toRadians(Sonnenhoehe[i]));

        if(Edirgen[i]<=0){
            Edirgen[i]=0;
        }

        Erefl[i]=Eghor[i]*0.25*0.5*(1-cos(toRadians(N)));

       

        Daten[0][i]=Sonnenhoehe[i];
        Daten[1][i]=Azimut[i];
        Daten[2][i]=Ediffhor[i];
        Daten[3][i]=Edirhor[i];
        Daten[4][i]=Eghor[i];
        Daten[5][i]=Ogen[i];
        Daten[6][i]=Edirgen[i];
        Daten[7][i]=Erefl[i];
        Daten[8][i]=Temp[i];

    //    System.out.println(Daten[8][i]);


         }

return Daten;

}
public double [ ] Ediffgen() throws IOException{
 
        int length =8760;
  
         double Ediffgen[]=new double[length];
          double [][] data = VersuchApp.Daten ();
            int Index=VersuchView.l;

   if(Index==0){

         for ( int i=0;i <length;i++){
             
             double Ediffhor= data[2][i];
             double Sonnenhoehe = data [0][i];

          Ediffgen[i]=Ediffhor/2*(1+cos(toRadians(Sonnenhoehe)));
        //  System.out.println (Ediffgen[i]);
         }
   }

    if(Index==1){ 
          for ( int i=0;i <length;i++){

             double Sonnenhoehe = data [0][i];
             double Ediffhor= data[2][i];
             double Eghor= data[4][i];
             double Ogen= data[5][i];


        double F=1-pow(Ediffhor/Eghor,2);

        Ediffgen[i]=Ediffhor/2*(1+cos (toRadians(N)))*(1+F*pow(sin(toRadians(N/2)),3))*(1+F*pow(cos(toRadians(Ogen)),2)*pow(cos(toRadians(Sonnenhoehe)),2));
       if (Eghor==0){
                Ediffgen[i]=0;
             }
       // System.out.println (Ediffgen[i]);
          }

    }

    if(Index==2){

         double F11 = 0, F12 = 0, F13=0, F21 = 0, F22 = 0, F23 = 0, F1, F2, a, c;


          for ( int i=0;i <length;i++){

             double Sonnenhoehe = data [0][i];
             double Ediffhor= data[2][i];
             double Edirhor= data[3][i];
             double Ogen= data[5][i];

             double Ohor=toRadians(90-Sonnenhoehe);
             double AM=1/sin(toRadians(Sonnenhoehe));

        double Ep =(((Ediffhor + Edirhor * pow(sin(toRadians(Sonnenhoehe)),-1))/Ediffhor)+1.041*pow(Ohor,3)) /(1+1.041*pow(Ohor,3));
        double H=AM*Edirhor/1367;
    if (Ep >= 1 && Ep <1.065 ){
        F11=-0.008;
        F12=0.588;
        F13=-0.062;
        F21=-0.06;
        F22=0.072;
        F23=-0.022;
    }
 else if (Ep >= 1.065 && Ep <1.23 ){
        F11=0.13;
        F12=0.683;
        F13=-0.151;
        F21=-0.019;
        F22=0.066;
        F23=-0.029;
    }
        else if (Ep >= 1.23 && Ep <1.5 ){
        F11=0.33;
        F12=0.487;
        F13=-0.221;
        F21=0.055;
        F22=-0.064;
        F23=-0.026;
    }
        else if (Ep >= 1.5 && Ep <1.95 ){
        F11=0.568;
        F12=0.187;
        F13=-0.295;
        F21=0.109;
        F22=-0.152;
        F23=-0.014;
    }
        else if (Ep >= 1.95 && Ep <2.8 ){
        F11=0.873;
        F12=-0.392;
        F13=-0.362;
        F21=0.226;
        F22=-0.462;
        F23=0.001;
    }
        else if (Ep >= 2.8 && Ep <4.5 ){
        F11=1.132;
        F12=-1.237;
        F13=-0.412;
        F21=0.288;
        F22=-0.823;
        F23=0.131;
    }
        else if (Ep >= 4.5 && Ep <6.2 ){
        F11=1.06;
        F12=-1.6;
        F13=-0.359;
        F21=0.264;
        F22=-1.127;
        F23=0.131;
    }
        else if (Ep <=6.2 ){
        F11=0.678;
        F12=-0.327;
        F13=-0.25;
        F21=0.156;
        F22=-1.377;
        F23=0.251;
    }


        F1=F11+F12*H+Ohor*F13;
        F2=F21+F22*H+Ohor*F23;

        if(cos(toRadians(Ogen))>=0){
            a=cos(toRadians(Ogen));
        }
        else{
            a=0;
                  }
        if (sin(toRadians(Sonnenhoehe))>=0.087){
             c=sin(toRadians(Sonnenhoehe));
         }
        else{
            c=0.087;
        }

        Ediffgen[i]=Edirhor*(0.5*(1+cos(toRadians(N)))*(1-F1)+a/c*F1+F2*sin(toRadians(N)));

        if(Ediffgen[i]<0){
            Ediffgen[i]=0;
        }
     }
  }
         return  Ediffgen;
         
         
    }

  public static double [ ] Eges() throws IOException{
       
      int length =8760;
        double Eggen[]=new double[length];
         double Ediffgeneigt[]=new double[length];
          Ediffgeneigt.Ediffgen();
        
          double [][] data = VersuchApp.Daten ();
   for ( int i=0;i <length;i++){

             double Edirgen = data [6][i];
             double Erefl= data[7][i];

             Eggen[i]=Edirgen+Ediffgeneigt[i]+Erefl;
           System.out.println(Eggen[i]);
    }
   return Eggen;
 }
 public static void main(String[] args) throws IOException {
          launch(VersuchApp.class, args);
        // VersuchApp.Eges();
   
    } 
}

Es gibt`s auch noch ein Class, welches Index liefert von einem Cobmobox
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
Variablen und Methoden schreibt man klein... warum sind alle methoden static?

Methoden machen etwas... solten also verben beinhalten, liefereDaten, berechneEdiff... Wert1 ist keine Methode...
Den Code sauber einzurücken hilft...

HAb jetzt nicht alles aber sollte schon mal besser laufen...


Java:
import static java.lang.Math.*;
import java.io.*;
import java.util.*;

import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;

/**
 * The main class of the application.
 */

public class VersuchApp extends SingleFrameApplication {

   
   protected void startup() {
      versuchsView = new VersuchView(this);
      show(versuchsView);
   }

   /**
    * This method is to initialize the specified window by injecting resources.
    * Windows shown in our application come fully initialized from the GUI
    * builder, so this additional configuration is not needed.
    */
   @Override
   protected void configureWindow(java.awt.Window root) {
   }

   /**
    * A convenient static getter for the application instance.
    * 
    * @return the instance of VersuchApp
    */
   public static VersuchApp getApplication() {
      return Application.getInstance(VersuchApp.class);
   }

   /**
    * Main method launching the application.
    */

   public int Zeitzone = 1;

   public double gLaenge = 15.231;

   public double gBreite = 40.871;

   public double N = 24.3778;

   public double ae = 0;

   public double[][] Daten = new double[9][8760];

   public double[][] anlage = new double[8][8760];

   public double[][] Ediff = new double[8][8760];

   public double reihe = 6.5 * 14;

   public double b = 1.65;

   public double h = 0.992;
   
   VersuchView versuchsView;

   public double Wert1(double[] d) {

      double Monat = 0;
      for (int i = 0; i < 1; i++) { // 1. Spalte
         // for (int i=0; i<d.length-6; i++){ //
         Monat = d[i];
      }
      return Monat;
   }

   public double Wert2(double[] d) {

      double Tag = 0;
      for (int i = 0; i < 2; i++) { // 2. Spalte
         // for (int i=0; i<d.length-6; i++){ //
         Tag = d[i];
      }
      return Tag;
   }

   public double Wert3(double[] d) {

      double Stunden = 0;
      // for (int i=0; i<3; i++){ // 3. Spalte
      for (int i = 0; i < d.length - 4; i++) { //
         Stunden = d[i];
      }
      return Stunden;
   }

   public double Wert4(double[] d) {

      double Ta = 0;
      // for (int i=0; i<4; i++){ // 4. Spalte
      for (int i = 0; i < d.length - 3; i++) { //
         Ta = d[i];
      }
      return Ta;
   }

   public double Wert5(double[] d) {

      double Strahlung = 0;
      // for (int i=0; i<5; i++){ // 5. Spalte
      for (int i = 0; i < d.length - 2; i++) {
         Strahlung = d[i];
      }
      return Strahlung;
   }

   public double[][] Daten() throws IOException {

      BufferedReader reader = new BufferedReader(new FileReader(new File("C:/User/Desktop/Java/Daten.txt")));
      String line = null;
      ArrayList<String> lines = new ArrayList<String>();

      while ((line = reader.readLine()) != null) {
         lines.add(line);
      }

      String[][] data = new String[lines.size()][];
      for (int i = 0; i < lines.size(); i++) {
         data[i] = lines.get(i).split(";");
      }

      double[][] doubleArray = new double[data.length][];
      for (int i = 0; i < data.length; i++) {
         doubleArray[i] = new double[data[i].length];
         for (int k = 0; k < data[i].length; k++) {
            doubleArray[i][k] = Double.parseDouble(data[i][k]);
         }
      }
      double Eghor[] = new double[8760];
      for (int i = 0; i < 8760; i++) {

         Eghor[i] = Wert5(doubleArray[i]);

      }

      double Zeit[] = new double[8760];
      for (int i = 0; i < 8760; i++) {

         Zeit[i] = Wert3(doubleArray[i]);

      }

      double Temp[] = new double[8760];
      for (int i = 0; i < 8760; i++) {

         Temp[i] = Wert4(doubleArray[i]);

      }

      int Jahr = 2003;
      if (Jahr % 4 == 0) {
         int length = 8784;
      }
      int length = 8760;

      double Monat[] = new double[length];
      double Tag[] = new double[length];
      double j[] = new double[length];
      double d[] = new double[length];
      double z[] = new double[length];
      double Moz[] = new double[length];
      double Woz[] = new double[length];
      double W[] = new double[length];
      double Sonne[] = new double[length];
      double Sonnenhoehe[] = new double[length];
      double Az[] = new double[length];
      double Azimut[] = new double[length];
      double kt[] = new double[length];
      double diff[] = new double[length];
      double Ediffhor[] = new double[length];
      double Edirhor[] = new double[length];
      double Ogen[] = new double[length];
      double Edirgen[] = new double[length];
      double Erefl[] = new double[length];

      for (int i = 0; i < length; i++) {

         Monat[i] = Wert1(doubleArray[i]);
         Tag[i] = Wert2(doubleArray[i]);

         if (Monat[i] == 2) {
            Tag[i] = Tag[i] + 31;
         }
         if (Monat[i] == 3) {
            Tag[i] = Tag[i] + 59; // +1
         }
         if (Monat[i] == 4) {
            Tag[i] = Tag[i] + 90;
         }
         if (Monat[i] == 5) {
            Tag[i] = Tag[i] + 120;
         }
         if (Monat[i] == 6) {
            Tag[i] = Tag[i] + 151;
         }
         if (Monat[i] == 7) {
            Tag[i] = Tag[i] + 181;
         }
         if (Monat[i] == 8) {
            Tag[i] = Tag[i] + 212;
         }
         if (Monat[i] == 9) {
            Tag[i] = Tag[i] + 243;
         }
         if (Monat[i] == 10) {
            Tag[i] = Tag[i] + 273;
         }
         if (Monat[i] == 11) {
            Tag[i] = Tag[i] + 304;
         }
         if (Monat[i] == 12) {
            Tag[i] = Tag[i] + 334;
         }
         j[i] = 360 * Tag[i] / (length / 24);

         d[i] = 0.3948 - 23.2559 * cos(toRadians(j[i] + 9.1)) - 0.3915 * cos(toRadians(2 * j[i] + 5.4)) - 0.1764 * cos(toRadians(3 * j[i] + 26));
         z[i] = 0.0066 + 7.3525 * cos(toRadians(j[i] + 85.9)) + 9.9359 * cos(toRadians(2 * j[i] + 108.9)) + 0.3387 * cos(toRadians(3 * j[i] + 105.2));
         Moz[i] = Zeit[i] - Zeitzone + 4 * gLaenge / 60;
         Woz[i] = Moz[i] + z[i] / 60;
         W[i] = (12 - Woz[i]) * 15;

         Sonne[i] = cos(toRadians(W[i])) * cos(toRadians(gBreite)) * cos(toRadians(d[i])) + sin(toRadians(gBreite)) * sin(toRadians(d[i]));
         if (Sonne[i] > 1) {
            Sonne[i] = 1;
         }
         if (Sonne[i] < -1) {
            Sonne[i] = -1;
         }
         Sonnenhoehe[i] = toDegrees(asin(Sonne[i]));

         Az[i] = (sin(toRadians(Sonnenhoehe[i])) * sin(toRadians(gBreite)) - sin(toRadians(d[i]))) / (cos(toRadians(Sonnenhoehe[i])) * cos(toRadians(gBreite)));
         if (Az[i] > 1) {
            Az[i] = 1;
         }
         if (Az[i] < -1) {
            Az[i] = -1;
         }

         if (Woz[i] > 12 || Woz[i] < 0) {
            Az[i] = toDegrees(acos(Az[i]));
         } else {
            Az[i] = -toDegrees(acos(Az[i]));
         }
         Azimut[i] = 180 + Az[i];

         kt[i] = Eghor[i] / (1367 * sin(toRadians(Sonnenhoehe[i])));

         if (kt[i] <= 0.3) {
            diff[i] = Eghor[i] * (1.02 - 0.254 * kt[i] + 0.0123 * sin(toRadians(Sonnenhoehe[i])));
         } else if (0.3 < kt[i] && kt[i] < 0.78) {
            diff[i] = Eghor[i] * (1.4 - 1.749 * kt[i] + 0.177 * sin(toRadians(Sonnenhoehe[i])));
         } else if (kt[i] >= 0.78) {
            diff[i] = Eghor[i] * (0.486 * kt[i] - 0.182 * sin(toRadians(Sonnenhoehe[i])));
         }
         Ediffhor[i] = diff[i];

         if (Ediffhor[i] > Eghor[i]) {
            Ediffhor[i] = Eghor[i];

         }
         Edirhor[i] = Eghor[i] - Ediffhor[i];

         Ogen[i] = toDegrees(acos(-cos(toRadians(Sonnenhoehe[i])) * sin(toRadians(N)) * cos(toRadians(Azimut[i] - ae)) + sin(toRadians(Sonnenhoehe[i])) * cos(toRadians(N))));

         Edirgen[i] = Edirhor[i] * cos(toRadians(Ogen[i])) / sin(toRadians(Sonnenhoehe[i]));

         if (Edirgen[i] <= 0) {
            Edirgen[i] = 0;
         }

         Erefl[i] = Eghor[i] * 0.25 * 0.5 * (1 - cos(toRadians(N)));

         Daten[0][i] = Sonnenhoehe[i];
         Daten[1][i] = Azimut[i];
         Daten[2][i] = Ediffhor[i];
         Daten[3][i] = Edirhor[i];
         Daten[4][i] = Eghor[i];
         Daten[5][i] = Ogen[i];
         Daten[6][i] = Edirgen[i];
         Daten[7][i] = Erefl[i];
         Daten[8][i] = Temp[i];

         // System.out.println(Daten[8][i]);

      }

      return Daten;

   }

   public double[] Ediffgen() throws IOException {

      int length = 8760;

      double Ediffgen[] = new double[length];
      double[][] data = Daten();
      int Index = versuchsView.l;

      if (Index == 0) {

         for (int i = 0; i < length; i++) {

            double Ediffhor = data[2][i];
            double Sonnenhoehe = data[0][i];

            Ediffgen[i] = Ediffhor / 2 * (1 + cos(toRadians(Sonnenhoehe)));
            // System.out.println (Ediffgen[i]);
         }
      }

      if (Index == 1) {
         for (int i = 0; i < length; i++) {

            double Sonnenhoehe = data[0][i];
            double Ediffhor = data[2][i];
            double Eghor = data[4][i];
            double Ogen = data[5][i];

            double F = 1 - pow(Ediffhor / Eghor, 2);

            Ediffgen[i] = Ediffhor / 2 * (1 + cos(toRadians(N))) * (1 + F * pow(sin(toRadians(N / 2)), 3))
                  * (1 + F * pow(cos(toRadians(Ogen)), 2) * pow(cos(toRadians(Sonnenhoehe)), 2));
            if (Eghor == 0) {
               Ediffgen[i] = 0;
            }
            // System.out.println (Ediffgen[i]);
         }

      }

      if (Index == 2) {

         double F11 = 0, F12 = 0, F13 = 0, F21 = 0, F22 = 0, F23 = 0, F1, F2, a, c;

         for (int i = 0; i < length; i++) {

            double Sonnenhoehe = data[0][i];
            double Ediffhor = data[2][i];
            double Edirhor = data[3][i];
            double Ogen = data[5][i];

            double Ohor = toRadians(90 - Sonnenhoehe);
            double AM = 1 / sin(toRadians(Sonnenhoehe));

            double Ep = (((Ediffhor + Edirhor * pow(sin(toRadians(Sonnenhoehe)), -1)) / Ediffhor) + 1.041 * pow(Ohor, 3)) / (1 + 1.041 * pow(Ohor, 3));
            double H = AM * Edirhor / 1367;
            if (Ep >= 1 && Ep < 1.065) {
               F11 = -0.008;
               F12 = 0.588;
               F13 = -0.062;
               F21 = -0.06;
               F22 = 0.072;
               F23 = -0.022;
            } else if (Ep >= 1.065 && Ep < 1.23) {
               F11 = 0.13;
               F12 = 0.683;
               F13 = -0.151;
               F21 = -0.019;
               F22 = 0.066;
               F23 = -0.029;
            } else if (Ep >= 1.23 && Ep < 1.5) {
               F11 = 0.33;
               F12 = 0.487;
               F13 = -0.221;
               F21 = 0.055;
               F22 = -0.064;
               F23 = -0.026;
            } else if (Ep >= 1.5 && Ep < 1.95) {
               F11 = 0.568;
               F12 = 0.187;
               F13 = -0.295;
               F21 = 0.109;
               F22 = -0.152;
               F23 = -0.014;
            } else if (Ep >= 1.95 && Ep < 2.8) {
               F11 = 0.873;
               F12 = -0.392;
               F13 = -0.362;
               F21 = 0.226;
               F22 = -0.462;
               F23 = 0.001;
            } else if (Ep >= 2.8 && Ep < 4.5) {
               F11 = 1.132;
               F12 = -1.237;
               F13 = -0.412;
               F21 = 0.288;
               F22 = -0.823;
               F23 = 0.131;
            } else if (Ep >= 4.5 && Ep < 6.2) {
               F11 = 1.06;
               F12 = -1.6;
               F13 = -0.359;
               F21 = 0.264;
               F22 = -1.127;
               F23 = 0.131;
            } else if (Ep <= 6.2) {
               F11 = 0.678;
               F12 = -0.327;
               F13 = -0.25;
               F21 = 0.156;
               F22 = -1.377;
               F23 = 0.251;
            }

            F1 = F11 + F12 * H + Ohor * F13;
            F2 = F21 + F22 * H + Ohor * F23;

            if (cos(toRadians(Ogen)) >= 0) {
               a = cos(toRadians(Ogen));
            } else {
               a = 0;
            }
            if (sin(toRadians(Sonnenhoehe)) >= 0.087) {
               c = sin(toRadians(Sonnenhoehe));
            } else {
               c = 0.087;
            }

            Ediffgen[i] = Edirhor * (0.5 * (1 + cos(toRadians(N))) * (1 - F1) + a / c * F1 + F2 * sin(toRadians(N)));

            if (Ediffgen[i] < 0) {
               Ediffgen[i] = 0;
            }
         }
      }
      return Ediffgen;

   }

   public double[] Eges() throws IOException {

      int length = 8760;
      double Eggen[] = new double[length];
      double Ediffgeneigt[] = new double[length];
      Ediffgen();

      double[][] data = Daten();
      for (int i = 0; i < length; i++) {

         double Edirgen = data[6][i];
         double Erefl = data[7][i];

         Eggen[i] = Edirgen + Ediffgeneigt[i] + Erefl;
         System.out.println(Eggen[i]);
      }
      return Eggen;
   }

   public static void main(String[] args) throws IOException {
      launch(VersuchApp.class, args);
      // VersuchApp.Eges();

   }
}
 

mr_xxl

Mitglied
Danke für den Code, aber ich wollte die Rechnung überprüfen, indem ich die Methode in main ausrufe. Was muss man veränder damit es funktioniert?
 

diggaa1984

Top Contributor
Danke für den Code, aber ich wollte die Rechnung überprüfen, indem ich die Methode in main ausrufe. Was muss man veränder damit es funktioniert?

in der main kann man generell nur statische methoden nutzen oder aufrufen, da diese methode selbst statisch ist. Du kannst aber in der Main auch Objekte/Instanzen erzeugen und dann deren nicht-statische Methoden aufrufen.

Ich halte die Main-Klasse so minimal wie möglich, den Rest bringe ich in eigenen Klassen unter und behalte so meine Übersicht und komm nicht in Versuchung alles zwangsweise statisch machen zu müssen.
 

mr_xxl

Mitglied
Bei der Durchführung taucht die folgende Meldung:

Exception in thread "main" java.lang.NullPointerException
at versuch.VersuchApp.Ediffgen(VersuchApp.java:576)
at versuch.VersuchApp.main(VersuchApp.java:1056)

Java:
public class VersuchView extends FrameView {

    public  int l=2;

private void diffStrahlungActionPerformed(java.awt.event.ActionEvent evt) {                                              
ind(diffStrahlung.getSelectedindex());
         }  

  public int ind(int index) {
  l=index; // ist heir null weil, wenn die Box noch unbenutzt ist
  l=l+1;
  System.out.println("Index" + l);
  return l;
}
An welcher Stelle taucht null auf?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Compiler-Fehler static Array Wert hinzufügen Java Basics - Anfänger-Themen 8
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
M 2d-array und static Java Basics - Anfänger-Themen 3
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
EykS 3D Druckdatei basierend auf 3D Array? Java Basics - Anfänger-Themen 3
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben