Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:programmieren_v_gra [2025-09-09 07:45] – [Die Range-Funktion] gra | gf_informatik:programmieren_v_gra [2025-10-01 07:22] (aktuell) – [BP8 – Rückwärts ausgeben] gra | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| ++++ Vorausgesetzte Kompetenzen: | ++++ Vorausgesetzte Kompetenzen: | ||
| - | - Ich beherrsche die in Teil 1 und 2 gelernten Grundlagen in python | + | - Ich beherrsche die in Teil 1 und 2 gelernten Grundlagen in Python |
| - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt: | - Ich beherrsche den Umgang mit Listen, wie in Teil 3 gelernt: | ||
| * Listen korrekt erstellen – leer oder mit Zahlen oder mit Texten drin. | * Listen korrekt erstellen – leer oder mit Zahlen oder mit Texten drin. | ||
| Zeile 10: | Zeile 10: | ||
| * Mit '' | * Mit '' | ||
| * Listen analysieren (z.B. Mittelwert ermitteln) oder verändern (z.B. bestimmte Elemente ersetzen etc.). | * Listen analysieren (z.B. Mittelwert ermitteln) oder verändern (z.B. bestimmte Elemente ersetzen etc.). | ||
| - | - Ich kann in Pyhton | + | - Ich kann in Python |
| - Ich kann jeden //Begriff// des vorhergehenden Satzes erklären. | - Ich kann jeden //Begriff// des vorhergehenden Satzes erklären. | ||
| ++++ | ++++ | ||
| Zeile 226: | Zeile 226: | ||
| === PA4 – Zehn Vielfache === | === PA4 – Zehn Vielfache === | ||
| - | Die Benutzer:in kann eine Zahl von eingben (verwende die Funktion '' | + | Die Benutzer:in kann eine Zahl eingben (verwende die Funktion '' |
| === PA5 – So viele S === | === PA5 – So viele S === | ||
| Zeile 259: | Zeile 259: | ||
| wort = " | wort = " | ||
| </ | </ | ||
| + | |||
| + | == Zusatzaufgabe (Optional) == | ||
| + | Erweitere den Code, sodass die Positionen nicht untereinander ausgegeben werden, sondern nebeneinander (in einem String). | ||
| === PA9 – Doppelte === | === PA9 – Doppelte === | ||
| Zeile 343: | Zeile 346: | ||
| ++++ | ++++ | ||
| === PB6 – Anzahl x === | === PB6 – Anzahl x === | ||
| - | Schreibe eine Funktion '' | + | Schreibe eine Funktion '' |
| Zum Beispiel soll der Aufruf '' | Zum Beispiel soll der Aufruf '' | ||
| Zeile 357: | Zeile 360: | ||
| === BP8 – Rückwärts ausgeben === | === BP8 – Rückwärts ausgeben === | ||
| - | Schreibe eine Funktion '' | + | <WRAP group> |
| + | <WRAP column twothirds> | ||
| + | Schreibe eine Funktion '' | ||
| + | |||
| + | Tipp: Verwende eine indirekte for-Schleife. | ||
| + | </ | ||
| + | <WRAP column third> | ||
| + | < | ||
| + | o | ||
| + | l | ||
| + | l | ||
| + | a | ||
| + | H | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| === BP9 – Punkte-Linie === | === BP9 – Punkte-Linie === | ||
| Zeile 378: | Zeile 398: | ||
| * Verwende die Funktion '' | * Verwende die Funktion '' | ||
| * Setze '' | * Setze '' | ||
| - | * Du kannst davon ausgehen, dass '' | + | * Du kannst davon ausgehen, dass '' |
| - | * Der Aufruf '' | + | * Der Aufruf '' |
| <code python> | <code python> | ||
| Zeile 402: | Zeile 422: | ||
| <WRAP column half> | <WRAP column half> | ||
| - | {{.: | + | {{.: |
| </ | </ | ||
| Zeile 431: | Zeile 451: | ||
| === Q1 – Fakultät === | === Q1 – Fakultät === | ||
| - | Schreibe eine Funktion '' | + | Schreibe eine Funktion '' |
| Beispiele: | Beispiele: | ||
| * Die Fakultät zur Zahl 1 ist 1 = 1 | * Die Fakultät zur Zahl 1 ist 1 = 1 | ||
| Zeile 443: | Zeile 463: | ||
| * Wenn die Farben-Liste kürzer ist als die Durchmesser-Liste, | * Wenn die Farben-Liste kürzer ist als die Durchmesser-Liste, | ||
| * Wenn die Durchmesser-Liste kürzer ist als die Farben-Liste, | * Wenn die Durchmesser-Liste kürzer ist als die Farben-Liste, | ||
| + | |||
| + | === Q3 – Siebensegment-Anzeige === | ||
| + | <WRAP group> | ||
| + | <WRAP column twothirds> | ||
| + | Die [[https:// | ||
| + | |||
| + | {{: | ||
| + | </ | ||
| + | <WRAP column third> | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP column twothirds> | ||
| + | == Schritt 1 – Einzelnes Segment zeichnen == | ||
| + | Erstelle eine Funktion '' | ||
| + | * Das Argument '' | ||
| + | * Das Argument '' | ||
| + | * Starte bei der einen Spitze und gehe davon aus, dass die Turtle in Richtung der anderen Spitze schaut, siehe Bild. | ||
| + | </ | ||
| + | <WRAP column third> | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <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 | ||
| + | | 0 | ||
| + | | 4 | ||
| + | |||
| + | * Erstelle eine Liste '' | ||
| + | |||
| + | == Schritt 3 – Zahl mit 7 Segmenten anzeigen == | ||
| + | Erstelle eine Funktion '' | ||
| + | * Verwende die bereits erstellte Funktion '' | ||
| + | * Speichere für jedes Segment die x-Positionen, | ||
| + | * Das Argument number gibt an, welche Ziffer dargestellt werden soll. Verwende deine Liste '' | ||
| + | * Teste deine Funktion mit einem Programm, dass die Zahlen von 0 bis 9 im Sekundentakt ('' | ||
| + | </ | ||
| + | <WRAP column third> | ||
| + | {{: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | == 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 ===== | ||
| **Achtung: | **Achtung: | ||
| - | < | + | < |
| ++++Lösungen zu Aufgaben PA:| | ++++Lösungen zu Aufgaben PA:| | ||
| === PA1 === | === PA1 === | ||
| Zeile 780: | Zeile 852: | ||
| | | ||
| dot_arc(diameters, | dot_arc(diameters, | ||
| + | </ | ||
| + | ++++ | ||
| + | </ | ||
| + | <nodisp 2> | ||
| + | ++++Lösungen zu Aufgaben Q:| | ||
| + | === Q1 === | ||
| + | <code python> | ||
| + | def fakultaet(zahl): | ||
| + | result = 1 | ||
| + | for i in range(1, | ||
| + | result = result * i | ||
| + | print(result) | ||
| + | |||
| + | fakultaet(0) | ||
| + | fakultaet(1) | ||
| + | fakultaet(4) | ||
| + | </ | ||
| + | |||
| + | === Q2 === | ||
| + | <code python> | ||
| + | from gturtle import * | ||
| + | raffael = Turtle() | ||
| + | |||
| + | def dot_arc(l_dia, | ||
| + | i = 0 | ||
| + | angle = 360/ | ||
| + | for i in range(len(l_dia)): | ||
| + | if(len(l_col) != 0): | ||
| + | raffael.setPenColor(l_col[i%len(l_col)]) | ||
| + | raffael.rightArc(100, | ||
| + | raffael.dot(l_dia[i]) | ||
| + | |||
| + | diameters = [30, 40, 30, 40, 60, 40, 30, 50, 30, 50] | ||
| + | colors = [" | ||
| + | |||
| + | dot_arc(diameters, | ||
| + | </ | ||
| + | |||
| + | === Q3 === | ||
| + | <code python> | ||
| + | import math | ||
| + | from gturtle import * | ||
| + | |||
| + | carl = Turtle() | ||
| + | carl.hideTurtle() | ||
| + | |||
| + | def segment(length, | ||
| + | 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 = [' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | |||
| + | 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], | ||
| + | carl.setHeading(headings[i]) | ||
| + | if s == ' | ||
| + | segment(100, | ||
| + | else: | ||
| + | segment(100, | ||
| + | i = i + 1 | ||
| + | |||
| + | i = 0 | ||
| + | while i <= 9: | ||
| + | seven_seg(i) | ||
| + | i = i + 1 | ||
| + | delay(1000) | ||
| </ | </ | ||
| ++++ | ++++ | ||
| </ | </ | ||