Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_ii_sca [2025-05-21 20:22] – [Aufgabe] scagf_informatik:programmieren_ii_sca [2025-05-27 09:15] (aktuell) – [Kapitel V: Modern Art] sca
Zeile 1536: Zeile 1536:
 r = random.randint(10,200) # generiert Zufallszahl im Bereich 10 bis 200$ r = random.randint(10,200) # generiert Zufallszahl im Bereich 10 bis 200$
 </code></WRAP> </code></WRAP>
 +
 +++++Lösung Modern Art mit Quadraten und Dreiecken|
 +
 +<code python>
 +from gturtle import *
 +import random
 +
 +turi = Turtle()
 +turi.hideTurtle()
 +
 +colors = ['red','blue','green','yellow','purple','black']
 +#                1      2        3             5
 +
 +def dreieck(x,y):
 +    r_width = random.randint(3,7)
 +    turi.setPenWidth(r_width)
 +    
 +    r_pen_col = random.randint(0,len(colors)-1)
 +    turi.setPenColor(colors[r_pen_col])
 +    
 +    r_fill_col = random.randint(0,len(colors)-1)
 +    turi.setFillColor(colors[r_fill_col])
 +    
 +    r_side = random.randint(40,150)
 +    
 +    turi.setPos(x,y)
 +    turi.startPath()
 +    for i in range(3):
 +        turi.forward(r_side)
 +        turi.left(120)
 +    
 +    turi.fillPath()
 +
 +
 +def quadrat(x,y):
 +    r_width = random.randint(10,30)
 +    turi.setPenWidth(r_width)
 +    
 +    r_pen_col = random.randint(0,len(colors)-1)
 +    turi.setPenColor(colors[r_pen_col])
 +    
 +    r_fill_col = random.randint(0,len(colors)-1)
 +    turi.setFillColor(colors[r_fill_col])
 +    
 +    r_side = random.randint(20,150)
 +    
 +    turi.setPos(x,y)
 +    turi.startPath()
 +    for i in range(4):
 +        turi.forward(r_side)
 +        turi.left(90)
 +    
 +    turi.fillPath()
 +
 +r_anz_figs = random.randint(30,40)
 +
 +for i in range(r_anz_figs):
 +    x_rand = random.randint(-300,300)
 +    y_rand = random.randint(-200,200)
 +
 +    r_figur = random.randint(0,1)
 +    if r_figur == 0:
 +        quadrat(x_rand,y_rand)
 +    else:
 +        dreieck(x_rand,y_rand)
 +</code>
 +
 +++++
  
 ==== - Aufgaben (Funktionen) ==== ==== - Aufgaben (Funktionen) ====
  
-=== Aufgabe ===+=== Aufgabe Würfelvolumen ===
  
 Definiere eine Funktion mit einem Argument `volume_cube(x)`, die das Volumen eines Würfels mit Seitenlänge $x$ (in cm) berechnet und zurückgibt (also NICHT printed). Speichere das Resultat in einer Variablen und gib es dann aus. Definiere eine Funktion mit einem Argument `volume_cube(x)`, die das Volumen eines Würfels mit Seitenlänge $x$ (in cm) berechnet und zurückgibt (also NICHT printed). Speichere das Resultat in einer Variablen und gib es dann aus.
Zeile 1556: Zeile 1624:
  
 ++++ ++++
-=== Aufgabe ===+ 
 +=== Aufgabe Kugelvolumen ===
  
 Das Volumen einer Kugel mit Radius $R$ ist: $$V = \frac{4\pi}{3}\cdot R^3$$ Das Volumen einer Kugel mit Radius $R$ ist: $$V = \frac{4\pi}{3}\cdot R^3$$
 Definiere eine Funktion `volume_sphere(...)`, der man als Argument den Radius übergibt und die dann das Volumen zurückgibt. Die Kreiszahl Pi ($\pi$) kannst du mit `math.pi` aufrufen, dazu muss aber auch wieder zuerst das math-Modul importiert werden (`import math`). Definiere eine Funktion `volume_sphere(...)`, der man als Argument den Radius übergibt und die dann das Volumen zurückgibt. Die Kreiszahl Pi ($\pi$) kannst du mit `math.pi` aufrufen, dazu muss aber auch wieder zuerst das math-Modul importiert werden (`import math`).
  
-=== Aufgabe ===+++++Lösung| 
 + 
 +<code python> 
 +import math 
 + 
 +def volume_sphere(r): 
 +    return 4 * math.pi / 3 * r**3 
 + 
 +vol = volume_sphere(5) 
 +print(vol) 
 +</code> 
 + 
 +++++ 
 + 
 +=== Aufgabe Notenberechnung ===
  
 Schreibe eine Funktion `grade(points)`, die dir die Note (grade) für eine gegebene Punktzahl berechnet und zurückgibt. Lege die Punktzahl, die für die Note $6$ notwendig ist in einer Konstanten (wie Variable, aber alles Grossbuchstaben) fest. Die Formel geht wie folgt: Schreibe eine Funktion `grade(points)`, die dir die Note (grade) für eine gegebene Punktzahl berechnet und zurückgibt. Lege die Punktzahl, die für die Note $6$ notwendig ist in einer Konstanten (wie Variable, aber alles Grossbuchstaben) fest. Die Formel geht wie folgt:
Zeile 1570: Zeile 1653:
    * Erreicht man mehr Punkte als notwendig für Note 6, soll man trotzdem die Note 6 erhalten.    * Erreicht man mehr Punkte als notwendig für Note 6, soll man trotzdem die Note 6 erhalten.
  
-=== Aufgabe ===+++++Lösung| 
 + 
 +<code python> 
 +POINTS_FOR_SIX = 22 
 + 
 +def grade(points): 
 +    g = round(5 * points / POINTS_FOR_SIX + 1,2) 
 +    if g > 6: 
 +        return 6 
 +    return g # kann auch vorher noch else: schreiben, macht keinen Unterschied 
 + 
 +print(grade(0)) 
 +print(grade(20)) 
 +print(grade(22)) 
 +print(grade(24)) 
 +</code> 
 + 
 +++++ 
 + 
 + 
 +=== Aufgabe Liste mit Vielfachen ===
  
 Schreibe eine Funktion `liste_vielfache(vv,anzahl)`, welche zwei Zahlen als Inputs verlangt. Es soll eine Liste mit der Anzahl `anz` der Vielfachen der Zahl `vv` erstellt werden und zurückgegeben (nicht geprintet!) werden. Zum Beispiel soll `liste_vielfache(3,5)` die Liste `[3,6,9,12,15]` zurückgeben. Schreibe eine Funktion `liste_vielfache(vv,anzahl)`, welche zwei Zahlen als Inputs verlangt. Es soll eine Liste mit der Anzahl `anz` der Vielfachen der Zahl `vv` erstellt werden und zurückgegeben (nicht geprintet!) werden. Zum Beispiel soll `liste_vielfache(3,5)` die Liste `[3,6,9,12,15]` zurückgeben.
  
-=== Aufgabe ===+++++Lösung| 
 + 
 +<code python> 
 +def liste_vielfache(vv,anzahl): 
 +    li = [] # Wichtig, dass in und NICHT ausserhalb der Funktion definiert wird. Warum? 
 +    for i in range(1,anzahl+1): 
 +        li.append(i*vv) 
 +    return li 
 +     
 +print(liste_vielfache(3,5)) 
 +</code> 
 + 
 +++++ 
 + 
 +=== Aufgabe Fakutltät ===
  
 Die **Fakultät** ist eine Funktion, welche jeder ganzen natürlichen Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner und gleich dieser Zahl zuordnet. Sie wird mit einem Ausrufezeichen geschrieben. Als Beispiel: $5!=1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 =120$. Die **Fakultät** ist eine Funktion, welche jeder ganzen natürlichen Zahl das Produkt aller natürlichen Zahlen (ohne Null) kleiner und gleich dieser Zahl zuordnet. Sie wird mit einem Ausrufezeichen geschrieben. Als Beispiel: $5!=1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 =120$.
  
-Schreibe eine Funktion `faculty(...)`, welcher als Argument eine ganze Zahl übergeben wird und welche dir dann die Fakultät dieser Zahl zurückgibt.+Schreibe eine Funktion `factorial(...)`, welcher als Argument eine ganze Zahl übergeben wird und welche dir dann die Fakultät dieser Zahl zurückgibt.
  
 **Optionale Challenge für absolute Freaks**: Kannst du die Fakultät ganz ohne Schleife berechnen? Dann hast du das Prinzip der *Rekursion* (Selbst-Aufruf) entdeckt! **Optionale Challenge für absolute Freaks**: Kannst du die Fakultät ganz ohne Schleife berechnen? Dann hast du das Prinzip der *Rekursion* (Selbst-Aufruf) entdeckt!
  
-=== Aufgabe (Zusatzaufgabe) ===+++++Lösung| 
 + 
 +<code python> 
 +def factorial(n): 
 +    p = 1 
 +    for i in range(1,n+1): 
 +        p = p * i 
 +    return p 
 + 
 +print(factorial(0)) 
 +print(factorial(1)) 
 +print(factorial(2)) 
 +print(factorial(3)) 
 +print(factorial(4)) 
 +print(factorial(5)) 
 +</code> 
 + 
 +++++ 
 + 
 +=== Aufgabe Mitternachtsformel (Zusatzaufgabe) ===
  
-**Mitternachtsformel:** Eine quadratische Funktion kann immer in die Form $$ax^2 + bx + c = 0$$ gebracht werden. Die Lösung ist gegeben durch:+Eine quadratische Funktion kann immer in die Form $$ax^2 + bx + c = 0$$ gebracht werden. Die Lösung ist gegeben durch die sogenannte **Mitternachtsformel**:
 $$x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$$ $$x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$$
  
Zeile 1599: Zeile 1735:
    * $x^2 - 4 x + 4 = 0$ hat eine Lösung: $2$    * $x^2 - 4 x + 4 = 0$ hat eine Lösung: $2$
    * $x^2 + 2 x + 7 = 0$ hat keine Lösung    * $x^2 + 2 x + 7 = 0$ hat keine Lösung
 +
 +
 +++++Lösung|
 +
 +<code python>
 +def mitternachtsformel(a,b,c):
 +    d = b**2 - 4*a*c
 +    if d < 0:
 +        return []
 +    elif d == 0:
 +        return [-b/(2*a)]
 +    else:
 +        return [(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a)]
 +    
 +print(mitternachtsformel(3,-6,-5))
 +print(mitternachtsformel(1,-4,4))
 +print(mitternachtsformel(1,2,7))
 +
 +</code>
 +
 +++++
  
  
  
  • gf_informatik/programmieren_ii_sca.1747858935.txt.gz
  • Zuletzt geändert: 2025-05-21 20:22
  • von sca