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_i_sca [2024-11-01 08:30] – sca | gf_informatik:programmieren_i_sca [2025-01-07 11:01] (aktuell) – [Programmieren I: Programmieren mit TurtleGraphics] sca | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Programmieren I: Programmieren mit TurtleGraphics | + | ====== Programmieren I: Grundlagen der Programmierung |
++++Lernziele| | ++++Lernziele| | ||
+ | * Grundsätzlich: | ||
* Ich kann erklären, was eine **Variable** ist und passende Analogien machen. | * Ich kann erklären, was eine **Variable** ist und passende Analogien machen. | ||
* Ich kann erklären, wann und warum man Variablen verwenden sollte. | * Ich kann erklären, wann und warum man Variablen verwenden sollte. | ||
Zeile 14: | Zeile 15: | ||
* (Beachte: Bei Prüfungen wird nicht nur bewertet *ob* der Code korrekt funktioniert, | * (Beachte: Bei Prüfungen wird nicht nur bewertet *ob* der Code korrekt funktioniert, | ||
* Ich kann von der Benutzerin eine **Eingabe** verlangen und diese in einer Variable speichern. | * Ich kann von der Benutzerin eine **Eingabe** verlangen und diese in einer Variable speichern. | ||
+ | * Ich kann die wichtigsten **Vergleichsoperatoren** verwenden, um Zahlen miteinande zu vergleichen | ||
* Ich kann **Verzweigungen** (if, | * Ich kann **Verzweigungen** (if, | ||
* Ich kann einfache **Konsolenprogramme** (Programme mit Eingabe und/oder Ausgabe aber *ohne Turtle*). | * Ich kann einfache **Konsolenprogramme** (Programme mit Eingabe und/oder Ausgabe aber *ohne Turtle*). | ||
* (Optional): Ich kann in **farbige Bilder** erstellen mit TurtleGraphics. | * (Optional): Ich kann in **farbige Bilder** erstellen mit TurtleGraphics. | ||
+ | |||
+ | * Ich kann mit den wichtigsten **mathematischen Operatoren** rechnen (`+, | ||
+ | * Ich kann den Zuweisungsoperataor `=` mit dem Vergleichsoperator `==` vergleichen. | ||
+ | * Ich kann mit **f-Strings** arbeiten, zum Beispiel: | ||
+ | * Mehrere Strings zusammenhängen | ||
+ | * Werte von Variablen am richtigen Ort im String einsetzen | ||
+ | * Ich kann **komplexere Grafiken** mit der Turtle elegant mit Schleifen programmieren, | ||
+ | * spiralförmige Muster | ||
+ | * sich wiederholende Muster (gleiches Symbol mehrfach nebeneinander) | ||
+ | * Ich kann mit **while-Schleifen** einen Codeblock wiederholen lassen, z.B.: | ||
+ | * Fix vorgegebene Anzahl Wiederholungen. | ||
+ | * Zahlen herauf / herunter zählen. | ||
+ | * Ich verwende **KEIN REPEAT** mehr. Nie mehr! | ||
+ | * Ich kann mit **break** aus einer " | ||
Zeile 804: | Zeile 820: | ||
==== Aufgaben I ==== | ==== Aufgaben I ==== | ||
- | Löse alle Aufgaben mit while-Schleifen und break. | + | Löse alle Aufgaben mit **while-Schleifen und break**. |
=== Aufgabe I1 === | === Aufgabe I1 === | ||
- | Die Benutzerin soll solange aufgefordert, | + | **Negative Zahl: |
=== Aufgabe I2 === | === Aufgabe I2 === | ||
- | Code für Geheimtür: Der Benutzer soll aufgefordert werden, das geheime Passwort (" | + | **Code für Geheimtür:** Der Benutzer soll aufgefordert werden, das geheime Passwort (" |
=== Aufgabe I3 === | === Aufgabe I3 === | ||
- | Unendliche Summe: Die Benutzerin soll unendlich oft hintereinander aufgefordert werden, eine Zahl einzugeben. Die neu eingegebene Zahl wird zu den bisherigen hinzuaddiert und das aktuelle Resultat ausgegeben. | + | **Unendliche Summe:** Die Benutzerin soll unendlich oft hintereinander aufgefordert werden, eine Zahl einzugeben. Die neu eingegebene Zahl wird zu den bisherigen hinzuaddiert und das aktuelle Resultat ausgegeben. |
Um das Programm abzubrechen, | Um das Programm abzubrechen, | ||
+ | |||
+ | |||
+ | ===== Zusatzaufgaben ===== | ||
+ | |||
+ | Löse die Aufgaben so elegant wie möglich. Verwende z.B. wann immer möglich Schleifen. | ||
+ | |||
+ | ==== Basic ==== | ||
+ | |||
+ | === Aufgabe: Wiederholen === | ||
+ | |||
+ | Bart hat mal seine Carbonara wieder mit Rahm gekocht! Zur Strafe muss er 100x "Kein Rahm in die Carbonara!" | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | === Aufgabe: 5er-Reihe === | ||
+ | |||
+ | Gib alle Zahlen der 5er Reihe aus im Bereich $5, | ||
+ | |||
+ | === Aufgabe: Summe gerader Zahlen === | ||
+ | |||
+ | Berechne die Summe aller gerader Zahlen von $2$ bis und mit $100$. | ||
+ | |||
+ | === Aufgabe: Unendlicher Zähler === | ||
+ | |||
+ | Im Sekundentakt soll herauf gezählt werden: $1, | ||
+ | Um einen Delay von 1s einzubauen, gehe wie folgt vor: | ||
+ | <code python> | ||
+ | import time # importiere ganz oben im Code | ||
+ | ... | ||
+ | time.sleep(1) # Befehl, dass für 1s soll pausieren | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Anspruchsvoll ==== | ||
+ | |||
+ | === Aufgabe: Lord of the Rings === | ||
+ | |||
+ | Erzeuge das folgende Bild auf clevere Art und Weise. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | *Tipp:* Verwende zwei ineinander verschachtelte Schleifen. | ||
Zeile 1302: | Zeile 1361: | ||
++++ | ++++ | ||
- | <nodisp 2> | ||
++++Lösungen G| | ++++Lösungen G| | ||
Zeile 1438: | Zeile 1496: | ||
++++ | ++++ | ||
- | </ | ||
- | |||
- | <nodisp 2> | ||
++++Aufgaben H| | ++++Aufgaben H| | ||
Zeile 1510: | Zeile 1565: | ||
</ | </ | ||
+ | ++++ | ||
- | === Aufgabe Hx === | + | ++++Aufgaben I| |
- | <code python> | + | === Aufgabe |
- | </ | + | |
- | + | ||
- | + | ||
- | === Aufgabe | + | |
<code python> | <code python> | ||
- | </code> | + | while True: |
+ | number = input(" | ||
+ | if number | ||
+ | break | ||
+ | else: | ||
+ | print(" | ||
- | + | print(" | |
- | === Aufgabe Hx === | + | |
- | + | ||
- | <code python> | + | |
</ | </ | ||
- | + | === Aufgabe | |
- | === Aufgabe | + | |
<code python> | <code python> | ||
+ | while True: | ||
+ | eingabe = input(" | ||
+ | if eingabe == " | ||
+ | print(" | ||
+ | break | ||
+ | else: | ||
+ | print(" | ||
</ | </ | ||
- | + | === Aufgabe | |
- | === Aufgabe | + | |
<code python> | <code python> | ||
+ | summe = 0 | ||
+ | |||
+ | while True: | ||
+ | eingabe = input(" | ||
+ | if eingabe == ' | ||
+ | break | ||
+ | summe = summe + eingabe | ||
+ | print(f" | ||
+ | | ||
+ | print(f" | ||
</ | </ | ||
Zeile 1543: | Zeile 1612: | ||
++++ | ++++ | ||
- | </ | + | |