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:09]
Olaf Schnürer [Bonusaufgabe 2 (leicht), Funktionen mit mehreren Parametern und mit Rückgabewert definieren]
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 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 362: Line 359:
  
  
-===== 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 587: 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.1648199387.txt.gz
  • Last modified: 2022/03/25 10:09
  • by Olaf Schnürer