In diesem Dossier wiederholen wir die Grundwerkzeuge des Programmierens. Wir beschränken uns bewusst auf sehr wenige Sprachelemente: Variablen, Ein-/Ausgabe, Verzweigungen (if/elif/else) und while-Schleifen. Alles andere (for-Schleifen, Funktionen, Listen, Dictionaries) ist nicht erlaubt – ausser in den Zusatzaufgaben ganz am Schluss.
Das mag zuerst nach einer Einschränkung aussehen. Tatsächlich ist es aber genau umgekehrt: Mit diesen wenigen Bausteinen lässt sich jedes Programm schreiben. Wer sie sicher beherrscht, hat das Fundament gelegt.
Die Aufgaben werden von Kapitel zu Kapitel anspruchsvoller. Löse sie der Reihe nach und schaue dir die Lösung erst an, wenn du selbst einen ernsthaften Versuch unternommen hast.
Wir starten ganz gemütlich. Hier geht es nur darum, wieder ein Gefühl für Variablen, input() und print() zu bekommen.
Hallo Anna, du wirst dieses Jahr 17 Jahre alt.1 h 2 min 30 s aus.
Tipp: Du brauchst die Ganzzahldivision // und den Modulo-Operator %.
Ein Programm soll nicht immer dasselbe tun. Mit if, elif und else treffen wir Entscheidungen.
if/elif/else (kein max()).| Punkte | Note |
|---|---|
| 90–100 | 6 |
| 75–89 | 5 |
| 60–74 | 4 |
| 40–59 | 3 |
| 0–39 | 2 |
Fange auch ungültige Eingaben (kleiner als $0$ oder grösser als $100$) ab.
Teste dein Programm mit $2024$, $1900$, $2000$ und $2023$.
Eine while-Schleife wiederholt einen Block solange eine Bedingung wahr ist. Drei Dinge gehören immer dazu:
Vergisst du Punkt 3, läuft dein Programm ewig. Mit Ctrl + C brichst du eine Endlosschleife ab.
Start! ausgegeben werden.Löse die Aufgabe auf zwei Arten:
n n^2 n^3 1 1 1 2 4 8 3 9 27 ...
Tipp: Mit \t erzeugst du einen Tabulator.
Jetzt kommt das wohl wichtigste Muster überhaupt: der Akkumulator. Wir legen eine Variable an, die das Zwischenergebnis speichert, und verändern sie in jedem Schleifendurchgang.
Bis jetzt haben wir immer eine feste Anzahl Zahlen verarbeitet. Nun soll der Benutzer selbst entscheiden, wann Schluss ist. Dazu vereinbart man einen Abbruchwert (engl. sentinel), z.B. die $0$.
python. Der Benutzer hat höchstens drei Versuche. Bei richtigem Passwort: Willkommen!, nach drei Fehlversuchen: Zugang gesperrt.Jetzt wird es interessant: Innerhalb der Schleife treffen wir Entscheidungen.
zu klein oder zu gross aus. Bei richtigem Tipp wird die Anzahl der Versuche ausgegeben.Gib jeden Zwischenschritt aus und höre auf, sobald $n = 1$ erreicht ist. Zähle die Schritte.
Probiere danach $n = 27$ aus.
Tipp: Mit n % 10 bekommst du die letzte Ziffer, mit n // 10 schneidest du sie ab.
Ersetze wiederholt das Paar $(a, b)$ durch $(b,\ a \bmod b)$, bis $b = 0$ ist. Dann ist $a$ der ggT.
math.sqrt zu verwenden.
Starte mit einer Näherung $g = x/2$ und verbessere sie wiederholt mit $$g_{\text{neu}} = \frac{1}{2}\left(g + \frac{x}{g}\right)$$ bis sich der Wert kaum mehr ändert.
bin() zu verwenden.
Tipp: Teile wiederholt durch $2$ und sammle die Reste ein – aber achte auf die Reihenfolge!
* Figur 1: ***** Figur 2: * ** **** *** *** *** ***** **** ** ******* ***** *
Wer alles Bisherige gelöst hat, darf sich hier austoben. Ab jetzt sind Listen erlaubt. Die wichtigsten Befehle:
liste = [] # leere Liste liste = [3, 1, 4, 1, 5] # Liste mit Startwerten liste.append(9) # Element hinten anfügen liste[0] # erstes Element (Zählung beginnt bei 0!) liste[-1] # letztes Element len(liste) # Anzahl Elemente liste[2] = 7 # Element überschreiben liste.pop(1) # Element an Position 1 entfernen
sum(), max() oder min().Idee: Schreibe alle Zahlen von $2$ bis $100$ auf. Nimm die erste unmarkierte Zahl – sie ist prim. Streiche danach alle ihre Vielfachen. Wiederhole.
k (zu klein), g (zu gross) oder r (richtig).
Programmiere den Computer so, dass er möglichst wenige Versuche braucht.