import java.awt.*;
import java.applet.*;

public class KOSystem extends Applet
{
  Turtle t;
  double xMin = -6.0; // Grenzen des sichtbaren
  double xMax =  6.0; // Koordinatensystems festlegen.
  double yMin = -4.0;
  double yMax =  4.0;

  public void paint(Graphics g)
  { t = new Turtle(this, 100, 150, 0);
    zeichne();   // Aufruf des Hauptprogramms
  }

  void zeichne() // Hauptprogramm
  { t.setzeKOS(xMin, xMax, yMin, yMax);
    zeichneXAchse();
    zeichneYAchse();
    zeichneGraph();
  }  // zeichne  Hauptprogramm
  
  void zeichneXAchse()
  { t.strecke(xMin,0,xMax,0);
    for (double x=xMin; x<=xMax; x = x + 1)
         t.strecke (x, -0.05, x, 0.05);
  }

  void zeichneYAchse()
  { t.strecke(0,yMin,0,yMax);
    for (double y=yMin; y<=yMax; y = y + 1)
         t.strecke (-0.05, y, 0.05, y);
  }

  void zeichneGraph()
  { double x = xMin;  // Am linken Rand anfangen
    double y = f(x);  // Funktionswert berechnen
    double xNeu;
    double yNeu;
    double dx = (xMax-xMin)/800;   // Schrittweite in x-Richtung
    while (x<=xMax)
    { xNeu = x + dx;               // neue Koordinaten berechnen
      yNeu = f(xNeu);              // Funktionswert berechnen
      t.strecke(x, y, xNeu, yNeu); // Streckenstueck zeichnen
      x = xNeu;                    // neue Koordinaten sind beim naechsten
      y = yNeu;                    // Durchlauf die alten Koordinaten
    } // end while
  }

  double f(double x) // Hier wird der Funktionswert berechnet.
  { double funktionswert;
    funktionswert = x*x*x -2*x + 2; // Hier steht der Funktionsterm!!!!!
    return funktionswert;
  }

} // class KOSystem

