Zum Inhalt

Funktionen

Befehle bzw. Prozeduren sind kleinere Teilprogramme die für uns ein mehrfach auftretendes Teilproblem lösen. Wenn ein Befehl ein bestimmtes Verhalten aufweist, dann nennen wir ihn auch eine Funktion.

Funktionen können wir uns vorstellen als kleine Maschinen, welche eine "Eingabe" und eine "Ausgabe" haben. Sie nehmen Daten (Werte) über Parameter auf, verarbeiten sie, bzw. verändern sie und produzieren ein Ergebnis (Rückgabewert).

Wenn wir eine Prozedur aufrufen, "springt" das Programm zu der Prozedur, wenn die Prozedur fertig ausgeführt ist, "springt" es wieder zurück. Bei diesem "Sprung" zurück, können wir Informationen vom Teilprogramm an das Hauptprogramm weiterleiten. Dem sagen wir: einen Wert zurückgeben.

Fachbegriff: Funktion

Eine Funktion ist eine Form von Prozedur, welche einen Wert zurückgibt. Dadurch können Informationen von dem Teilprogramm (Befehl) an das Hauptprogramm "gesendet" werden. Damit eine Prozedur einen Wert zurückgeben kann, muss er mit dem Schlüsselwort return markiert werden.

Beispiel: eine Funktion

In diesem Programm wird eine neue Funktion mit dem Namen verdopppeln und einem Parameter x definiert. Dies ist genau gleich wie bei einem Befehl. Neuerdings gibt der Befehl jedoch einen Wert zurück, darum ist es jetzt auch eine Funktion. Zurückgegeben wird das zweifache vom Parameter x. Dazu wird dies zuerst berechnet und in der Variable y gespeichert. Diese Variable wird mit return markiert als Rückgabewert.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Fachbegriff: Rückgabewert

Mit Rückgabewert bezeichnen wir den Wert, welcher von einer Funktion zurückgegeben wird. Er wird mit dem Schlüsselwort return markiert. return beendet zudem die Ausführung der Funktion sofort.

Beispiel: Verhalten von return

In diesem Programm wird eine neue Funktion mit dem Namen vierfache und einem Parameter x definiert. Zurückgegeben sollte das vierfache vom Parameter x. Bei der Programmierung ist uns aber einen Fehler passiert und wir geben direkt den Parameter x auf Zeile 2 zurück. Der Rest der Funktion wird nicht mehr ausgeführt!

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Aufgaben 1

Quadratzahl

Question

Schreibe eine Funktion, welche die Quadratzahl für einen Parameter berechnent und zurückgibt. Du kannst den Namen der Funktion und des Parameters frei wählen. Teste deine Funktion in dem du die Quadratzahl für 4 und 5 berechnest und überprüfst.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

.128013 c2zL(okgföe=)i*hy/aputndm:sr1qlbv050z0m0x0u0p0G0C0b0c0G0u0C0C0n010x0p0v010406050C0w0A0A0u0D0s040f0l0*0y0j050t0*0,0.0:0(0v0405110`140t110(0z0p0I0R0T0V0X0r0p0j0r0G1i0r0x0$050M0H0G0m1d0U0W011h1j1l1j0x1r1t1p0x0D120x0r0R0h0P0v0u0y0X0d011v1f010k0O0m0y0u0A0m1p0C1P0y1V1x1Y1t1#1%0$0a0b0=0@0j0C0I0h0D0C0c1k0u0_0{1+120t1K271H1J1I1q0z1-0X1l0y1!0h0C1p1a1c0S1w2h0p2j0y0h2o1p0v0D0m121*1Q272D0y2C1+2g012v0D0-0G0$0E0`2G0%0)2J2q1W2M2O0$0d2S26152A272o2a0z1J2f2X1x0c2w1(122,132*2V2E2%2~2?0K2I1Q2K0i0$0K0k2 2H0b2}1,2;0X0y0k0$0F0w0u0z0D0u0x0e0u1k3a333e1e1x0#040g3u3d2K0y0$0y3C2G2K3z0o0B3u060b3Q3c3J3f0136042A0x0w0D3H252E3S2W3x3g3G3I3*2r010h0$0q3.343U3F043$2T0(0t312B2)420t2`282.0`2b490u1s442,3 0K0M0O0C04.
Lösung
1
2
def quadratzahl(n):
    return n*n

Quadratumfang

Question

Schreibe eine Funktion mit dem Namen quadratumfang und einem Parameter für die Seitenlänge. Die Funktion soll den Umfang eines Quadrats berechnent und zurückgeben.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013 c2L(o4kgfö3e=)i*hy/aputndm:sr1qlbv050A0n0y0v0q0H0D0b0c0H0v0D0D0o010y0q0w010406050D0x0B0B0v0E0t040e0l0+0z0j050u0+0-0/0;0)0w0405120{150u120)0A0q0J0S0U0W0Y0s0q0j0s0H1j0s0y0%050N0I0H0n1e0V0X011i1k1m1k0y1s1u1q0y0E130y0s0S0g0Q0w0v0z0Y0d011w1g010k0P0n0z0v0B0n1q0D1Q0z1W1y1Z1u1$1(0%0a0b0?0^0j0D0J0g0E0D0c1l0v0`0|1,130u1L281I1K1J1r0A1.0Y1m0z1#0g0D1q1b1d0T1x2i0q2k0z0g2p1q0w0E0n131+1R282E0z2D1,2h012w0E0.0H0%0F0{2H0(0*2K2r1X2N2P0%0d2T270)2H2L2!0v2Q040m2(2F162B282p2b0A1K2g2Y1y0c2x1)132`142^2W2?262?310L2J1R2L0i0%0L0k2=2I0b381-2 0Y0z0k0%0G0x0v0A0E0v0y0,0k1R252U3o2L0$040f3l3e3p1f1y0z0%0D0n0q0y0n3M3H3q013J0p0C3M060b3+3n2+3!3R043C3E3M3-2X3P0Y0g0%0o3@3Z3`010B0q0%0h3 3.413|040r473_2s2M3S3U3W3)3,3^3f3!3h042B3B0E0z4d4n413:3=0_3)0{3c2C2@4E0u35292|0{2c4L0v1t4G2`0)4H0M0O0Q04.
Lösung
1
2
3
def quadratumfang(seite):
    umfang = 4 * seite
    return umfang

Mehrere Parameter

Eine Funktion kann auch mehr als nur ein Parameter erhalten. Bei mehreren Parametern schreiben wir die Namen einfach durch ein Komma getrennt innerhalb der zwei Klammern auf (). Dasselbe gilt auch für normale Befehle.

Beispiel: Mehrere Parameter

In diesem Programm wird eine neue Funktion mit dem Namen additionsFunktion und zwei Parameter x und y definiert. Zurückgegeben wird die Summe der zwei Parameter.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Aufgaben 2

Rechteckumfang

Question

Schreibe eine Funktion mit dem Namen rechteckumfang und zwei Parameter für die Breite und Höhe von einem Rechteck. Die Funktion soll den Umfang des Rechtecks berechnent und zurückgeben.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013 c2L(okgfö3e=)i*hy/aputndm:+sr1,lbv050z0m0x0u0p0H0D0b0c0H0u0D0D0n010x0p0v010406050D0w0A0A0u0E0s040e0k0+0y0i050t0+0-0/0;0)0v0405120{150t120)0z0p0J0S0U0W0Y0r0p0i0r0H1j0r0x0%050N0I0H0m1e0V0X011i1k1m1k0x1s1u1q0x0E130x0r0S0g0Q0v0u0y0Y0d011w1g010j0P0m0y0u0A0m1q0D1Q0y1W1y1Z1u1$1(0%0a0b0?0^0i0D0J0g0E0D0c1l0u0`0|1,130t1L281I1K1J1r0z1.0Y1m0y1#0g0D1q1b1d0T1x2i0p2k0y0g2p1q0v0E0m131+1R282E0y2D1,2h012w0E0.0H0%0F0{2H0(0*2K2r1X2N2P0%0d2T270)2H2L2!0u2Q040l2(2F162B282p2b0z1K2g2Y1y0c2x1)132`142^2W2?262?310L2J1R2L0h0%0L0j2=2I0b381-2 0Y0y0j0%2B220x0m0c0h0,0j1R252U3o2L0$040f3l3e3p1f1y0y0%0u3L3G3q013I0G3L3n2+3V3Q040I3T3#3O0Y3I0o0B3L060b3?3!2X3,2M0%3B3D3Z3U3`0g0%0n3 3+2s010A0p2$453_4742040q4c3f3$3R4i3N4e0%0C4m2L494b3a3m404o4g4r4k3(3;3@3^4j3`3h042B0x0w0E0y4A3`3%3}0_3;0{3c2C2@4X0t35292|0{2c4(0u1t4Z2`0)4!0M0O0Q04.
Lösung
1
2
3
def rechteckumfang(a, b):
    umfang = 2 * a + 2 * b
    return umfang

Minimum

Question

Schreibe eine Funktion mit dem Namen minimum und zwei Parameter. Die Funktion erhält als Parameter zwei Zahlen und soll die kleinste Zahl der beiden Parameter zurückgeben. Somit berechnet sie das Minimum von zwei Zahlen.

Hinweis: Was passiert wenn beide Zahlen gleich gross sind?

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013 c2L(o4kgfö3e=)i65hy/;aputndm:sr1,lbv050C0n0A0x0q0J0F0b0c0J0x0F0F0o010A0q0y010406050F0z0D0D0x0G0u040e0l0-0B0j050v0-0/0;0?0+0y0405140}170v140+0C0q0L0U0W0Y0!0t0q0j0t0J1l0t0A0)050P0K0J0n1g0X0Z011k1m1o1m0A1u1w1s0A0G150A0t0U0g0S0y0x0B0!0d011y1i010k0R0n0B0x0D0n1s0F1S0B1Y1A1#1w1(1*0)0a0b0^0`0j0F0L0g0G0F0c1n0x0|0~1.150v1N2a1K1M1L1t0C1:0!1o0B1%0g0F1s1d1f0V1z2k0q2m0B0g2r1s0y0G0n151-1T2a2G0B2F1.2j012y0G0:0J0)0H0}2J0*0,2M2t1Z2P2R0)0d2V290+2J2N2$0x2S040m2*2H2,2Z1h1A2/2;0h2@2K2_1T2.212%040s302X2-2!2|352:0)0r39182D2a2r2d0C1M2i3c0!0c2z1+153m163k2Y2H3i3t0N2L333r010i0)0N0k390b3A1/3H0B0k0)0D2w0q0D0.3i3b2{0!0(040f3!2`2u2O0)0x3+3G3$013(0I3N3P2.0)0K3;3Q3?3(0p0E3906060b483O3#3-3J040q3M282H4a3,2#3/3`4b1Z0g0)020J0A0w4n4k2|3}3 2N3(444h31494G4j3=4c0)2D0A0z0G0B4w4J4l043:4E0*4G3{3H4d0n0S0n4A3H4C454H494Z3?4d4M4O4Q4W4I403-0B4z4W0+0v3D2E3j520v3x2b3o0}2e590x1v543m4 0N0P0R0F04.
Lösung
1
2
3
4
5
6
def minimum(a, b):

    if a < b:
        return a
    else:
        return b