# Wertetabelle



## Darth Waldi (19. Feb 2008)

Vor kurzem hab ich beschlossen Java zu lernen, da meine Freundin diese Sprache in der Schule lernt, bis jetzt hab ich bei Problemen immer ihren Infolehrer gefragt, allerdings ist der jetzt für längere Zeit krank...

Ich wollte ein Programm schreiben, dass mir eine Wertetabelle für lineare Funktionen aufgibt (später will ich das dann noch auf andere Funktionen ausweiten). Allerdings habe ich keine Ahnung, wie ich eine Wertetabelle erstellen kann. Ich stelle hier mal mein Programm rein...



```
public class linearfunktion {

  public static void main(String[] args) {
    double m, n, ug, og;
    System.out.println("Darstellung einer linearen Funktion");
    System.out.println(); System.out.println(); System.out.println();
    System.out.println("Bitte m eingeben:");
    m=In.readDouble();
    System.out.println();
    System.out.println("Bitte n eingeben:");
    n=In.readDouble();
    System.out.println(); System.out.println();
    System.out.println("Bitte Untergrenze des x-Intervalls angeben:");
    ug=In.readDouble();
    System.out.println();
    System.out.println("Bitte Obergenze des x-Intervalls angeben:");
    og=In.readDouble();
    System.out.println();System.out.println("---------------------------------------------");System.out.println();
    System.out.println("Funktion:");
    System.out.println("");
    System.out.println("Anstieg:                 "+m);
    System.out.println("Schnittpunkt mit y-Achse:"+n);
    /**
     * Wertetabelle erstellen!!!
     */

  }
}
```


----------



## SlaterB (19. Feb 2008)

zunächst mal musst du Java-unabhängig definieren, wie die Wertetabelle aussehen soll,

dann berechne erst ein Wertepaar manuell,
dann zwei, dann drei, dann siehst du vielleicht, wie das ganze in einer Schleife abzuhandeln ist


----------



## LordLuzifer (19. Feb 2008)

Du musst noch die Intervallabstände abfragen, mit denen die Wertetabelle arbeiten soll, und machst dann einfach eine Schleife, die für jeden Schritt einen y-Wert berechnet und den ausgibt.


----------



## Darth Waldi (19. Feb 2008)

Ich glaub die Frage ist jetzt ganz blöd, aber wie erstellt man Schleifen?


----------



## LordLuzifer (19. Feb 2008)

naja so blöd ist die auch nicht, jeder muss lernen:
ich zeige dir jetzt eine ganz einfache Schleife:

for (int c = 0; c < einAndererWert; c++) {
Anweisungen für die Schleife
}

c ist in diesem Fall die Zählvariable. Solange c kleiner ist als ein anderer Wert (in diesem Fall halt "einAndererWert"), wiederholt die Schleife die Anweisungen in den folgenden Klammern. Nach jeder Durchführung wird c um 1 erhöht (aufgrund des c++)


----------



## Darth Waldi (19. Feb 2008)

Ähm, ist der Ansatz schon mal richtig?


```
public class linearfunktion {

  public static void main(String[] args) {
    double m, n, ug, og, abst;
    System.out.println("Darstellung einer linearen Funktion");
    System.out.println(); System.out.println(); System.out.println();
    System.out.println("Bitte m eingeben:");
    m=In.readDouble();
    System.out.println();
    System.out.println("Bitte n eingeben:");
    n=In.readDouble();
    System.out.println(); System.out.println();
    System.out.println("Bitte Untergrenze des x-Intervalls angeben:");
    ug=In.readDouble();
    System.out.println();
    System.out.println("Bitte Obergenze des x-Intervalls angeben:");
    og=In.readDouble();
    System.out.println();
    System.out.println("Bitte Intervallabstand angeben:");
    abst=In.readDouble();
    System.out.println();System.out.println("---------------------------------------------");System.out.println();
    System.out.println("Funktion:");
    System.out.println("");
    System.out.println("Anstieg:                 "+m);
    System.out.println("Schnittpunkt mit y-Achse:"+n);
    for(double abst = 0; abst <= og; abst++) {

    }
  }
}
```


----------



## SlaterB (19. Feb 2008)

wenn du mit einem Sprung von 1 pro Schleifendurchgang zufrieden bist,
dann ok


----------



## LordLuzifer (19. Feb 2008)

Hm hätte es doch noch etwas ausführlicher schreiben sollen ...
Also der erste Teil der Schleife legt die Zählvariable zu Beginn der Schleife fest. Durch das double davor erzeugst du nun eine neue Variable, was bei einfachen Zählschleifen ganz nützlich ist, bei dir aber eher stört.
Eine Schleife läuft immer nach folgendem Muster ab:
1) Bedingungen überprüfen (der mittlere Teil)
2) Anweisungen durchführen
3) Zählvariable erhöhen (letzter Teil)

Was du machen könntest:

for (double x = ug; x <= og; x ++ intervallLaenge){
//mit dem x-Wert den y-Wert berechnen und ausgeben
}

Heißt:
du erstellst einen neuen x-Wert, der bei der unteren Grenze anfängt. Dann berechnet die Schleife den y-Wert an der unteren Grenze, gibt ihn aus und erhöht den x-Wert um die Intervalllänge, die du vorher abfragen musst. (Also nach welcher Einheit das Programm wieder einen y-Wert berechnen soll)
Weil x jetzt immer noch nicht über die obere Intervallgrenze herausgeht, wird ein weiterer y-Wert berechnet usw. Das geht solange, bis dein x-Wert die obere Grenze überschreitet, dann ist die Schleife zu Ende.


----------

