Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:funktionen:problems [2023-02-22 09:51] – angelegt gra | gf_informatik:funktionen:problems [2023-11-16 14:27] (aktuell) – [Problem 5] hof | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Problem 1 ====== | + | ===== Probleme mit Funktionen |
+ | In jedem der folgenden Codes hat es jeweils einen Fehler bzw. ein Problem. | ||
+ | Gehe für jedes Problem nach dem folgenden Muster vor: | ||
+ | - *Predict*: Code lesen und voraussagen, | ||
+ | - *Run*: Führe den Code in WebtigerJython aus und vergleich das Resultat mit deiner Voraussage. | ||
+ | - *Inspect*: Untersuche, weshalb der Code nicht funktioniert - schreibe einen `# Kommentar` hinter die fehlerhafte Zeile. | ||
+ | - *Modify*: Behebe den Fehler im Code. | ||
+ | |||
+ | |||
+ | ==== Problem 1 ==== | ||
+ | Weshalb funktioniert folgender Code nicht? | ||
+ | <code python> | ||
+ | def say_hello(): | ||
+ | print(" | ||
+ | print(" | ||
+ | print(" | ||
+ | | ||
+ | def say_goodbye(): | ||
+ | print(" | ||
+ | print(" | ||
+ | | ||
+ | if input(" | ||
+ | say_hello | ||
+ | else: | ||
+ | say_goodbye | ||
+ | </ | ||
+ | |||
+ | ++++Lösung| | ||
+ | In der If-Verzweigung unten soll entweder die Funktion // | ||
+ | ++++ | ||
+ | \\ | ||
+ | ==== Problem 2 ==== | ||
+ | Was ist das Problem mit folgendem Code? | ||
+ | <code python> | ||
+ | import random | ||
+ | |||
+ | def wuerfel(): | ||
+ | return random.randint(1, | ||
+ | |||
+ | def drei_wuerfel(): | ||
+ | return wuerfel(), wuerfel(), wuerfel() | ||
+ | |||
+ | drei_wuerfel() | ||
+ | </ | ||
+ | |||
+ | ++++Lösung| | ||
+ | Wenn du den Code ausführst, siehst du, dass nichts passiert. Die Funktion // | ||
+ | '' | ||
+ | ++++ | ||
+ | \\ | ||
+ | |||
+ | ==== Problem 3 ==== | ||
+ | Was ist das Problem mit folgendem Code? | ||
+ | <code python> | ||
+ | import random | ||
+ | |||
+ | def wuerfel(): | ||
+ | return random.randint(1, | ||
+ | |||
+ | def drei_wuerfel(zahl): | ||
+ | return wuerfel() | ||
+ | return wuerfel() | ||
+ | return wuerfel() | ||
+ | |||
+ | print(drei_wuerfel()) | ||
+ | </ | ||
+ | |||
+ | ++++Lösung| | ||
+ | Die Funktion // | ||
+ | ++++ | ||
+ | |||
+ | \\ | ||
+ | ==== Problem 4 ==== | ||
+ | Welche beiden Zahlen gibt folgender Code aus? | ||
+ | <code python> | ||
+ | import math | ||
+ | a = 1 | ||
+ | b = 2 | ||
+ | |||
+ | def summe_quadrate1(a, | ||
+ | return a**2 + b**2 | ||
+ | |||
+ | def summe_quadrate2(x, | ||
+ | return a**2 + b**2 | ||
+ | | ||
+ | print(summe_quadrate1(4, | ||
+ | print(summe_quadrate2(4, | ||
+ | </ | ||
+ | |||
+ | ++++Lösung| | ||
+ | Der Code gibt erst 25, dann 5 aus. Wo liegt nun das Problem? Wenn du nur die letzte Zeile anschaust, würdest du erwarten, dass diese Zeile die Zahl 25 ausgibt (4 hoch 2 plus 3 hoch 2). Aber sie gibt 5 aus. Die Definition der Funktion // | ||
+ | * Variablen, die // | ||
+ | * Falls in der Definition der Funktion eine Variable definiert wird, die gleich heisst wie die globale Variable, handelt es sich dabei um zwei verschiedene Variablen! | ||
+ | |||
+ | **Merke:** Definiere Variablen, die du innerhalb einer Funktion verwendest, immer innerhalb der Funktion, nicht ausserhalb. | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | \\ | ||
+ | ==== Problem 5 ==== | ||
+ | Die Aufgabenstellung geht so: //Schreibe eine Funktion, die eine zufällige Zahl zwischen 1 und 10 zurückgibt.// | ||
+ | |||
+ | Wo liegt das Problem in folgendem Code mit Blick auf die Aufgabenstellung? | ||
+ | <code python> | ||
+ | import random | ||
+ | |||
+ | def zufallszahl(): | ||
+ | print random.randint(1, | ||
+ | | ||
+ | print(zufallszahl()) | ||
+ | </ | ||
+ | |||
+ | ++++Lösung| | ||
+ | Die Funktion `zufallszahl()` gibt keinen Wert // | ||
+ | |||
+ | **Merke:** | ||
+ | * Wenn verlangt ist, dass eine Funktion etwas // | ||
+ | * Wenn verlangt ist, dass eine Funktion etwas // | ||
+ | ++++ |