Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf20:programmieren:selektion [2020/10/22 07:05] – Ivo Blöchliger | lehrkraefte:blc:informatik:glf20:programmieren:selektion [2020/10/23 09:35] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Selektion: if, if/else, if/ | ||
| + | Programme sollen auf unterschiedliche Eingaben oder Zustände unterschiedliche reagieren können. Dies wird mit '' | ||
| + | |||
| + | <WRAP todo> | ||
| + | Kopieren, testen und verstehen Sie folgenden Code: | ||
| + | <code python> | ||
| + | # Ganze Zahl einlesen | ||
| + | zahl = inputInt(" | ||
| + | |||
| + | # Der Abstand um das '>' | ||
| + | # Der Doppelpunkt am Ende der if-Zeile muss stehen | ||
| + | # Danach wird der Code eingerückt. | ||
| + | if zahl > 10: | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP info> | ||
| + | Nach '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''< | ||
| + | Bedingungen können negiert und verknüpft werden: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | True oder False? Bei den letzen beiden Aufgaben **nicht rechnen**, sondern überlegen! | ||
| + | <quizlib id=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP info> | ||
| + | Mit '' | ||
| + | <code python> | ||
| + | a = 4 | ||
| + | if a<3: | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | </ | ||
| + | Es ist auch möglich, mit '' | ||
| + | <code python> | ||
| + | name = " | ||
| + | if name==" | ||
| + | print(" | ||
| + | elif name==" | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP todo> | ||
| + | Schreiben Sie ein Programm, das eine Aussentemperatur einliest und dann die Temperatur in Worten ausgibt, z.B. " | ||
| + | |||
| + | Beispiel einer Ausgabe | ||
| + | <code text> | ||
| + | -8°C ist kalt. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP todo> | ||
| + | Schreiben die ein Programm, das die allgemeine lineare Gleichung $ax + b = 0$ löst. Das Programm soll die Koeffizienten $a$ und $b$ einlesen und die Lösung ausgeben. Behandeln Sie auch den Spezialfall, | ||
| + | </ | ||
| + | |||
| + | <hidden Aufgabe, wenn die Lösung der quadratischen Gleichung schon behandelt wurde> | ||
| + | <WRAP todo> | ||
| + | Schreiben Sie ein Programm, das die quadratische Gleichung $ax^2+bx+c=0$ löst. Die Koeffizienten $a$, $b$ und $c$ sollen am Anfang direkt im Programmcode definiert werden. | ||
| + | |||
| + | Unterscheiden Sie dazu die unterschiedlichen Fälle, die auftreten können und melden Sie die Anzahl der Lösungen und die Lösungen selbst. | ||
| + | |||
| + | Starten Sie Ihr Programm wie folgt: | ||
| + | <code python> | ||
| + | # Definition der Koeffizienten in einer Zeile, durch Kommas getrennt. | ||
| + | a,b,c = 4,2,-3 | ||
| + | print(" | ||
| + | </ | ||
| + | Beispiel-Ausgaben: | ||
| + | <code text> | ||
| + | Gleichung 4.00x^2+2.00x-3.00 = 0 | ||
| + | Zwei Lösungen x1=-1.151388 und x2=0.651388 | ||
| + | |||
| + | Gleichung 1.00x^2+2.00x+1.00 = 0 | ||
| + | Genau eine Lösung x=-1.000000 | ||
| + | |||
| + | Gleichung 1.00x^2+2.00x+3.00 = 0 | ||
| + | Keine reelle Lösung | ||
| + | |||
| + | Gleichung 0.00x^2+1.00x+2.00 = 0 | ||
| + | Lineare Gleichung, eine Lösung: x=-2.000000 | ||
| + | |||
| + | Gleichung 0.00x^2+0.00x+1.00 = 0 | ||
| + | Falsche Aussage, keine Lösung | ||
| + | |||
| + | Gleichung 0.00x^2+0.00x+0.00 = 0 | ||
| + | Wahre Aussage, L=R, jedes x ist Lösung | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP info> | ||
| + | Der **Modulo-Operator** '' | ||
| + | |||
| + | Werden Zahlen mit '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | **FIZZ BUZZ!** Programmieren Sie ein Programm, das alle Zahlen von 1 bis 100 ausgibt, aber alle jene, die durch 3 teilbar sind durch '' | ||
| + | <hidden Verlangte Ausgabe bis 30> | ||
| + | <code text> | ||
| + | 1 | ||
| + | 2 | ||
| + | fizz | ||
| + | 4 | ||
| + | buzz | ||
| + | fizz | ||
| + | 7 | ||
| + | 8 | ||
| + | fizz | ||
| + | buzz | ||
| + | 11 | ||
| + | fizz | ||
| + | 13 | ||
| + | 14 | ||
| + | fizz buzz | ||
| + | 16 | ||
| + | 17 | ||
| + | fizz | ||
| + | 19 | ||
| + | buzz | ||
| + | fizz | ||
| + | 22 | ||
| + | 23 | ||
| + | fizz | ||
| + | buzz | ||
| + | 26 | ||
| + | fizz | ||
| + | 28 | ||
| + | 29 | ||
| + | fizz buzz | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Optionale, weitere Aufgaben ===== | ||
| + | * Geben Sie alle Teiler einer Zahl aus. | ||
| + | * Geben Sie die Primfaktorzerlegung einer Zahl aus. | ||
| + | * Bestimmen Sie, ob eine gegebene Zahl eine Primazahl ist oder nicht. | ||
| + | * Geben Sie die Primzahlen der Reihe nach aufsteigend aus. | ||
| + | |||
| + | ===== Lösungsvorschläge ===== | ||
| + | <hidden Lösungvorschläge> | ||
| + | <code python> | ||
| + | for i in range(1, | ||
| + | if i % 3 == 0 and i % 5 == 0: | ||
| + | print(" | ||
| + | elif i % 3 == 0: | ||
| + | print(" | ||
| + | elif i % 5 == 0: | ||
| + | print(" | ||
| + | else: | ||
| + | print(i) | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | t = inputInt(" | ||
| + | text = "%d°C ist " % t | ||
| + | if (t< | ||
| + | text += " | ||
| + | elif t<25: | ||
| + | text += " | ||
| + | else: | ||
| + | text += " | ||
| + | |||
| + | print(text+" | ||
| + | </ | ||
| + | |||
| + | <code python> | ||
| + | # Definition der Koeffizienten | ||
| + | a,b,c = 0,0,0 | ||
| + | print(" | ||
| + | |||
| + | if a==0: # Lineare Gleichung | ||
| + | if b==0: # Gleichung ohne x | ||
| + | if c==0: | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | else: | ||
| + | print(" | ||
| + | else: # Quadratische Gleichung | ||
| + | d = b*b-4*a*c | ||
| + | if (d<0): | ||
| + | print(" | ||
| + | elif d==0: | ||
| + | print(" | ||
| + | else: | ||
| + | d = d**0.5 # Wurzel aus der Diskriminante | ||
| + | x1 = (-b-d)/ | ||
| + | x2 = (-b+d)/ | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||