lehrkraefte:snr:informatik:python:funktionen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:python:funktionen [2021/11/02 18:36]
Olaf Schnürer [Globale und lokale Variablen]
lehrkraefte:snr:informatik:python:funktionen [2021/11/04 18:09] (current)
Olaf Schnürer [Funktionen]
Line 59: Line 59:
 </WRAP> </WRAP>
  
 +<WRAP round todo>
 +Du kannst einer Funktion auch eine Liste als Parameter übergeben. Schreibe ein Programm, das dies ausnutzt! - Etwa ein Programm, das den Durschnitt einer Liste von Zahlen ausrechnet.
 +</WRAP>
  
 <WRAP round todo> <WRAP round todo>
Line 64: Line 67:
 Verbessere das Programm (es genügt, vier Zeichen (und eventuell Leerzeichen) zu ergänzen)! Verbessere das Programm (es genügt, vier Zeichen (und eventuell Leerzeichen) zu ergänzen)!
  
-Bemerkung: Sobald die ''return''-Anweisung in einer Funktion aufgerufen wird, wird die weitere Ausführung der Funktion unterbrochen.+Bemerkung: Sobald die ''return''-Anweisung in einer Funktion aufgerufen wird, wird die weitere Ausführung der Funktion abgebrochen.
  
 (Hierbei steht ''sqrt(...)'' für "square root", Quadratwurzel und ''int(...)'' macht aus einer Kommazahl eine ganze Zahl.) (Hierbei steht ''sqrt(...)'' für "square root", Quadratwurzel und ''int(...)'' macht aus einer Kommazahl eine ganze Zahl.)
Line 113: Line 116:
 </hidden> </hidden>
 </WRAP> </WRAP>
 +
 +<WRAP round todo>
 +ACHTUNG, ICH HATTE LEIDER ZUNÄCHST DAS AUSRUFEZEICHEN IN DER ZWEITEN ZEILE VERGESSEN!
 +
 +Versuche die folgende Definition der Fakultätsfunktion
 +
 +{{:lehrkraefte:snr:informatik:python:fakultaet-definition.png?300|}}
 +
 +in ein Programm zu übersetzen.
 +
 +Wenn dir das gelingt, hast du "selbst" entdeckt, was //Rekursion// ist: Eine Funktion, die sich selbst (oft auch mehrfach) aufruft - aber so, dass das Programm nicht unendlich lange läuft.
 +
 +Die obige Definition ist übrigens die sogenannte //induktive// oder //rekursive// Definition der Fakultätsfunktion.
 +</WRAP>
 +
  
  
Line 161: Line 179:
 </WRAP> </WRAP>
  
 +<WRAP round info>
 +Vermutlich ist es intuitiv klar, 
 +der Vollständigkeit halber sei aber erwähnt, dass lokale Variablen ausserhalb ihres Sichtbarkeitsbereichst nicht zugänglich sind in dem Sinne, dass ihr Wert nicht abrufbar ist:
 +<code python>
 +def test():
 +    s = "Welt"
 +    print(s)
 +    
 +test()
 +if s == "Welt":
 +    print("Weltschmerz")
 +# s = "Hallo"
 +# print(s)
 +</code>
 +Wenn man hier aber die ''if''-Kontrollstruktur durch die beiden auskommentierten Zeilen ersetzt, so funktioniert das Programm wieder: Nun gibt es aber wie oben zwei voneinander unabhängige Variablen mit dem Namen ''s''.
 +</WRAP>
  
  
  
  
 +
 +
 +
 +
 +===== Einige Lösungsvorschläge =====
 +<hidden Fakultät>
 +<code python>
 +def fakultaet(x):
 +    wert = 1
 +    for i in range(1, x + 1):
 +        wert = wert * i
 +    return(wert)
 +
 +print(fakultaet(5))
 +
 +for k in range(10):
 +    print("%d! = %d" % (k, fakultaet(k)))
 +</code>
 +</hidden>
  
  
  • lehrkraefte/snr/informatik/python/funktionen.1635874612.txt.gz
  • Last modified: 2021/11/02 18:36
  • by Olaf Schnürer