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:programmieren2 [2025/04/23 19:37] marrocgf1:programmieren2 [2025/05/06 15:18] (aktuell) marroc
Zeile 66: Zeile 66:
 counter = 0  # Startwert der Variable counter = 0  # Startwert der Variable
 display.scroll('press A') display.scroll('press A')
-while True: # while - Schleife wird durchgeführt, solange die Bedingung true ist, da ''True=True'' immer stimmt, ist dies eine Endlos-Schleife.+while True: # wird durchgeführt, solange die Bedingung true ist, da ''True==True'' immer stimmt, ist dies eine Endlos-Schleife.
     if button_a.was_pressed():  # Überprüfen, ob Knopf A gedrückt wurde, wenn dies der Fall war, dann...     if button_a.was_pressed():  # Überprüfen, ob Knopf A gedrückt wurde, wenn dies der Fall war, dann...
         counter = counter + 1  # Erhöhe die Variable namens counter um 1         counter = counter + 1  # Erhöhe die Variable namens counter um 1
Zeile 76: Zeile 76:
     - Was ändert sich, wenn ''while counter>0:'' steht, anstelle von ''while True:''?     - Was ändert sich, wenn ''while counter>0:'' steht, anstelle von ''while True:''?
     - Warum genau muss ''if button_a.was_pressed():'' programmiert werden?      - Warum genau muss ''if button_a.was_pressed():'' programmiert werden? 
-    - Was bedeutet die Zeile "from microbit import *"? Lesen Sie nach!+    - Was bedeutet die Zeile "from microbit import *"? Diskutieren und testen Sie, indem Sie diese Zeile weglassen. Was passiert? 
 +  - Eine Verbildlichung des Programms ist in folgendem Diagramm zu sehen. Passen Sie dies nun an, nachdem Sie die Aufgabe 2 gelöst haben.\\ {{:gf1:aktigiagramm_a1.png?300|}}
 <accordion> <accordion>
 <panel title="Was import bedeutet"> <panel title="Was import bedeutet">
 +Sicher haben Sie sich auch schon gefragt, warum die beiden Zeile '' microbit import *'' und ''math import *'' nötig sind oder was genau ''import *'' bedeutet. Grundsätzlich kann dies so beschrieben werden:
 +<WRAP nicebox grey>
 Ein import-Befehl in Python holt nützliche Werkzeuge aus einem anderen Programm (einem Modul, das beim Editor gespeichert wird) in dein aktuelles Programm. Das bedeutet, du kannst diese Werkzeuge direkt verwenden, ohne sie selbst erstellen zu müssen. Es ist wie ein Baukasten, bei dem du fertige Teile verwendest, um schneller und einfacher etwas Neues zu bauen. Ein import-Befehl in Python holt nützliche Werkzeuge aus einem anderen Programm (einem Modul, das beim Editor gespeichert wird) in dein aktuelles Programm. Das bedeutet, du kannst diese Werkzeuge direkt verwenden, ohne sie selbst erstellen zu müssen. Es ist wie ein Baukasten, bei dem du fertige Teile verwendest, um schneller und einfacher etwas Neues zu bauen.
 +</WRAP>
 +Bezogen auf Python und auch auf den Micro:bit bedeutet dies: \\ 
 +In Python gibt es vordefinierte Bibliotheken (eine Sammlung von Dateien, sogenannten Modulen), die von jedem Programmierer genutzt werden kann, es muss somit keine Erweiterung installiert werden, die benötigten "Befehls- und Begriffspakete" können durch die Zeile ''from micro:bit import ...'' dazu geladen werden. Dadurch können die Funktionen bwz. Methoden (wie etwa display.scroll("Hey") oder display.clear()), vordefinierte Werte (wie math.pi) und andere Definitionen eines Moduls (beispielsweise sind math oder auch display ein Modul) zum Programmieren genutzt werden. Diese sind in diesen Befehls- und Begriffspaketen definiert.  \\ 
 +Folgenden (oder ähnliche) Importbefehle könnten für Sie nützlich sein:
 +^ Befehl ^ Bedeutung ^
 +| ''import *'' | Importiert alle Python-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen (Bausteinen). Das * bedeutet, alle Module. |
 +| ''from microbit import *'' |Importiert alle Microbit-Module, nicht spezifisch auf das Problem zugeschnittenes Laden von Modulen |
 +| ''from math import *'' |Importiert alle math-Module -> die [[https://www.w3schools.com/python/module_math.asp | Liste]] der Befehle und Funktionen |
 +|''from microbit import display''|Hier wird nur spezifisch das display-Modul und nicht die gesamte Micro:bit-Bibliothek (micro:bit-library) geladen. |
 +
 </panel> </panel>
 </accordion> </accordion>
Zeile 89: Zeile 102:
 Es ist weiter möglich, nur einzelne Pixel zu manipulieren mit Hilfe des Befehls ''display.set_pixel(x,y,b)'', wobei x die Spalte, y die Zeile und b die Hellighkeit (brightness) angibt. Die Helligkeit kann zwischen 0 und 9 liegen.  Es ist weiter möglich, nur einzelne Pixel zu manipulieren mit Hilfe des Befehls ''display.set_pixel(x,y,b)'', wobei x die Spalte, y die Zeile und b die Hellighkeit (brightness) angibt. Die Helligkeit kann zwischen 0 und 9 liegen. 
 Der Befehl ''display.set_pixel(0,0,9)'' würde das Pixel oben links auf die maximale Helligkeit setzen! <color #7092be> Viel Spass beim Ausprobieren</color>! Der Befehl ''display.set_pixel(0,0,9)'' würde das Pixel oben links auf die maximale Helligkeit setzen! <color #7092be> Viel Spass beim Ausprobieren</color>!
-:i: Ein weiterführender Link zur ausführlichen Dokumentation: https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/images.html+:!: Ein [[https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/images.html |weiterführender Link]]zur ausführlichen Dokumentation.
 </WRAP> </WRAP>
  
  
 ===== Programmierkonzepte Variable ===== ===== Programmierkonzepte Variable =====
-Ziel dieses Teils ist es, erste Erfahrungen im Programmieren in Python gemeinsam mit dem wichtigen Grundwissen zu den elementaren Programmierkonzepten zu machen. Es geht somit darum, nicht nur "auszuprobieren", sondern die genannten Konzepte zu erkennen und selbst auch in einfacheren Beispielen zu verwenden.+Ziel dieses Teils ist es, erste Programmiererfahrungen in Python zu sammeln und grundlegende Programmierkonzepte zu verstehen. Es geht darum, diese Konzepte nicht nur auszuprobieren, sondern auch in einfachen Beispielen anzuwenden. 
 +\\{{ :gf1:variablekofofer3.png?direct&300|}}  
 +Variablen sind in der Programmierung sehr nützlich. Man kann sie sich wie Behälter vorstellen, in denen Daten gespeichert werden. Stell dir eine Kiste vor, in der du etwas aufbewahrst – der Inhalt der Kiste ist der Wert der Variable.
  
 +Beispiel:
 +<code python>
 +kiste = 100
 +</code>
 +Hier wird der Wert 100 in die Variable ''kiste'' gespeichert. Das ''='' bedeutet dabei nicht "ist gleich", sondern "speichere den Wert in der Variable".
  
-{{ :gf1:variablekofofer3.png?direct&300|}} +Beispiel:
-Variablen haben in der Programmierung grosse Nützlichkeit, doch was genau ist eine Variable und wie kann diese genau verwendet werden?\\  +
-Eine Variable ist wie ein Behälter, in dem Daten gespeichert werden können. Man kann sich eine Kiste vorstellen, in der etwas aufbewahrt werden kann und der Wert der Variable wäre somit der aufbewahrte Inhalt der Kiste.  +
 <code python> <code python>
 kiste = 100 kiste = 100
 +kiste = 50
 +kiste = 50 + kiste
 </code> </code>
 +In diesem kurzen Programm wird der Variable ''kiste'' nacheinander verschiedene Werte zugewiesen:
  
-Der Wert wird einer Variablen durch das Gleichsetzen zugewiesenEine Zuweisung eines Werts an die Variable ist, wie wenn man einen Gegenstand in die Kiste legt. \\  +  * Zuerst wird kiste auf 100 gesetzt
-:!: <color #ec5353>Dies ist sehr unterschiedlich zur Mathematik. Das ''='' ist nicht ein //"ist gleich" //sondern bedeutet //"Wert einer Variablen zuweisen"//. </color> \\  +  * Dann wird kiste auf 50 gesetzt, der Wert 100 wird überschrieben. 
-Im Beispiel ist eine Variable mit dem Namen //kiste// erstellt worden und in dieser Variablen wird der Wert //100// gespeichertJedes Mal, wenn nun die Variable //kiste// im Programm aufgerufen wirdersetzt das Programm //kiste// durch //100//. +  * Schließlich wird kiste um 50 erhöhtalso auf 100 gesetzt (50 + 50).
-\\  +
-== Beispiel ==+
  
 +Auch beim Arbeiten mit dem Micro:bit arbeitet, werden uns Variablen einen guten Dienst leisten. 
 +Im Beispiel unten ist ''counter'' eine Variable, deren Wert sich während des Programmdurchlaufs ändert.
 <code python> <code python>
-kiste 100  +from microbit import * #Import aller Bibliotheken 
-kiste 50  +counter 0  # Startwert der Variable 
-kiste 50 kiste +display.scroll('press A') 
 +while True: # wird durchgeführt, solange die Bedingung true ist, da ''True==True'' immer stimmt, ist dies eine Endlos-Schleife. 
 +    if button_a.was_pressed():  # Überprüfen, ob Knopf A gedrückt wurde, wenn dies der Fall war, dann... 
 +        counter counter 1  # Erhöhe die Variable namens counter um 1 
 +        display.scroll(counter)  # Zeige den Wert auf dem Display
 </code> </code>
 + 
 +Wenn wir ein Beispiel mit der Kiste von weiter oben wieder aufnehmen, dann könnten wir dies auf den Micro:bit wie folgt ausführen lassen:
  
-Im obigen Beispiel eines kurzen Programms, welches von oben links zeilenweise nach unten rechts durchlaufen wird, werden der Variablen kiste verschiedene Werte zugewiesen: 
-  * Zuerst wird der Variablen kiste den Wert 100 zugewiesen, 
-  * Dann wird die Variable kiste auf 50 gesetzt, der Wert 100 wird überschrieben und geht somit verloren. 
-  * Die Variable kiste wird danach um 50 erhöht. Das ist so zu lesen, dass der neue Wert kiste gleich 50 plus dem alten Wert von kiste ist. 
- 
-Wer beim Arbeiten mit dem Micro:bit Variablen verwendet möchte, kann dies auf ganz verschiedene Arten tun.   
-Beispielsweise kann das folgende Programm ähnlich wie das Kisten-Beispiel für den Micro:bit programmiert werden: 
 <code python kiste.py> <code python kiste.py>
 from microbit import * from microbit import *
Zeile 132: Zeile 151:
 </code> </code>
  
-In diesem Beispiel ist die Variable 'kiste' zuerst auf den Wert 2 gesetzt, dieser Wert wird aber direkt in der nächsten Zeile verdreifacht und anschliessend auch angezeigt. \\ +In diesem Beispiel ist die Variable ''kiste'' zuerst auf den Wert 2 gesetzt, dieser Wert wird aber direkt in der nächsten Zeile verdreifacht und anschliessend auch angezeigt. \\ 
  
  
 <WRAP nicebox green> <WRAP nicebox green>
 **Aufgabe 3 - Variablen und mehr**\\  **Aufgabe 3 - Variablen und mehr**\\ 
-  - Studieren Sie das kurze Programm unten. Diskutieren Sie zu zweit, was hier programmiert wurde. Halten Sie dies kurz schriftlich fest. +Gegeben ist das folgende Programm: 
-  - Schliessen Sie den Micro:bit an, kopieren Sie das Programm in Ihren [[https://classroom.microbit.org/join|Online-Editor]] die zweite Aufgabe mit einem anderen Login und einer anderen Aufgabe. Senden Sie dies dann an den Micro:bit und überprüfen Sie so die angestellten Vermutungen und Überlegungen von oben. +
-  - Identifizieren Sie alle Variablen und Variablenwerte dieses Programms und markieren Sie diese, indem Sie den Code in ein ihr OneNote kopieren und kommentieren. :!: Kommentare können mit einem # direkt im Programm notiert werden.  +
-  - Was geschieht denn, wenn Sie die zweite Zeile (from math import *) aus dem Programm entfernen? Probieren Sie es aus und beschreiben Sie.  +
-</WRAP> +
 <code python Rechner1.py> <code python Rechner1.py>
 #Rechner 1  #Rechner 1 
Zeile 151: Zeile 165:
 a=3 a=3
 b=5 b=5
-c=pi+c=0
 #Display.scroll dient zum Anzeigen von Werten oder Text #Display.scroll dient zum Anzeigen von Werten oder Text
 display.scroll('a=') display.scroll('a=')
Zeile 162: Zeile 176:
 display.scroll(c) display.scroll(c)
 </code> </code>
-[[gf1:programmieren3|Weiter zu Importieren von Python-Modulen]]+**Auftrag** 
 +  - Studieren Sie zu zweit das Programm //Rechner 1// und kommentieren Sie jede einzelne Zeile dazu. 
 +  - Verändern Sie das Programm, so dass alle vier Grundoperationen (+,-, $\cdot$, :) und das Potenzieren und Wurzelziehen möglich ist. Kontrollieren Sie das Funktionieren des Programms //Rechner 1//, indem Sie die Werte der Variablen verändern. 
 +  - Lösen Sie das folgende [[https://learningapps.org/watch?v=pma7bw9ft25| Learningapp]]. 
 +<accordion> 
 +<panel title="Tipps"> 
 +=== Addition: + === 
 +<code python> 
 +result = 5 + 3  # result ist 8 
 +</code> 
 +=== Subtraktion: - === 
 +<code python> 
 +result = 5 - 3  # result ist 2 
 +</code> 
 +=== Multiplikation: * === 
 +<code python> 
 +result = 5 * 3  # result ist 15 
 +</code> 
 +=== Division: / === 
 +<code python> 
 +result = 6 / 3  # result ist 2.0 (erzeugt ein Float) 
 +</code> 
 +=== Potenzieren: ** === 
 +<code python> 
 +result = 2 ** 3  # result ist 8 (2 hoch 3) 
 +</code> 
 +=== Wurzeln:=== 
 +<color #7092be>Wurzelziehen: Verwende die math-Bibliothek für die Quadratwurzel</color> 
 +<code python> 
 +import math 
 +result = math.sqrt(9)  # result ist 3.0 
 +Für andere Wurzeln kannst du Potenzen verwenden: 
 +result = 27 ** (1/3)  # result ist 3.0 (Kubikwurzel von 27) 
 +</code> 
 + 
 +</panel> 
 +</accordion> 
 + 
 + </WRAP> 
 + 
 + 
 +[[gf1:programmieren4|Weiter]]
  • gf1/programmieren2.1745429859.txt.gz
  • Zuletzt geändert: 2025/04/23 19:37
  • von marroc