Sie sind auf Seite 1von 14

Vorkurs Informatik / Komedia

Programmieren (2): Funktionen

Fakultät Informatik, Campus Duisburg


In diesem Kapitel

 Definition eigener „Befehle“


➢ Funktionen im Sinne der
Informatik

➢ das Element zur Strukturierung


von Programmen

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 2


Zum Sprachgebrauch

 Begriffe mit ähnlicher Bedeutung:


▪ Unterprogramm
▪ Funktion
▪ Methode
▪ Prozedur
▪ Routine
▪ Sub-Routine
➢ Wenn es um Details geht, gibt es Unterschiede
▪ auch von der Programmiersprache abhängig
▪ Im Vorkurs: erst einmal nicht so wichtig…

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 3


So geht‘s: Funktion definieren und verwenden
zwei Beispiele
import turtle import turtle
#-- Definition der Funktion #-- Definition der Funktion
def square80(theTurtle): def squareN(theTurtle, x):
theTurtle.fd(80) theTurtle.fd(x)
theTurtle.lt(90) theTurtle.lt(90)
theTurtle.fd(80) theTurtle.fd(x)
theTurtle.lt(90) theTurtle.lt(90)
theTurtle.fd(80) theTurtle.fd(x)
theTurtle.lt(90) theTurtle.lt(90)
theTurtle.fd(80) theTurtle.fd(x)
theTurtle.lt(90) theTurtle.lt(90)
#-- Hauptprogramm #-- Hauptprogramm
tina = turtle.Turtle() tina = turtle.Turtle()
square80(tina) squareN(tina, 80)
turtle.done() turtle.done()

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 4


So geht‘s: Funktion definieren

def meineFunktion(par1,...,parN):

 Beginn der Definition mit dem Schlüsselwort def


 Den Funktionsnamen können Sie (nach gewissen Regeln) frei wählen.
 Auflistung der Parameter in runden Klammern, Trennung durch Komma
▪ mit den Namen, die Sie für die Parameter vergeben, können Sie die
Parameter innerhalb der Funktion verwenden
 Abschluss der Zeile mit einem Doppelpunkt
 Es folgt der Code für die Funktion mit Einrückung.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 5


Wissenswert: Parameter

 Parameter
▪ sind Platzhalter für Werte, die jedes Mal anders sein können
▪ werden bei der Definition einer Funktion hinter dem Namen in Klammern
angegeben
▪ werden innerhalb der Klammern durch Kommata getrennt
def meineFunktion(par1, ..., parN):
Code-Block (eine oder mehrere
eingerückte Zeilen Python Code, in
denen par1, ..., parN verwendet werden)

 Parameternamen
▪ sind frei wählbar (nach gewissen Regeln)
▪ sollten die Bedeutung widerspiegeln.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 6


So geht‘s: Funktion aufrufen

 Angenommen es wurde folgende Funktion definiert:


def meineFunktion(par1,...,parN):
Code-Block (eine oder mehrere
eingerückte Zeilen python Code)

 Der Aufruf erfolgt mit Argumenten


meineFunktion(a1,...,aN)

▪ Man gibt in Klammern die Werte an, die die Parameter haben sollen.
▪ Überall, wo im Code-Block ein Parameter-Name steht, wird bei der
Ausführung der Wert des entsprechenden Arguments eingesetzt.
▪ Bei mehreren Parametern werden die Werte durch Kommata getrennt in der
gleichen Reihenfolge angegeben wie in der Funktionsdefinition.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 7


ein Beispiel, nochmal genauer:
Funktion definieren und verwenden
import turtle Funktionsname: squareN
#-- Definition der Funktion
def squareN(theTurtle, x): 1. Parameter: theTurtle
theTurtle.fd(x) 2. Parameter: x
theTurtle.lt(90)
theTurtle.fd(x) 1. Argument: tina
theTurtle.lt(90) 2. Argument: 80
theTurtle.fd(x)
theTurtle.lt(90) ➢ Steht in der Funktionsdefinition
theTurtle, wird bei der Ausführung tina
theTurtle.fd(x) eingesetzt.
theTurtle.lt(90)
➢ Steht in der Funktionsdefinition x, wird bei
#-- Hauptprogramm der Ausführung der Wert 80 eingesetzt.
tina = turtle.Turtle()
squareN(tina, 80) ➢ Die Zahl der Argumente beim Aufruf muss
turtle.done() der Zahl der Parameter in der Definition
entsprechen.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 8


Aufgabe 2.1: Häuser zeichnen mit Funktion

 Schreiben Sie eine Funktion house()


und ergänzen Sie weitere Zeilen im import turtle
Hauptprogramm so, dass mit dem #-- Definition der Funktion
nebenstehenden Code folgendes Bild
def house(tuer, hoehe, farbe):
erzeugt wird:
# Hier Funktion schreiben
#-- Hauptprogramm
tina = turtle.Turtle()
tina.shape('turtle')
house(tina, 40, "red")
house(tina, 60, "blue")
turtle.done()

Breite der Häuser: 80


Breite der Tür: 40

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 9


Aufgabe 2.2*: ein ganzes Dorf

 Ändern Sie Ihre Funktion aus Aufgabe 2.1 so, dass Sie
damit Häuser unterschiedlicher Größe zeichnen können,
etwa so:

 oder so:

 … oder noch bunter und variabler, wie ein „richtiges“ Dorf

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 10


Aufgabe 2.3: Blümchen

a) Definieren Sie eine Funktion bogen(), mit der die Turtle


einen Bogen zeichnet und sich dabei insgesamt um 90 Grad
nach rechts dreht.

b) Ergänzen Sie das Programm mit der Funktion


blumenblatt(), welche zwei Bogen zeichnet. Am Ende
soll die Turtle soll wieder in Startrichtung stehen.

c) Ergänzen Sie das Programm so, dass blumenblatt() ein


farbig gefülltes Blatt zeichnet. Die Blattfarbe soll als
Parameter übergeben werden. Setzen Sie die Stiftfarbe auf
die Füllfarbe, damit die Umrandung die gleiche Farbe hat.

 Selbstverständlich darf die Doku genutzt werden ;-)


https://www.pythonsandbox.com/docs/turtle

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 11


Aufgabe 2.3: Blümchen (continued…)

d) Erweitern Sie das Programm mit der


Funktion blume(), dass eine 5-blättrige Blume
gezeichnet wird. Wenn Sie hideturtle()
verwenden, geht das Zeichnen noch schneller.

e) Ergänzen Sie die Blume mit einem Stiel.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 12


Aufgabe 2.4*: Unser Dorf soll schöner werden

Verwenden Sie Ihre Funktionen für


Häuser und Blumen aus den
vorangegangenen Aufgaben und lassen
Sie Ihre Turtle ein ganzes Bild von einem
blumengeschmückten Dorf zeichnen.

claudia.weis@uni-due.de Vorkurs INKO, Funktionen - 13


➢ jetzt live

Fragen? ➢


Foren im Moodle-Kurs
E-Mail
nach dem Vorkurs: LuDi

Das könnte Ihnen auch gefallen