Inhaltsverzeichnis

Algorithmen II

Struktogramme und Python

Aufgaben A

Aufgabe A1: Maximum

Lösung

Aufgabe A2: Sortieren

Lösung:

Ausgeblendet

Aufgabe A3: Subtraction Game

Aufgabe A4: 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 A5: 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

def summe_aller_zahlen(n): # Berechnet die Summe aller natürlicher Zahlen von 1..n resultat = 0 # Akkumulator, zu Beginn auf Null # Klassische Schleife mit Zähler-Variable zahl = 1 while zahl <= n: resultat = resultat + zahl zahl = zahl + 1 return resultat print(summe_aller_zahlen(10))

Aufgaben B

Aufgabe B1: 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:

Lösung:

Aufgabe B2: 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!

Lösung:

Primzahlen

Theorie

Auftrag zu Primzahlen

Hinweise

Zusatzauftrag:

Lösung:

Aufgabe B3: Primfaktorzerlegung

Lösung:

Weitere anspruchsvolle Algorithmen

Aufgabe B4: ggT bestimmen

Lösung:

Aufgabe B5: Quadratwurzel ziehen

Lösung: