TigerJython xx
für Gymnasien

Serie 13: Listen


1.

Erstelle eine Liste mit 8 Farben. Zeichne ein regelmässiges 8-eck, bei dem jede Seite eine andere Farbe hat und mit etwas dickeren Linien gezeichnet wird.

       
2.

Mit dem linken Mausklick werden beliebig viele Punkte gezeichnet und in einer Liste gespeichert. Klickt man mit der rechten Maustaste, so werden vom Punkt des Mausklicks aus Verbindungslinien zu allen gespeicherten Punkten gezeichnet.

 

       
3.

Im Beispiel 4 wird die Liste points per Mausklick mit neuen Punkten ergänzt und jeder neue Punkt mit allen Punkten der Liste verbunden. Ergänze das Programm so dass bei jedem Mausklick auch die Anzahl der Verbindungslinien gezänlt wird. Die Zählervariable n wird im Hauprogramm mit n = 0 initialisiert beim Zeichnen jeder Verbindungslinie um 1 erhöht.
Da n in der Funktion onMousePressed(x, y) verändert wird, muss sie als global definiert werden. Du muss also die Zeile global n einfügen.

def onMousePressed(x, y):
    global n
    p = (x, y)
    setPos(p)
    ......
  

Vergleiche das Ergenbis mit der kombinatirischen Formel n * (n - 1) / 2.

 


       
4.

Erstelle eine Liste colors mit 8 Farben. Definiere eine Funktion line(color, length), der eine farbige Linie zeichnet. Zeichnen Sie eine Spirale, so wie im Bild rechts. Nach jeder gezeichneten Strecke wird die nächste Farbe aus der Liste colors genommen. Nach dem man die letzte farbe genommen hat, beginnt man wieder mit der ersten Farbe. 

 

 

       
5.

colors = X11Color.RAINBOW_COLORS
liefert eine Liste mit 40 Regebogenfarben. Gehe diese Liste mit einer for-Schleife durch und zeichne für jede Farbe eine 10 Pixel breite senkrechte Linie.

 

 

 


6.

In Python gibt es eine eingebaute Funktion sort().
li.sort() sortiert die Liste li.
Verwende im Beispiel 7 (BubbleSort2.py) die Funktion sort() anstelle des BubleSort-Algorithmus. Du kannst allerdings nur die Start- und End-Situation darstellen. Auf die fortlaufende Animation muss du verzichten.


7.

colors = X11Color.RAINBOW_COLORS
liefert eine Liste mit 40 Regenbogenfarben. Ändere das unten stehenden Programm, so dass die Grafik in Regenbogenfarben gezeichnet wird.

from gturtle import *
makeTurtle()
hideTurtle()
s = 5
repeat 200:    
   forward(s)
   left(70)
   s = s + 1
  

Du gehst die Liste colors durch und zeichnest jeweils 5 Strecken mit der gleichen Farbe.

 

 

colors1 = list(reversed(colors))
liefert eine Liste, in der die Faben in der umgekehrten Reihenfolge angeordnet sind. Zeichne eine Grafik, die die Farben der Liste colors1 durchläuft.