Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ==== 2.10 ==== * Abbruch bei ''X'' Mit ''getKeyCodeWait()'' kannst du den KeyCode einer Taste auslesen * ''abs'' liefert den Absolutwert einer Zahl. * ''getX()'' und ''getY()'' liefert die Position der Turtle. Um zu verstehen, wie sie sich bewegt empfiehlt sich ''print(getPos())'' einzubauen. * Abbruch der Schleife. Das Beispielprogramm definiert eine sogenannte //Listener//-Funktion. Diese kann die Schlaufe nicht direkt abbrechen. Du kannst aber in dieser Funktion den Wert einer globalen Variable verändern und auf Grund dieses Werts die Schlaufe abbrechen: <code python> stopit = False def changeglobalvariabe(): # definiert stopit als globale Variable global stopit stopit = True print(stopit) changeglobalvariabe() print(stopit) while True: if(stopit): break </code> ==== 3.10 ==== Bei A1 geht es darum, dass mit Zufallszahlen experimentiert wird. Die ganze Darstellung ist für uns untergeordnet. Versuch den Code unten zu verstehen und ergänze ihn, mit zufällig gezogenen Monaten. <code python birthday.py> from gpanel import * import random # Anzahl Wiederholungen NB_GAMES = 100 # Wartezeit zwischen den Wiederholungen DELAY_TIME = 1000 # Anzahl Kinder NB_CHILDREN = 5 def play(): #initilaisiert die Monate, das heist, in jedem Montag sind zuerst 0 Kinder for n in range(12): year[n] = 0 for n in range(NB_CHILDREN): ''' Hier müssen zufällige Monate gezogen werden und die gezogenen Kinder zu den Monaten in years addiert werden ''' move(5 + 10 * month, -5 + year[month] * 10) fillCircle(5) #Falls in einem Monat mehr als zwei Geburtstage True, sonst False zurück geben for month in year: if month > 1: return True return False # Gitterbrett Zeichnen def drawBoard(): #Board löschen clear() #Kübel zeichnen for n in range(12): move(5 + 10 * n, 60) rectangle(10, 120) makeGPanel(0, 120, 0, 120) #years initialisieren year = [0] * 12 n = 0 nbHit = 0 while n < NB_GAMES: n += 1 drawBoard() rc = play() if rc: nbHit += 1 title("Game #: " + str(n) + " #hits: " + str(nbHit)) delay(DELAY_TIME) </code> ==== A1 ==== <code python> bioNoten = [] note = 0 while note != None: note = inputFloat("Bitte Note eingeben", False) #so lange in der Schlaufe, bis Abbrechen gedrückt wird # noten den bioNoten hinzufügen. # durchschnitt der bioNoten ausgeben # hilfreiche funktionen: * sum(liste) ergibt summe, # * len(liste) ergibt länge #schönes ausgeben noten = [2,3,4] print('%s' % ', '.join(map(str, noten))) </code> efinf/blcks2017/jython/tipps.txt Last modified: 2017/09/12 15:21by Simon Knaus