Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:glf23:python:while-loops [2023/09/27 08:14] – [Aufgabe 2: Quadratzahlen summieren] Olaf Schnürer | lehrkraefte:snr:informatik:glf23:python:while-loops [2023/09/28 14:35] (current) – [Aufgabe 4: Slalomtext] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | ====== while-Loops bzw. while-Schleifen ====== | ||
| + | |||
| + | |||
| + | ===== Erklärungen ===== | ||
| + | |||
| + | <WRAP center round info> | ||
| + | <code python while-zaehlen.py> | ||
| + | print(" | ||
| + | i = 1 | ||
| + | while i <= 10: | ||
| + | print(i) | ||
| + | i = i + 1 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Aufgabe 1: Zahlen ausgeben ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Öffne ein neues Python-Programm namens '' | ||
| + | Kopiere das obige Zählprogramm und ändere es so, dass es alle durch 3 teilbaren Zahlen zwischen 0 und 99 ausgibt (sowohl 0 als auch 99 sollen ausgegeben werden). | ||
| + | </ | ||
| + | |||
| + | ==== Aufgabe 2: Quadratzahlen summieren ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe ein Programm, dass die Quadrate aller Zahlen von 1 bis zu einer am Anfang des Programms vereinbarten Zahl '' | ||
| + | <code text> | ||
| + | Die Summe aller Quadratzahlen von 1 bis n = ... beträgt .... | ||
| + | </ | ||
| + | ausgegeben werden, wobei die Punkte durch konkrete Zahlen zu ersetzen sind. | ||
| + | |||
| + | Hinweis: Verwende neben einer " | ||
| + | </ | ||
| + | |||
| + | ==== Challenge: Bonus-Aufgabe 1: Überraschendes Ergebnis! ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Berechne mit Python die Summe | ||
| + | $$s = 1 + \frac 14 + \frac19 + \frac1{16} + \dots + \frac1{1' | ||
| + | der Kehrwerte der Quadrate aller natürlichen Zahlen von 1 bis 1' | ||
| + | |||
| + | Dann gib die Zahl $\sqrt{6 \cdot s}$ aus. Was fällt dir auf? | ||
| + | |||
| + | Hinweis: '' | ||
| + | </ | ||
| + | |||
| + | ==== Aufgabe 3: Teiler einer Zahl ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (Bitte möglichst nicht das in der zweiten Woche geschriebene Programm anschauen!) | ||
| + | |||
| + | Schreibe ein Programm, das vom Benutzer eine Zahl '' | ||
| + | Zusätzlich soll das Programm am Ende die Anzahl der Teiler von '' | ||
| + | |||
| + | Hinweis: Verwende neben der " | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== Aufgabe 4: Slalomtext ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe ein Python-Programm, | ||
| + | <code text> | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | Schleifen sind cool! | ||
| + | | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | Hinweise: | ||
| + | * Verwende eine Zählvariable '' | ||
| + | * In der Schleife: | ||
| + | * Speichere den Rest der Division von '' | ||
| + | * Beachte: Die Anzahl der Leerschläge vor dem Text hängt nur von '' | ||
| + | * Verwende eine if-Struktur: | ||
| + | * Wenn r kleiner-gleich vier ist: Gib $r$ Leerschläge aus, gefolgt vom Text " | ||
| + | * Sonst: Gib $(10 - r)$ Leerschläge aus, gefolgt vom Text " | ||
| + | |||
| + | Bemerkung: Falls du den Programmablauf verlangsamen möchtest: | ||
| + | * Ergänze die Zeile '' | ||
| + | * Am Ende der while-Schleife ergänze die Zeile '' | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Bonus-Aufgabe 2: Kopfrechentrainer mit mehreren Fragen ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Im Abschnitt über if-statements hast du einen Kopfrechentrainer geschrieben, | ||
| + | |||
| + | Erweitere dieses Programm nun so, dass dem Benutzer so lange Multiplikationsaufgaben gestellt werden, bis der Benutzer " | ||
| + | |||
| + | Dem Benutzer soll am Ende mitgeteilt werden, wie viel Prozent der Aufgaben er richtig beantwortet hat. | ||
| + | |||
| + | <hidden Hinweis: Hier ist ein Programm, das zwar etwas anderes tut, aber trotzdem hilfreich sein dürfte.> | ||
| + | <code python eingaben-aufsummieren.py> | ||
| + | print(" | ||
| + | summe = 0 | ||
| + | eingabe = "" | ||
| + | while eingabe != " | ||
| + | eingabe = input(" | ||
| + | if eingabe != " | ||
| + | summe = summe + int(eingabe) | ||
| + | print(" | ||
| + | </ | ||
| + | Man kann übrigens die " | ||
| + | <code python eingaben-aufsummieren-mit-break.py> | ||
| + | print(" | ||
| + | summe = 0 | ||
| + | eingabe = "" | ||
| + | while True: | ||
| + | eingabe = input(" | ||
| + | if eingabe == " | ||
| + | break | ||
| + | summe = summe + int(eingabe) | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Bonus-Aufgabe 3: Primzahlen ausgeben ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe ein Programm, dass alle Primzahlen bis '' | ||
| + | |||
| + | Hinweis: Gehe alle Zahlen von 1 bis '' | ||
| + | |||
| + | Bemerkung: Schneller geht die Erzeugung einer Primzahlliste etwa mit dem Sieb des Eratosthenes. Dazu benötigt man aber Listen, wie wir sie bald kennenlernen werden. | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||