gf1:programmieren2

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 12:19] marrocgf1:programmieren2 [2025/05/06 15:18] (aktuell) marroc
Zeile 43: Zeile 43:
 ==== Programmierumgebung entdecken ==== ==== Programmierumgebung entdecken ====
  
-Für den Anfang beginnen wir mit dem [[https://python.microbit.org/v/3|Online-Editor]], denn hier gibt es eine ziemlich nützliche API<sup>*</sup> (Application Programming Interface = ein Satz von Befehlen, Funktionen, Protokollen und Objekten, die Programmierer:innen verwenden, um eine Software zu erstellen oder mit einem externen System zu interagieren.Standardbefehle und Operationen stehen schon zur Verfügung und müssen nicht geschrieben werden), die Verbindung zum Microbit funktioniert gut und der Editor ist einfach zu bedienen. Der Code ist auf dem OneNote vorhanden.+Für den Anfang beginnen wir mit dem [[https://python.microbit.org/v/3|Online-Editor]], denn hier gibt es eine ziemlich nützliche API<sup>*</sup>, die Verbindung zum Microbit funktioniert gut und der Editor ist einfach zu bedienen. Der Code ist auf dem OneNote vorhanden.
 \\ \\
 <wrap lo><sup>*</sup> API heisst Application Programming Interface und ist eine Sammlung von Befehlen, Funktionen, vieles mehr, die zum Programmieren verwendet werden können.    <wrap lo><sup>*</sup> API heisst Application Programming Interface und ist eine Sammlung von Befehlen, Funktionen, vieles mehr, die zum Programmieren verwendet werden können.   
Zeile 59: Zeile 59:
 <WRAP nicebox green> <WRAP nicebox green>
 **Aufgabe 2: Der Microbit - Display für Ausgaben**\\ **Aufgabe 2: Der Microbit - Display für Ausgaben**\\
-  - Packen Sie den BBC:Microbit aus und verbinden Sie diesen über das beigliegende USB-Kabel mit Ihrem Computer. +  - Verbinden Sie den BBC:Microbit über das beigliegende USB-Kabel mit Ihrem Computer. 
-  - Öffnen Sie in einem Browser diesen [[https://classroom.microbit.org/join|Online-Editor]] in einem separaten Tab!+  - Öffnen Sie in einem Browser ([[https://www.hartware.de/2021/03/10/die-besten-chromium-basierten-browser-fuer-sie/| chrombasiert]]) diesen [[https://python.microbit.org/v/3|Online-Editor]] in einem separaten Tab!
   -  Falls sich im Editor schon Programmiercode befindet, dann entfernen Sie diesen! Kopieren Sie den folgenden Code in den Editor:    -  Falls sich im Editor schon Programmiercode befindet, dann entfernen Sie diesen! Kopieren Sie den folgenden Code in den Editor: 
 <code python> <code python>
-# Microbit-Modul wird importiert +from microbit import * #Import aller Bibliotheken 
-from microbit import * +counter = 0  # Startwert der Variable 
- +display.scroll('press A'
-display.scroll("Hello"+while True: # wird durchgeführt, solange die Bedingung true ist, da ''True==True'' immer stimmt, ist dies eine Endlos-Schleife. 
-display.scroll("World")+    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>
   - Klicken Sie anschliessend auf **Send to micro:bit**! Nun sollte eine Meldung erscheinen, dass Sie den Mocrobit mit dem Computer verbinden sollen. Das haben Sie schon gemacht, also klicken Sie zwei mal auf **Next**, wählen Sie den Microbit im nächsten Fenster aus und bestätigen Sie die Auswahl mit **Connect**!   - Klicken Sie anschliessend auf **Send to micro:bit**! Nun sollte eine Meldung erscheinen, dass Sie den Mocrobit mit dem Computer verbinden sollen. Das haben Sie schon gemacht, also klicken Sie zwei mal auf **Next**, wählen Sie den Microbit im nächsten Fenster aus und bestätigen Sie die Auswahl mit **Connect**!
-  - Beobachten Sie nunwas auf dem Microbit geschieht! Das Diyplay besteht aus 25 (5x5) roten Leds auf der Vorderseite des Microbit. Dort sollte nun Ein Text "Hello" gezeigt werden, indem dieser von rechts nach links durch das Display scrollt. Nach diesem ersten Befehl wird direkt der nächste Befehl (display.scroll("World")) ausgeführt, bevor das Programm dann endet. +  - Ändern Sie das Programmso dass von 60 rückwärtsgezählt wird, jedesmal wenn der Knopf A gedrückt wird
-  - Ändern Sie das Programm wie folgt ab und flashen Sie es danach: Anstatt "Hello" soll "Hallo" und an Stelle von "World" soll Ihr Name erscheinen+
   - Diskutieren Sie zu zweit die folgenden Fragen!   - Diskutieren Sie zu zweit die folgenden Fragen!
-    - Geht das Programm auf dem Microbit verloren, wenn man diesen vom Strom trennt+    - Was ändert sich, wenn ''while counter>0:'' steht, anstelle von ''while True:''? 
-    - Was bedeutet die Zeile "from microbit import *"? Testen Sie aus und suchen Sie im Web.+    - Warum genau muss ''if button_a.was_pressed():'' programmiert werden?  
 +    - 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> 
 +<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.
 </WRAP> </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>
 +</accordion>
 +</WRAP>
  
 <WRAP nicebox yellow> <WRAP nicebox yellow>
-<color #7092be>**OneNote - Ergänzung**</color>\\ +<color #7092be>**Display**</color>\\ 
-Ergänzen Sie ihr OneNote mit diesen Befehl in Ihrem persönlichen** <color #ff7f27>Cheatsheet</color>** unter "Modulimporte" hinzu und erklären Sie in ein paar Worten, wofür dieser Import nützlich ist! Sie haben in diesem Beispiel nun ebenfalls einen Befehl kennengelernt, um Texte auszugeben. Auch dies kann in ihrem Cheatsheet OneNote ergänzt werden.\\  +Neben dem Befehl ''display.scroll()'' gibt es ebenfalls den Befehl ''display.show()'', der nützlich ist, wenn man nur ein einzelnes Zeichen (zum Beispiel einen Buchstaben) anzeigen möchte.\\ 
-\\  +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.  
-**Display**:\\ +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>
-Neben dem Befehl display.scroll() gibt es ebenfalls den Befehl display.show(), der nützlich ist, wenn man nur ein einzelnes Zeichen (zum Beispiel einen Buchstaben) anzeigen möchte.\\ +:!: Ein [[https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/images.html |weiterführender Link]]zur ausführlichen Dokumentation.
-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>+
---> Link zur ausführlichen Dokumentation: https://microbit-micropython.readthedocs.io/en/v2-docs/tutorials/radio.html+
 </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 129: 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 148: 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 159: 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.1745403587.txt.gz
  • Zuletzt geändert: 2025/04/23 12:19
  • von marroc