Hallo Java Gemeinde
Ich habe meinen Code weitgehend mathematisch debugged, aber bei einer kleinen Sache, die das Javaianische betrifft, bleibe ich hängen. Es handelt sich um die Berechnung von Intervallwerten für eine Parabel. Dabei werden alle Ordinatenwerte korrekt berechnet, jedoch wird der erste Wert nicht berechnet, dafür aber am Ende an die Liste angehängt.
Beispiel: Intervall von -3 über 0 bis +3. Leider wird dann aber bei -2 berechnet und dann am Ende bei +4 aufgehört.
Anbei ist der komplette Code meiner Funktionen:
Über Eure Hilfestellung würde ich mich ergebendst freuen... :noe:
Herzlichen Dank,
Semo
Ich habe meinen Code weitgehend mathematisch debugged, aber bei einer kleinen Sache, die das Javaianische betrifft, bleibe ich hängen. Es handelt sich um die Berechnung von Intervallwerten für eine Parabel. Dabei werden alle Ordinatenwerte korrekt berechnet, jedoch wird der erste Wert nicht berechnet, dafür aber am Ende an die Liste angehängt.
Beispiel: Intervall von -3 über 0 bis +3. Leider wird dann aber bei -2 berechnet und dann am Ende bei +4 aufgehört.
Anbei ist der komplette Code meiner Funktionen:
Java:
import java.util.ArrayList;
public class Functions {
/*
* Teilklasse fuer My totally very own Function-Plotta
*
* Die Methode parableValues liefert innerhalb eines zu definierenden
* Intervalls Koordinatenwerte fuer eine Parabel. Die Genauuigkeit wird
* durch die Anzahl der anzugebenden Schritte festgelegt. Die Ergebnisse
* werden in einer ArrayList vom Typ Float gespeichert.
*
* @param low float, Untere Grenze eines Intervalls
*
* @param upp float, Obere Grenze eines Intervalls
*
* @param step int, Anzahl der Berechnungsschritte innerhalb des definierten
* Intervalls
*
* @param a float, Stauchung oder Streckung einer Parabel
*
* @param b float, Verschiebung auf der Abzisse
*
* @param c float, Verschiebung auf der Ordinate
*
* @returns ArrayList
*/
private static ArrayList<Float> parableValues(float low, float upp,
int step, float a, float b, float c) {
ArrayList<Float> arr = new ArrayList<Float>(10);
float range = Math.abs(upp) + Math.abs(low);
float smallStep = range / step;
for (int i = 0; i <= step; i++) {
float xCoord = (low += smallStep);
System.out.println(xCoord);
float value = (float) (a * Math.pow(xCoord, 2) + b * xCoord + c);
arr.add(i, value);
}
return arr;
}
public static void main(String[] args) {
System.out
.println("Testlauf: Funktionswerte generieren und auswerfen.");
System.out.println(parableValues((float) -3.0, 3.0f, 6, 1.0f, 0.0f,
0.0f));
}
}
Über Eure Hilfestellung würde ich mich ergebendst freuen... :noe:
Herzlichen Dank,
Semo