Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:programmieren_ii:problems [2022-12-10 10:19] – angelegt gra | gf_informatik:programmieren_ii:problems [2022-12-21 07:29] (aktuell) – [Probleme 1...5] gra | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
==== Programmieren 2 – Probleme ==== | ==== Programmieren 2 – Probleme ==== | ||
=== Probleme 1...5 === | === Probleme 1...5 === | ||
+ | In jedem der folgenden Codes hat es jeweils einen Fehler bzw. ein Problem. | ||
+ | - Finde das Problem. Du kannst den Code auch kopieren und in TigerJython testen, was passiert. | ||
+ | - Beschreibe das Problem in eigenen Worten. | ||
+ | - Behebe das Problem und teste, ob der Code läuft. | ||
+ | |||
+ | <code python Problem_01.py> | ||
+ | input(" | ||
+ | if input >= 0: | ||
+ | print(" | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | Das Problem liegt in der ersten Zeile und in der darauffolgenden if-Bedingung: | ||
+ | <code python> | ||
+ | zahl = input(" | ||
+ | </ | ||
+ | In der folgenden if-Verzweigung muss die Bedingung dann so aussehen: | ||
+ | <code python> | ||
+ | if zahl >= 0: | ||
+ | </ | ||
+ | Alternativ könntest du auch die vollständige '' | ||
+ | <code python> | ||
+ | if input(" | ||
+ | </ | ||
+ | Der Nachteil an dieser Methode: Der von der Benutzer:in eingegbene Wert ist nur hier in der Bedingung verfügbar: Weil er nicht in einer Variable gespeichert wird, könntest du weiter unten im Code nicht mehr auf den Wert zugreifen. Diese Methode eignet sich also nur dann, wenn du den von der Benutzer:in eingegbenen Wert nur ein einziges Mal vergleichen möchtest. | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ | ||
+ | <code python Problem_02.py> | ||
+ | eingabe = input(" | ||
+ | if eingabe >= 0: | ||
+ | print(" | ||
+ | elif eingabe == 0: | ||
+ | print(" | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | Das Problem ensteht hier, wenn die Benutzer:in die Zahl 0 eingibt: Dann gibt das Programm nicht "Zahl ist 0" aus, sondern "Zahl ist positiv" | ||
+ | <code python Problem_02.py> | ||
+ | ... | ||
+ | if eingabe > 0: | ||
+ | print(" | ||
+ | ... | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | <code python Problem_03.py> | ||
+ | from gturtle import * | ||
+ | Options.setPlaygroundSize(400, | ||
+ | Michelangelo = Turtle() | ||
+ | |||
+ | figur = input(" | ||
+ | |||
+ | if figur == " | ||
+ | Michelangelo.rightArc(50, | ||
+ | if figur == " | ||
+ | repeat 4: | ||
+ | Michelangelo.forward(50) | ||
+ | Michelangelo.right(90) | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | Das Problem ensteht hier, wenn die Benutzer:in " | ||
+ | <code python> | ||
+ | if figur == " | ||
+ | Michelangelo.rightArc(50, | ||
+ | elif figur == " | ||
+ | repeat 4: | ||
+ | Michelangelo.forward(50) | ||
+ | Michelangelo.right(90) | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | <code python Problem_04.py> | ||
+ | from gturtle import * | ||
+ | Options.setPlaygroundSize(400, | ||
+ | Michelangelo = Turtle() | ||
+ | |||
+ | figur = input(" | ||
+ | |||
+ | if figur == Kreis: | ||
+ | Michelangelo.rightArc(50, | ||
+ | elif figur == Quadrat: | ||
+ | repeat 4: | ||
+ | Michelangelo.forward(50) | ||
+ | Michelangelo.right(90) | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | Dieser Code ergibt eine Fehlermeldung bei der if-Bedingung. Denn hier wird die Variable namens '' | ||
+ | ++++ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | <code python Problem_05.py> | ||
+ | # Wo liegt das Problem? | ||
+ | from gturtle import * | ||
+ | Options.setPlaygroundSize(400, | ||
+ | Michelangelo = Turtle() | ||
+ | |||
+ | figur = input(" | ||
+ | Kreis = Michelangelo.rightArc(50, | ||
+ | |||
+ | if figur == " | ||
+ | Kreis | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <nodisp 1> | ||
+ | ++++Lösung| | ||
+ | Dieser Code gibt eine Fehlermeldung beim " | ||
+ | Das Problem besteht aber schon weiter oben in dieser Zeile: | ||
+ | <code python> | ||
+ | Kreis = Michelangelo.rightArc(50, | ||
+ | </ | ||
+ | Hier wird wohl versucht, eine Funktion, die einen Kreis zeichnet, in einer Variable zu speichern. Das ist nicht möglich. In Variablen kannst du nur //Werte// speichern – auch Werte, die von Funktionen zurückgegeben werden. Also: | ||
+ | <code python> | ||
+ | Kreis = Michelangelo.rightArc(50, | ||
+ | figur = input(" | ||
+ | </ | ||
+ | ++++ | ||
+ | </ | ||