Skip to content

Teil 9: Funktionen Advanced

Übung 9.1: Funktion mit Parameter

python
"""
Übung 9.1: Funktion mit Parameter
Aufgabe: Schreibe eine Funktion, die "Hallo, [name]!" zurückgibt.
Konzept: Funktion mit Parameter
"""

def begruesse(name):
    """
    Erstellt eine Begrüßung.

    Args:
        name: Name der Person

    Returns:
        "Hallo, [name]!"
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert begruesse("Anna") == "Hallo, Anna!", "Fehler: Begrüßung falsch"
assert begruesse("Max") == "Hallo, Max!", "Fehler: Begrüßung falsch"
print("✓ Alle Tests bestanden!")

Übung 9.2: Funktion mit mehreren Parametern

python
"""
Übung 9.2: Funktion mit mehreren Parametern
Aufgabe: Schreibe eine Funktion, die den Durchschnitt von zwei Zahlen berechnet: (a + b) / 2
Konzept: Funktion mit mehreren Parametern
"""

def durchschnitt_zwei(a, b):
    """
    Berechnet den Durchschnitt von zwei Zahlen.

    Args:
        a: Erste Zahl
        b: Zweite Zahl

    Returns:
        Durchschnitt (a + b) / 2
    """
    # DEINE LÖSUNG HIER
    pass


# Tests
assert durchschnitt_zwei(4, 6) == 5.0, "Fehler: (4+6)/2 = 5"
assert durchschnitt_zwei(10, 20) == 15.0, "Fehler: (10+20)/2 = 15"
assert durchschnitt_zwei(0, 10) == 5.0, "Fehler: (0+10)/2 = 5"
print("✓ Alle Tests bestanden!")

Übung 9.3: Funktion ruft Funktion auf

python
"""
Übung 9.3: Funktion ruft Funktion auf
Aufgabe: Nutze die verdopple()-Funktion, um (zahl * 2) + 10 zu berechnen.
Konzept: Funktionsaufruf innerhalb einer Funktion
"""

def verdopple(zahl):
    """Verdoppelt eine Zahl."""
    return zahl * 2

def verdopple_und_addiere_zehn(zahl):
    """
    Verdoppelt eine Zahl und addiert 10.

    Args:
        zahl: Eine Zahl

    Returns:
        (zahl * 2) + 10
    """
    # DEINE LÖSUNG HIER - nutze verdopple()!
    pass


# Tests
assert verdopple_und_addiere_zehn(5) == 20, "Fehler: 5*2+10 = 20"
assert verdopple_und_addiere_zehn(0) == 10, "Fehler: 0*2+10 = 10"
assert verdopple_und_addiere_zehn(3) == 16, "Fehler: 3*2+10 = 16"
print("✓ Alle Tests bestanden!")

Übung 9.4: Code Reading (Code lesen)

Aufgabe: Lies den folgenden Code und erkläre, was passiert. Verfolge den Aufruf-Stack (Call Stack).

python
def berechne_quadrat(zahl):
    """Berechnet das Quadrat einer Zahl."""
    ergebnis = zahl * zahl
    return ergebnis

def berechne_summe_quadrate(a, b):
    """Berechnet die Summe der Quadrate von a und b."""
    quadrat_a = berechne_quadrat(a)
    quadrat_b = berechne_quadrat(b)
    summe = quadrat_a + quadrat_b
    return summe

resultat = berechne_summe_quadrate(3, 4)
print(resultat)

Fragen:

  1. Was wird ausgegeben?
  2. Erkläre den Ablauf: Welche Funktion ruft welche Funktion auf?
  3. Erstelle eine Tabelle für die Variablen in berechne_summe_quadrate(3, 4):
VariableWert
a?
b?
quadrat_a?
quadrat_b?
summe?

Übung 9.5: Debugging (Fehler finden)

Aufgabe: Der folgende Code soll die Fläche eines Rechtecks berechnen, aber das Ergebnis ist immer falsch.

python
"""
Übung 9.5: Debugging - Falsche Formel
Aufgabe: Die Fläche eines Rechtecks ist Länge × Breite. Finde den Fehler!
Hinweis: Setze Breakpoints in beiden Funktionen und beobachte die Variablen.
"""

def berechne_flaeche(laenge, breite):
    """Berechnet die Fläche eines Rechtecks."""
    flaeche = laenge + breite
    return flaeche

def flaeche_mit_rahmen(laenge, breite):
    """Berechnet Fläche und gibt sie formatiert aus."""
    ergebnis = berechne_flaeche(laenge, breite)
    return f"Die Fläche ist {ergebnis} m²"

# Test
print(flaeche_mit_rahmen(5, 3))  # Sollte "Die Fläche ist 15 m²" sein

Informatik & ICT Unterricht Neufeld