lehrkraefte:blc:informatik:glf24:robotik:unterprogramme

Differences

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

Link to this comparison view

lehrkraefte:blc:informatik:glf24:robotik:unterprogramme [2024/11/25 14:03] – created Ivo Blöchligerlehrkraefte:blc:informatik:glf24:robotik:unterprogramme [2024/11/25 15:18] (current) Ivo Blöchliger
Line 1: Line 1:
 +{{backlinks>.}}
 +====== Unterprogramme in Python ======
 +<code python>
 +def sagwas():
 +    print("Hallo");
 +    print("Und tschüss")
 +    
 +sagwas()
 +sagwas()
 +</code>
 +
 +  * Erst wird ein Unterprogramm mit ''def'', einem Namen und runden Klammern (erst mal kein Input) definiert. 
 +  * Danach kann das Unterprogramm mit Namen und runden Klammern **aufgerufen** werden.
 +Das obige Program produziert:
 +<code text>
 +Hallo
 +Und tschüss
 +Hallo
 +Und tschüss
 +</code>
 +
 +<code python>
 +def sagwas(n):
 +   i=0
 +   while i<n:
 +      print("Bla")
 +      i+=1
 +      
 +sagwas(5)
 +</code>
 +In den Klammern können zusätzlich Parameter (Inputs zum Unterprogramm) definiert werden. Es können auch mehrere, durch Kommas getrennt, definiert werden.
 +
 +Beim Aufruf muss jeweils ein Parameter übergeben werden (hier z.B. die 5 in Klammern). Der Output ist dann
 +<code txt>
 +Bla
 +Bla
 +Bla
 +Bla
 +Bla
 +</code>
 +
 +===== Unterprogramme für den Roboter =====
 +Die Unterprogramm werden nach allen ''import''s, Definition von Robotik-Objekten und Definition wichtiger Variablen eingefügt.
 +
 +<code python>
 +def geradeaus(distanz, geschwindigkeit=360):
 +    links.run_angle(geschwindigkeit, distanz*grad_pro_cm, wait=False)   # nicht warten, sondern gleich den nächsten Befehl.
 +    rechts.run_angle(geschwindigkeit, distanz*grad_pro_cm, wait=True)   # Warten, bis zur gewünschten Distanz gedreht.
 +    
 +def stop():
 +    links.stop()
 +    rechts.stop()
 +
 +geradeaus(10)          # 10 cm fahren, mit default-Geschwindigkeit
 +geradeaus(10, 720)     # Nochmal 10cm, aber schneller
 +stop();                # Alle Motoren halt