Übungsaufgaben

Aufgabe: Funktionen definieren

Definieren Sie die folgenden Funktionen:

  • max3 mit drei Parametern x, y und z zur Berechnung des Maximums der drei Parameter.
  • nicht, und und oder für logische Negation, Konjunktion und Disjunktion von Wahrheitswerten ohne Verwendung vordefinierter logischer Operatoren.
  • sumUpTo mit einem Parameter n zur Berechnung der Summe der Zahlen von 1 bis n.
  • factorial mit einem Parameter n zur Berechnung der Fakultät von n.

Testen Sie Ihre Definitionen in der interaktiven python-Shell und geben Sie einige Beispielaufrufe an.

Bonusaufgabe: Heron-Verfahren programmieren

Definieren Sie eine Funktion heronIter mit zwei Parametern x und eps zur Wurzel-Iteration nach dem Heron-Verfahren. Der Rückgabewert der Funktion soll die Wurzel aus x mit der Genauigkeit eps sein.

Aufgabe: Summe von Zahlenbereichen

Definieren Sie eine Funktion sum_from_to mit zwei Parametern n und m, die als Ergebnis die Summe aller Zahlen von n bis m zurückgibt. Zum Beispiel soll das Ergebnis des Aufrufs sum_from_to(4,7) gleich 22 sein, weil 4+5+6+7 = 22 ist.

Setzten Sie voraus, dass n und m ganze Zahlen sind für die n <= m gilt. Sie brauchen diese Bedingung in Ihrer Implementierung also nicht zu testen.

Implementieren Sie die Funktion einmal mit einer Zählschleife und einmal mit einer bedingten Schleife. Welche Variante bevorzugen Sie und warum?

Bonusaufgabe: Binärdarstellung positiver Zahlen

Schreiben Sie unter Verwendung einer geeigneten Schleife eine Funktion binary mit einem Parameter n, die eine positive ganze Zahl als Argument erwartet und deren Binärdarstellung als Zeichnekette zurück gibt. Hier sind einige Beispielaufrufe, die das Verhalten der Funktion verdeutlichen:

>>> binary(1)
'1'
>>> binary(2)
'10'
>>> binary(3)
'11'
>>> binary(4)
'100'
>>> binary(42)
'101010'