Listen mit Tigerjython (Python 2.7) am Beispiel Funktionsplot

Ziel: Erweiterung unserers Funktionsplotters um eine Analyse der Funktionswerte

Gegeben ist folgendes Programmfragment:

# Graphen Zeichnen Version 4b
# Kapitel 5.6
from gturtle import *
# Funktionsdefinitionsbereich
def meineTolleFunktion(xWert):
    yWert = (0.3 * (xWert*xWert))+(1.2*xWert)- 2
    return yWert
# Ende des Funktionsdefinitionsbereichs
# Hauptprogrammbereich ("main")
xmin = inputInt("Wertebereich X von (negative Zahl!):")
xmax = inputInt("Wertebereich X bis:")
schrittweite = inputInt("Schrittweite: (ganze Zahl!)")
skalierung = inputFloat("Skalierungsfaktor: (z.B. 10 = zehnfache Vergrößerung oder 0.7 = 70%)")
# Berechnen *aller* Funktionswerte
werteliste = # Initialisierung der Liste
for x in range(xmin, xmax+1): # x-Wert durchläuft den Bereich
    y = meineTolleFunktion(x) # berechne den y-Wert
    # füge den aktuellen Funktionswert (gerundet auf 2 Nachkommastellen) der Liste hinzu
    werteliste.append(round(y,2))

1. Aufgabe (Version 5)

Erstelle eine eigene lauffähige Datei auf der Grundlage des obigen Programmfragments. Blende den Debugger ein und analysiere den Programm-Ablauf und die  Werteliste in der Debugger-Darstellung von TigerJython. Wie ist eine Liste aufgebaut? Wie sehen die Elemente dieser Liste aus?
Vergleiche dazu auch die Informationen zu Listen

2. Aufgabe (Version 5b)

Gib die Werteliste aus (im Ausgabebereich mit print). Frage den Benutzer, ob die Werteliste ausgegeben werden soll. Benutze dazu die eingebaute Funktion askYesNo (vgl. dazu Dialoge mit TigerJython in den Artikeln zur Programmierung auf diesen Webseiten).

3. Aufgabe (Version 5c)

Eine Liste kann elementenweise durchlaufen werden, z.B. mit 

for wert in werteliste: # die Werteliste durchlaufen

Suche den minimalen und den maximalen Y-Wert aus der Werteliste heraus. Speichere diese in den Variablen ymin bzw. ymax. Bei dem gegebenen Programmfragment kannst du das Ergebnis im Video im Anhang sehen.

4. Aufgabe (Version 5d)

Zeichne jetzt mit der Turtle in Abhängigkeit der Benutzereingaben für den Wertebereich von X und der ermittelten Minimum und Maximum-Werte für Y ein entsprechendes Koordinatensystem. Somit passt die Funktion optimal in das Koordinatensystem. Frage Benutzer vorher, ob eine Funktion gezeichnet werden soll (vgl. Video im Anhang).

5. Aufgabe (Version 5e)

Lass die turtle jetzt die Funktion einzeichnen.

6. Aufgabe (Version 5f)

Du solltest sehen, dass die ganze Darstellung recht klein aussieht. Wir wollen dehalb unseren Skalierungsfaktor aus dem programmfragment jetzt benutzen: Der Skalierungsfaktor vergrößert (oder verkleinert) das Koordinatensystem und die Funktionszeichnung um den eingegebenen Faktor. Implementiere dies. Probiere auch andere Funktionen deiner Wahl aus. Für Schnelle: Benutzer kann zwischen verschiedenen Funktionen wählen.

7. Aufgabe (Version 5k) - Kür

Erweitere dein Programm nach eigenen Vorstellungen. Was lässt sich verbessern oder verändern? Beispielsweise könntest du auch andere Funktionen deiner Wahl ausprobieren. Oder: Benutzer kann zwischen verschiedenen Funktionen wählen. Oder: ...

8. Aufgabe (Version 6) - Nullstellenerkennung (z.B. für Schnelle)

Im zweiten Video ist zu erkennen, dass beim Durchlaufen der y-Achse an dieser Stelle eine Nullstelle vermutet wird. Implementiere dies. Gib die möglichen Nullstellen zusätzlich aus. Welche Schwächen könnte das bisherige Vorgehen haben? Was liesse sich verbessern?

Material