Logischer Fehler mit Addition von Arrays

ChrisB.

Mitglied
Guten Tag,
und zwar will ich kurz anschneiden was ich hier machen muss, bzw. was gefordert ist:

Und zwar, soll ein Tennisball von einer Höhe von 20 m fallengelassen werden, erreicht nach dem Auftrumpfen jeweils die 85% Höhe vor dem Auftrumpfen.
Dazu soll ich die Gesamtstrecke nach jedem Auftrumpfen anzeigen lassen.
Ich habe das bis jetzt so gelöst:

Java:
public class Tennisball
{
  public static void main(String[] args)
  {
    
    
    double hoehe[] = new double[32];
    double gStrecke[] = new double[32];
    hoehe[0] = 20;
    
    
    String xAuftrumpfer, xHoehe, xGesamtstrecke = "";
    
    
    System.out.println(" |-------------------------------------------------------------------|");
    System.out.println(" |     Auftrumpfer     |         Höhe        |      Gesamtstrecke    |");
    System.out.println(" |---------------------|---------------------|-----------------------|");
    
    for (int i = 0;i<=30 ;i++ ) 
    {
      xAuftrumpfer = String.valueOf(i);
      
      hoehe[i+1] = hoehe[i] * 0.85;  
      
      xHoehe = String.valueOf(round(hoehe[i], 5));
      
      if (i != 0) 
      {
        gStrecke[i] = hoehe[i-1] + hoehe[i]; 
      } 
      else
      {
        gStrecke[i] = hoehe[0];
      }     
      
      xGesamtstrecke = String.valueOf(round(gStrecke[i], 5)); 
      
      System.out.println(" | " + xAuftrumpfer + "                      " + xHoehe + "       " + "             " + xGesamtstrecke);
      
    }    
    
    
  } // end of for
  
  
  
  
  
  static double round(double wert, int stellen) {
    return  Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen);
  }
}

Jetzt zu meinem Problem:

Das mit der Höhe klappt soweit alles.
Aber er berechnet nicht richtig die Gesamtstrecke.
Es wird weniger, obwohl er eig. doch die hoehe des letzten Aufpralls mit der derzeitigen Hoehe nur addieren muss oder nicht?

So welche Werte kommen hier:



Was mache ich falsch?
 
Ich bin mir nun nicht ganz sicher... ist dein Problem nun wirklich gelöst oder war es ein Fehler deinerseits.

Falls es wirklich gelöst ist, schreib doch deine Lösung kurz hier rein 🙂.
 
Schreib in Zeile 29 mal
Code:
gStrecke[i] = gStrecke[i-1] + hoehe[i];

Du rechnest z.Zt. immer nur die beiden letzten Sprunghöhen zusammen und gibst diese dann aus, du willst aber, wenn ich die richtig verstanden habe, die Gesamthöhe aller bisherigen "Hopser" ausgeben.
 
In jedem Durchlauf wird nur die Strecke aus gStrecke in xGesamtstrecke geschrieben. Mit += wird jede weitere Strecke hinzugefügt.

[JAVA=36]xGesamtstrecke += String.valueOf(round(gStrecke, 5));[/code]
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben