Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_iv_gra [2025-06-26 19:12] – [Programmieren Teil 4 – Funktionen (Unterprogramme)] gragf_informatik:programmieren_iv_gra [2025-09-22 12:43] (aktuell) – [5. Lösungen] gra
Zeile 1: Zeile 1:
-====== Programmieren Teil 4 – Funktionen (Unterprogramme) ====== +====== Programmieren Teil 4 – Funktionen ====== 
-  * Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_iii_gra|]]. +  * Dieses Seite ist die Fortsetzung von [[gf_informatik:programmieren_iii_gra|]]. 
 +  * Weiter zu [[gf_informatik:programmieren_v_gra|]].
  
 <nodisp 2> <nodisp 2>
 ++++Verbessern (hidden):| ++++Verbessern (hidden):|
   * Fancy Aufgaben nach O verschieben, dafür mehr einfache, kleine Aufgaben zum Üben.    * Fancy Aufgaben nach O verschieben, dafür mehr einfache, kleine Aufgaben zum Üben. 
-  * Insbesondere mehr Aufgaben mit Listen und +    * Insbesondere mehr Aufgaben mit Listen und 
-  * Verknüpfungen von Bedingungen mit logischen Operatoren+    * Verknüpfungen von Bedingungen mit logischen Operatoren 
 +  * Evtl. Grafik o.ä. zu einer Zeile mit Aufruf einer Funktion mit Rückgabewert – z.B. print(volumen(h,l,b)) Argumente (in Klammern nach Name) ist Eingaben. Gesamter Name inkl Klammern = Ausgabe(n). 
 +  * Evtl. Lernziele bezüglich Verknüpfungen von Bedingungen präzisieren. 
 ++++ ++++
 +</nodisp>
  
 ++++Lernziele:| ++++Lernziele:|
Zeile 631: Zeile 635:
  
  
-=== O4 – Siebensegment-Anzeige === 
-<WRAP group> 
-<WRAP column twothirds> 
-Die [[https://en.wikipedia.org/wiki/Seven-segment_display|Siebensegmentanzeige]] ist grossartig: Man benötigt nur 7 längliche Lämpchen und kann damit nicht nur die Ziffern 0 bis 9, sondern auch viele Buchstaben anzeigen! In dieser Aufgabe soll deine Turtle als Siebensegmentanzeige funktionieren. 
- 
-{{:gf_informatik:programmieren_iv_gra:pasted:20250522-080927.png?600}} 
-</WRAP> 
-<WRAP column third> 
-{{:gf_informatik:programmieren_iv_gra:pasted:20250521-190507.png?200}} 
-</WRAP> 
-</WRAP> 
- 
-<WRAP group> 
-<WRAP column twothirds> 
-== Schritt 1 – Einzelnes Segment zeichnen == 
-Erstelle eine Funktion ''segment(length, color)''. Die Funktion zeichnet ein einzelnes Segment, das auf beiden Seiten spitz ausläuft – siehe Bild. 
-  * Das Argument ''length'' gibt die Länge des Segments von Spitz zu Spitz an. Damit genau diese Länge zustande kommt, musst du etwas rechnen. Eventuell brauchst du die Funktion ''sqrt'' und hierzu das Math-Modul (''import math''). 
-  * Das Argument ''color'' gibt die Farbe des Segments an. 
-  * Starte bei der einen Spitze und gehe davon aus, dass die Turtle in Richtung der anderen Spitze schaut, siehe Bild. 
-</WRAP> 
-<WRAP column third> 
-{{:gf_informatik:programmieren_iv_gra:pasted:20250521-191805.png?200}} 
-</WRAP> 
-</WRAP> 
- 
-<WRAP group> 
-<WRAP column twothirds> 
-== Schritt 2 – Codes definieren == 
-Im Bild rechts sind die 7 Segmente mit den Buchstaben A bis G bezeichnet. Den Dezimalpunkt lassen wir ausser Acht. Für die Ziffern **0** und **4** müssten die Segmente gemäss folgender Tabelle leuchten: 
-^  Ziffer  ^  A  ^  B  ^  C  ^  D  ^  E  ^  F  ^  G  ^  Binär-String   ^ 
-|  0        1  |  1  |  1  |  1  |  1  |  1  |  0  |  ''"1111110"''  | 
-|  4        0  |  1  |  1  |  0  |  0  |  1  |  1  |  ''"0110011"''  | 
- 
-  * Erstelle eine Liste ''binary\_strings[]'', die für jede Ziffer 0...9 den richtigen Binär-String enthält. 
- 
-== Schritt 3 – Zahl mit 7 Segmenten anzeigen == 
-Erstelle eine Funktion ''seven\_seg(number)''. Die Funktion zeichnet die 7 Segmente A bis G an den richtigen Positionen und in richtiger Farbe: 
-  * Verwende die bereits erstellte Funktion ''segment''. 
-  * Speichere für jedes Segment die x-Positionen, die y-Positionen und die Richtungen (heading) in Listen. 
-  * Das Argument number gibt an, welche Ziffer dargestellt werden soll. Verwende deine Liste ''binary\_strings[]'', um für jedes Segment zu entscheiden, ob es rot oder grau "gainsboro" sein soll. 
-  * Teste deine Funktion mit einem Programm, dass die Zahlen von 0 bis 9 im Sekundentakt (''delay(1000)'') hochzählt. 
-</WRAP> 
-<WRAP column third> 
-{{:gf_informatik:programmieren_iv_gra:pasted:20250521-191333.png?200}} 
-</WRAP> 
-</WRAP> 
  
-== Zusatzaufgaben == 
-  * Programmiere eine zweistellige Anzeige, die von 0 bis 99 zählen kann. 
-  * Programmiere eine digitale Uhr, die die aktuelle Zeit in Stunden, Minuten und Sekunden (von Doppelpunkten getrennt) anzeigt. 
  
 ===== - Lösungen ===== ===== - Lösungen =====
Zeile 1339: Zeile 1294:
 </code> </code>
  
-=== O4 === 
-<code python> 
-import math 
-from gturtle import *  
- 
-carl = Turtle() 
-carl.hideTurtle() 
- 
-def segment(length, color): 
-    l1 = length * 0.8 
-    l2 = (length - l1)/2 
-    side = l2 * math.sqrt(2) 
-    carl.setFillColor(color) 
-    carl.startPath() 
-    carl.right(45) 
-    repeat 2: 
-        carl.forward(side) 
-        carl.left(45) 
-        carl.forward(l1) 
-        carl.left(45) 
-        carl.forward(side) 
-        carl.left(90) 
-    carl.fillPath() 
-    carl.left(45) 
- 
-def seven_seg(number): 
-    segment_codes = ['1111110', # 0 
-                     '0110000',  
-                     '1101101',  
-                     '1111001',  
-                     '0110011',  
-                     '1011011',  
-                     '1011111',  
-                     '1110000',  
-                     '1111111',  
-                     '1111011'] # 9 
- 
-    xpositions = [0, 100, 100, 100, 0, 0, 0] 
-    ypositions = [0, 0, -100, -200, -200, -100, -100] 
-    headings = [90, 180, 180, 270, 0, 0, 90] 
-     
-    i = 0 
-    for s in segment_codes[number]: 
-        carl.setPos(xpositions[i], ypositions[i]) 
-        carl.setHeading(headings[i]) 
-        if s == '0': 
-            segment(100, "gainsboro") 
-        else: 
-            segment(100, "red") 
-        i = i + 1 
- 
-i = 0 
-while i <= 9: 
-    seven_seg(i) 
-    i = i + 1 
-    delay(1000) 
-</code> 
 ++++ ++++
 </nodisp> </nodisp>
  • gf_informatik/programmieren_iv_gra.1750965153.txt.gz
  • Zuletzt geändert: 2025-06-26 19:12
  • von gra