gf1:programmieren5

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gf1:programmieren5 [2023/06/14 12:53] marrocgf1:programmieren5 [2025/04/24 10:53] (aktuell) marroc
Zeile 1: Zeile 1:
 ===== Selektion oder 'if'-Entscheidungen ===== ===== Selektion oder 'if'-Entscheidungen =====
 +{{ :gf1:if_diagramm1.png?direct&600|}}
 +**Was ist eine Selektion?**
 +
 +In Python wird die Selektion mit den Anweisungen ''if'', ''elif'' und ''else'' verwendet, um Entscheidungen im Programm zu treffen.
 +Die **Anweisung if prüft eine Bedingung**, und wenn diese erfüllt ist, wird ein bestimmter Codeblock (Body) ausgeführt. Wenn die Bedingung nicht erfüllt ist, wird dieser Code-Block nicht ausgeführt. Es kann man mit ''elif'' weitere Bedingungen getestet werden, falls diese zweite Bedingung erfüllt ist, wird der Body-Codeblock von ''elif'' ausgeführt. Wenn keine der Bedingungen zutrifft, wird der Codeblock unter ''else'' ausgeführt.\\
 +Oft wird somit bei der Selektion ein Teil des Programms nicht oder zumindest nicht immer ausgeführt. 
  
 === Beispiel === === Beispiel ===
 +
 +
 {{ :gf1:accelerator_classroom.png?direct&200|}} {{ :gf1:accelerator_classroom.png?direct&200|}}
 Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, um Neigungen und Bewegungen zu erfassen genutzt werden kann.   Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, um Neigungen und Bewegungen zu erfassen genutzt werden kann.  
Zeile 8: Zeile 16:
  
 <code python beschleunigung1.py> <code python beschleunigung1.py>
-#beschleunigung 1 
 from microbit import * from microbit import *
  
 #Akzelerometer (Beschleunigungssensor, um Gesten und Bewegungen zu erkennen) #Akzelerometer (Beschleunigungssensor, um Gesten und Bewegungen zu erkennen)
 + 
 while True: while True:
-    if accelerometer.was_gesture('shake'): + if accelerometer.was_gesture('shake'): 
-        display.show(Image.CONFUSED) +    display.show(Image.CONFUSED) 
-        sleep(3000) +    sleep(3000) 
-    else: + else: display.show(Image.HAPPY) 
-         display.show(Image.HAPPY)+</code>
  
- 
- 
-</code> 
-{{ :gf1:if_diagramm1.png?direct&400|}} 
  
 In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, ob dieser nach links geneigt wurde. In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, ob dieser nach links geneigt wurde.
Zeile 32: Zeile 35:
 Falls es nur ein ''if'' - ''else''-Selektion ist, dann wird es nur eine Verzweigung des Programms in 2 Programmäste geben, falls es ein ''if'' - ''elif'' -...- ''else'' -Selektion ist, dann in 3 oder mehr Teile. Falls es nur ein ''if'' - ''else''-Selektion ist, dann wird es nur eine Verzweigung des Programms in 2 Programmäste geben, falls es ein ''if'' - ''elif'' -...- ''else'' -Selektion ist, dann in 3 oder mehr Teile.
  
 +\\
  
-<WRAP center round todo 100%+<WRAP nicebox green
-**Aufgabe 11**+**Aufgabe 11**{{ :gf1:ampel.jpg?direct&200|}} 
 +  - Schliessen Sie die Ampel so wie auf dem Bild an den Micro:bit an. Achten Sie darauf, dass die Masse (Erdung GRN) mit 0V verbunden ist. 
   - Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz.   - Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz.
-  - Erweitern Sie das Programm so, dass beim Drücken von Knopf B ein kurzer Ton erzeugt wird und das Display "Bitte Knopf A drücken" anzeigt. 
-  - Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird. 
-  - Erweitern Sie das Programm weiter, dass wenn der Micro:bit mit dem Logo nach unten gehalten wird, die aktuelle Raumtemperatur gemessen wird und diese auf dem Display auch per scroll angezeigt wird, gefolgt von einer kleinen Pause von einer Sekunde. 
-</WRAP> 
  
-<code python beschleunigung2.py>+<code python> 
 +# Imports go at the top 
 +from microbit import * 
  
 while True: while True:
 +    
 +    pin0.write_digital(1)
 +    
     if button_a.was_pressed():     if button_a.was_pressed():
-        display.scroll('A'+        pin0.write_digital(0
-        sleep(400+        pin1.write_digital(1
-        display.clear() +         
-</code>+ </code> 
 + 
 +  - Erweitern Sie das Programm so, dass beim Drücken von Knopf A die Ampel für einige Zeit auf Gelb und dann auf Grün wechselt und anschliessend wieder zurück auf Rot. 
 +  - Erweitern Sie das Programm nun weiter, so dass bei Grün ein kurzer Ton erzeugt wird und das Display "Go" anzeigt. 
 +  - Erweitern Sie das Programm, dass beim Drücken von Knopf B das gelbe Licht 10 mal blinkt. 
 +  - Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird und gleichzeitig alle drei Lichter blinken. 
 + 
 +</WRAP> 
 + 
 <accordion> <accordion>
 <panel title ="mögliche Lösungen"> <panel title ="mögliche Lösungen">
 <code python> <code python>
 +
 +# Imports go at the top
 from microbit import * from microbit import *
-import music+import music  
  
 while True: while True:
-        if button_a.was_pressed(): +     
-            display.scroll('A'+    pin0.write_digital(1) 
-            sleep(400+     
-            display.clear() +    if button_a.was_pressed(): 
-        elif button_b.was_pressed(): +        pin0.write_digital(0
-            display.scroll('Press A'+        pin1.write_digital(1) 
-            music.play(music.BA_DING+        sleep(500
-        else:  +        pin0.write_digital(0
-            display.show(Image.ARROW_E)+        pin1.write_digital(0
 +        pin2.write_digital(1
 +        sleep(2000) 
 +        speaker.off(
 +        pin0.write_digital(0
 +        pin1.write_digital(0) 
 +        pin2.write_digital(0) 
 +        sleep(2000) 
 +    if button_b.was_pressed(): 
 +        pin0.write_digital(0) 
 +        counter=0 
 +        while(counter<10)
 +            pin1.write_digital(1) 
 +            sleep(500) 
 +            pin1.write_digital(0) 
 +            sleep(500) 
 +            counter=counter+1 
 + 
 +         
 +         
 + 
 </code> </code>
 </panel> </panel>
 </accordion> </accordion>
- +<hidden> 
-<WRAP center round todo 100%>+<WRAP nicebox green>
 **Aufgabe 12** **Aufgabe 12**
   - Zeichnen Sie das Aktivitätsdiagramm des unten beschriebenen Programms, diskutieren Sie zu zweit.   - Zeichnen Sie das Aktivitätsdiagramm des unten beschriebenen Programms, diskutieren Sie zu zweit.
   - Schreiben Sie das Programm, welches die beiden Pulse misst.   - Schreiben Sie das Programm, welches die beiden Pulse misst.
   - Ergänzen Sie das Programm, sodass die Werte von einem Micro:bit zum anderen gesendet werden!   - Ergänzen Sie das Programm, sodass die Werte von einem Micro:bit zum anderen gesendet werden!
-<WRAP center round box 100%>+<WRAP center round box 60%>
 //Programm://\\  //Programm://\\ 
 Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine ''while''-Schleife verwendet werden.\\  Es soll den jeweiligen Pulsschlag pro Minute von zwei Personen nacheinander anzeigen, dazu soll eine ''while''-Schleife verwendet werden.\\ 
Zeile 90: Zeile 130:
  
 </WRAP> </WRAP>
- +<accordion> 
-<WRAP center round todo 100%>+<panel title="mögliche Lösung"> 
 +Aufgabe 10 
 +<code python> 
 +while True: 
 +     
 +    pin0.write_digital(1) 
 +     
 +    if button_a.was_pressed(): 
 +        pin0.write_digital(0) 
 +        pin1.write_digital(1) 
 +        sleep(500) 
 +        pin1.write_digital(0) 
 +        pin2.write_digital(1) 
 +        sleep(2000) 
 +        pin2.write_digital(0) 
 +    if button_b.was_pressed(): 
 +        pin0.write_digital(0) 
 +        counter=0 
 +        while(counter<10): 
 +            pin1.write_digital(1) 
 +            sleep(500) 
 +            pin1.write_digital(0) 
 +            sleep(500) 
 +            counter=counter+1 
 +</code> 
 +</panel> 
 +</accordion> 
 +<WRAP nicebox green>
 **Aufgabe 13 - Lernfragen**\\ **Aufgabe 13 - Lernfragen**\\
 Bearbeiten Sie die folgenden Lernfragen.  Bearbeiten Sie die folgenden Lernfragen. 
Zeile 100: Zeile 167:
   - Formulieren Sie eine eigene Lernfrage   - Formulieren Sie eine eigene Lernfrage
 </WRAP> </WRAP>
-[[gf1:lernziele|Weiter zu den Lernzielen]]+</hidden> 
 + 
 +[[gf1:lernziele|Lernziele]]
  
  
  
  
  • gf1/programmieren5.1686740002.txt.gz
  • Zuletzt geändert: 2023/06/14 12:53
  • von marroc