Inhaltsverzeichnis

Algorithmen II

Mit unserem Wissen über die Python Grundlagen und Funktionen sind wir bestens gerüstet, um komplexere algorithmische Probleme zu lösen. Verwende wo möglich Funktionen, und verwende Tests, um zu überprüfen, ob dein Code funktioniert!

Verwende keine vordefinierten Funktionen wie z.B. max() oder sorted(), sondern programmiere alles selber.

Aufgabe L1: Maximum

Aufgabe L2: Sortieren

Aufgabe L3: Ratespiel (optional: mittel)

Eine geheime Zahl zwischen 0 und 100 wird in einer Variablen gespeichert. Der Spieler versucht solange die geheime Zahl zu erraten, bis er erfolgreich ist.

Zusatzpunkte:

Aufgabe L4: Ratespiel umgekehrt (optional: mittel)

Der Spieler merkt sich eine geheime Zahl zwischen 0 und 100, der Computer soll sie erraten. Der Spieler soll dem Computer bei jedem Versuch mitteilen, ob die gesuchte Zahl kleiner oder grösser als die Vermutung ist:

Zusatzpunkte:

Mathematische Algorithmen

Mit iterativen Algorithmen berechnen wir Schritt für Schritt das gewünschte Resultat. Das Resultat wird in einer Variable sukzessive akkumuliert. In einer Schleife wird jede Runde ein Wert hinzugefügt, beispielsweise durch Addition oder Multiplikation.

Beispiel: Summe aller natürlicher Zahlen

Aufgaben M

Aufgabe M1: Iterative Algorithmen

Schreibe für jede Aufgabe eine Funktion, die passende Argumente entgegennimmt und das Resultat zurück gibt. Schreibe alle Funktionen selbst und verwende nur ganz rudimentäre Sprachelemente und keine vordefinierten Funktionen.

  1. Multiplikation durch Additionen ausdrücken
  2. Hoch-Rechnen durch Multiplikation ausdrücken
  3. Hoch-Rechnen durch Additionen ausdrücken
  4. Ganzzahldivision mit Rest mit Addition und Subtraktion
  5. Entscheiden ob eine beliebige Zahl eine Zweierpotenz ist oder nicht

Hinweise:

Aufgabe M2: Quersumme

Die Quersumme einer Zahl ist die Summe all ihrer Ziffern. Die Quersumme beispielsweise von $413$ ist $4 + 1 + 3 = 8$.

Schreibe eine Funktion quersumme(x), die die Quersumme von x zurückgibt!

Zuerst ohne diese Hinweise probieren!

Primzahlen

Theorie

Auftrag zu Primzahlen

Hinweise

Zusatzauftrag:

Aufgabe M3: Primfaktorzerlegung

Weitere anspruchsvolle Algorithmen

Aufgabe M4: ggT bestimmen

Aufgabe M5: Quadratwurzel ziehen