efinf:blcks2017:jython:tipps

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
efinf:blcks2017:jython:tipps [2017/08/29 08:40] Simon Knausefinf:blcks2017:jython:tipps [2017/09/12 13:21] (current) Simon Knaus
Line 1: Line 1:
 +==== 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>