lehrkraefte:snr:informatik:bruehl-2022:funktionen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:bruehl-2022:funktionen [2022/03/25 10:08]
Olaf Schnürer [Aufgabe 8, Mäander (Ornamentik), mehrere Funktionen kombinieren]
lehrkraefte:snr:informatik:bruehl-2022:funktionen [2022/04/02 13:23] (current)
Olaf Schnürer [Zusammenfassung]
Line 8: Line 8:
  
   * Funktionen oder: Wie man grössere Programm übersichtlich gestaltet: modularer Entwurf, Baukastenprinzip.   * Funktionen oder: Wie man grössere Programm übersichtlich gestaltet: modularer Entwurf, Baukastenprinzip.
-  * Nebenbei: Rechnen mit Strings (= Zeichenketten)+
 ===== Aufgabe 1 ===== ===== Aufgabe 1 =====
  
Line 72: Line 72:
 ^ ohne Rückgabewert | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_2_funktionen_ohne_parameter_und_ohne_rueckgabewert_definieren|Aufgabe 2]] | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_3_funktionen_mit_einem_parameter_und_ohne_rueckgabewert_definieren|Aufgabe 3]] | ^ ohne Rückgabewert | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_2_funktionen_ohne_parameter_und_ohne_rueckgabewert_definieren|Aufgabe 2]] | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_3_funktionen_mit_einem_parameter_und_ohne_rueckgabewert_definieren|Aufgabe 3]] |
 ^ | ''quadrat100'', ''dreieck100'' | ''quadrat'', ''vieleck'' | ^ | ''quadrat100'', ''dreieck100'' | ''quadrat'', ''vieleck'' |
-^ mit Rückgabewert | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_5_funktionen_ohne_parameter_und_mit_rueckgabewert_definieren|Aufgabe 5]] | [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_6_funktionen_mit_parameter_und_mit_rueckgabewert_definieren|Aufgaben 6]] [[lehrkraefte:snr:informatik:bruehl-2022:funktionen#aufgabe_7_funktionen_mit_parameter_und_mit_rueckgabewert_definieren|und 7]] |  
-^ | ''buchstabeZ'', ''meinAnfangsBuchstabe'' | ''konvertiereFahrenheitInCelsius'', ''laengeDiagonale'', ''brief'' | 
 </WRAP> </WRAP>
  
Line 179: Line 177:
 (Für das Folgende kannst du entweder ein neues Programm schreiben oder das obige Programm in eine neues Programmierfenster kopieren und modifizieren.) (Für das Folgende kannst du entweder ein neues Programm schreiben oder das obige Programm in eine neues Programmierfenster kopieren und modifizieren.)
  
-Schreibe nun selbst eine Funktion ''vieleck'', die einen Parameter ''n'' entgegennimmt und ein regelmässiges $n$-Eck der Seitenlänge 50 zeichnet; die Turtle soll am Ende im selben Zustand wie am Anfang sein. Nutze deine Funktion, um die folgende Figur zu zeichnen (ein Dreieck in einem Viereck in einem Fünfeck ... undsoweiter ... in einem 11-Eck).+Schreibe nun selbst eine Funktion ''vieleck'', die einen Parameter ''n'' entgegennimmt und ein regelmässiges $n$-Eck der Seitenlänge 50 zeichnet; die Turtle soll am Ende im selben Zustand wie am Anfang sein. Nutze deine Funktion, um die folgende Figur zu zeichnen (ein Dreieck in einem Viereck in einem Fünfeck ... undsoweiter ... in einem 13-Eck).
  
 {{:lehrkraefte:snr:informatik:bruehl-2022:vielecke.png?200|}} {{:lehrkraefte:snr:informatik:bruehl-2022:vielecke.png?200|}}
Line 247: Line 245:
  
 <WRAP center round todo 100%> <WRAP center round todo 100%>
-  * Aufgabe (Mäander) oder eine Variation deiner Wahl davon von ähnlicher Schwierigkeit+  * Aufgabe (Mäander) oder eine Variation deiner Wahl davon von ähnlicher Schwierigkeit
  
 Abgabe bis **spätestens Sonntagabend 23:59 Uhr** vor der nächsten Doppellektion über den folgenden Link: Abgabe bis **spätestens Sonntagabend 23:59 Uhr** vor der nächsten Doppellektion über den folgenden Link:
Line 261: Line 259:
   * Wie unterscheiden sich Funktionsaufruf und Funktionsdefinition?   * Wie unterscheiden sich Funktionsaufruf und Funktionsdefinition?
   * Was ist ein Parameter?   * Was ist ein Parameter?
-  * Was ist ein Rückgabewert? 
  
 ===== Struktur von Programmen ==== ===== Struktur von Programmen ====
Line 347: Line 344:
   * Funktionen dienen der besseren Strukturierung von Programmen.   * Funktionen dienen der besseren Strukturierung von Programmen.
   * Sie sind besonders nützlich, wenn man gewisse Programmteile mehrfach verwenden möchte.   * Sie sind besonders nützlich, wenn man gewisse Programmteile mehrfach verwenden möchte.
-  * Teilweise: Ich weiss, wie man mit Strings rechnet (Addition zweier Strings, Multiplikation eines Strings mit einer Zahl) und was ''"\n"'' bedeutet. +  * <del>Teilweise: Ich weiss, wie man mit Strings rechnet (Addition zweier Strings, Multiplikation eines Strings mit einer Zahl) und was ''"\n"'' bedeutet. 
-</hidden>+</del></hidden>
  
  
Line 360: Line 357:
  
  
-===== Bonusaufgabe 1 (leicht), Funktionen mit mehreren Parametern und ohne Rückgabewert definieren ===== 
  
-<WRAP center round todo 100%> 
-**Einzelarbeit, ca. 6 Minuten** 
- 
-Genauso kann man Funktionen mit mehreren Parametern definieren: 
-Ergänze den folgenden Code um die Definition der Funktion ''polygon'' mit vier Parametern ''n'', ''dicke'', ''farbe'', ''s'', so dass die Zeichnung rechts entsteht.((Polygon ist das Fremdwort für //Vieleck//, von griechisch πολυς polys //viel// und γωνια gonia //Ecke// oder //Winkel//.)) 
-<WRAP left round box 50%> 
-<code python> 
-from gturtle import * 
- 
-def polygon(n, dicke, farbe, s): 
-# Rest der Funktionsdefinition zu ergänzen 
-        
-makeTurtle() 
-hideTurtle() 
-polygon(7, 12, "green", 140) 
-polygon(5, 10, "red", 120) 
-polygon(3, 8, "blue", 100) 
-</code> 
-</WRAP> 
-<WRAP right round box 40%> 
-{{:lehrkraefte:snr:informatik:bruehl-2022:several-polygons.png?200|}} 
-</WRAP> 
-</WRAP> 
- 
-===== Bonusaufgabe 2 (leicht), Funktionen mit mehreren Parametern und mit Rückgabewert definieren ===== 
- 
-<WRAP center round todo 100%> 
-**Einzelarbeit, ca. 8 Minuten** 
- 
-Schreibe eine Funktion ''hypotenuse'', die die Länge der beiden Katheten eines rechtwinkligen Dreiecks vom Benutzer entgegennimmt und die Länge der Hypotenuse berechnet (mit Hilfe des Satzes des Pythagoras). 
- 
-Die Ausgabe soll wieder gut lesbar sein und beispielsweise wie folgt aussehen.  
-<code text> 
-Kathetenlängen: 3 und 4 
-Länge der Hypotenuse: 5 
-</code> 
- 
-Hinweis: Die Funktion ''sqrt'' liefert die Quadratwurzel (dabei steht "sqrt" für englisch "square root", also "Quadratwurzel). Beispielsweise liefert ''sqrt(2)'' die Zahl ''1.414213...''. 
-<hidden Hier ist die Formel versteckt, damit es nicht daran scheitert...> 
-Wenn die beiden Katheten (= "kurzen Seiten") in einem rechtwinkligen Dreieck die Längen ''a'' und ''b'' haben, so hat die Hypotenuse (= "längste Seite", dem rechten Winkel gegenüberliegend) die Länge 
-<WRAP center round box 100%> 
-$$c = \sqrt{a^2+b^2}$$ 
-</WRAP> 
- 
-</hidden> 
-</WRAP> 
  
-===== Bonusaufgabe 3: Kreis aus St. Galler Wappen oder Blumen =====+===== Bonusaufgabe: Kreis aus St. Galler Wappen oder Blumen =====
  
 <WRAP center round todo 100%> <WRAP center round todo 100%>
Line 634: Line 584:
 ===== Lösungsvorschläge ===== ===== Lösungsvorschläge =====
  
-<hidden zu ergänzen>+<hidden Aufgabe 2>
 <code python> <code python>
 +from gturtle import *
 +
 +# In der folgenden Zeile beginnt die Definition der Funktion
 +def quadrat100():
 +    repeat 4:
 +        forward(100)
 +        right(90)
 +
 +def dreieck100():
 +    repeat 3:
 +        forward(100)
 +        left(120)
 +        
 +# In der folgenden Zeile beginnt das Hauptprogramm
 +makeTurtle()
 +# hideTurtle()
 +
 +# Erstes Muster
 +repeat 6:
 +    dreieck100()
 +    right(60)
 +   
 +# Bewege nach rechts
 +penUp() 
 +right(90)
 +forward(370)
 +left(90)
 +penDown()
 +
 +# Zweites Muster
 +repeat 6:
 +    dreieck100()
 +    quadrat100()
 +    forward(100)
 +    left(360/6)
 </code> </code>
 </hidden> </hidden>
 +
 +<hidden Aufgabe 3>
 +<code python>
 +from gturtle import *
 +
 +def vieleck(x):
 +    repeat x:
 +        forward(50)
 +        right(360/x)
 +
 +makeTurtle()
 +# hideTurtle()
 +
 +n = 3
 +repeat 11:
 +    vieleck(n)
 +    n = n + 1
 +</code>
 +</hidden>
 +
 +<hidden Aufgabe 4, Lösung von Vanessa (nur ''showTurtle()'' auskommentiert)>
 +<code python>
 +from gturtle import*
 +
 +def ornament():
 +    forward(60)
 +    right(90)
 +    forward(40)
 +    right(90)
 +    forward(20)
 +    right(90)
 +    forward(20)
 +    left(90)
 +    forward(20)
 +    left(90)
 +    forward(40)
 +    left(90)
 +    forward(60)
 +    left(90)
 +    forward(60)
 +    right(90)
 +    
 +
 +def wiederholeOrnament(n):
 +    repeat n: 
 +        ornament()
 +
 +def eckBewegung():
 +    left(90)
 +    forward(20)
 +    left(90)
 +    forward(60)
 +    right(90)
 +   
 +makeTurtle()
 +hideTurtle()
 +
 +penUp()
 +backward(230)
 +right(90)
 +backward(310)
 +penDown()
 +setPenColor("black")
 +penWidth(10)
 +#showTurtle()
 +repeat 2:
 +    wiederholeOrnament(8)
 +    eckBewegung()
 +    wiederholeOrnament(6)
 +    eckBewegung()
 +</code>
 +</hidden>
 +
  
 <hidden Kreis aus St. Galler Wappen> <hidden Kreis aus St. Galler Wappen>
  • lehrkraefte/snr/informatik/bruehl-2022/funktionen.1648199307.txt.gz
  • Last modified: 2022/03/25 10:08
  • by Olaf Schnürer