H5 - Functies (deel 1): UITWERKINGEN
Opdracht 5.1 Onderdelen van een functie
benoemen
- naam van de functie:
round
- parameters: 3.14342 en 2
- type van parameters: een
float (kommagetal) en een int (geheel getal)
- variabele waarin de retourwaarde (het antwoord) wordt opgeslagen:
afgerond
- type van de retourwaarde (het antwoord): float (kommagetal)
Opdracht 5.2 Een functie
aanroepen
import turtle
### FUNCTIEDEFINITIE
#Definitie: Instructies voor het tekenen van een vierkant met grootte van 20
def tekenVierkant( ):
turtle.forward( 20 )
turtle.right(90)
turtle.forward( 20 )
turtle.right(90)
turtle.forward( 20 )
turtle.right(90)
turtle.forward( 20 )
turtle.right(90)
### HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE
turtle.pendown()
tekenVierkant()#Aanroep: teken een vierkant
turtle.right(45)
tekenVierkant() #Aanroep: teken een vierkant
turtle.done()
Opdracht 5.3 Een eigen functie maken: TekenSnoep()
import turtle
### FUNCTIEDEFINITIES
#teken snoep
def tekenSnoep():
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(30)
turtle.end_fill()
#teken stok
def tekenStok():
turtle.right(90)
turtle.forward(100)
### HOOFDPROGRAMMA
turtle.pendown()
tekenSnoep()
tekenStok()
turtle.done()
Opdracht 5.4 Figuurtje tekenen
- Functie
tekenFiguur tekent een gelijkzijdige driehoek met zijdes van lengte 50. tekenDriehoek is daarom een betere naam voor de functie.
- Nee, geen parameters.
- Nee, het heeft geen
return en levert dus geen informatie op die later in het programma gebruikt kan worden.
- Het programma tekent een spirograaf door nog een driehoekje te tekenen, net een beetje gedraaid ten opzichte van het eerste.
- Zonder de functie
tekenFiguur zou je 3*2=6 keer de regel turtle.forward(50) moeten intikken.
Opdracht 5.5 Cirkels met verschillende maten tekenen
import turtle
### FUNCTIEDEFINITIE
#tekent een cirkel, en krijgt als informatie (parameters) de kleur en de grootte mee
def tekenCirkel(kleur, grootte):
turtle.pencolor(kleur)
turtle.circle(grootte)
### HOOFDPROGRAMMA
tekenCirkel("blue", 50)
tekenCirkel("red", 150)
turtle.done()
Opdracht 5.6 Persoonlijke groet
### FUNCTIEDEFINITIE
def groet( naam, land):
print( "Hallo " + naam + " uit " + land + "!" )
### HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE
groet( "Sebas", "Spanje" )
groet( "John", "Engeland" )
groet( "Janneke", "Nederland" )
Opdracht 5.7 Commentaar
### FUNCTIEDEFINITIE
def rekenKmNaarMeters(afstand_in_km):
afstand_in_m = afstand_in_km * 1000
return( afstand_in_m )
### HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE
aantal_meters = rekenKmNaarMeters( 4 )
print( aantal_meters )
H5 - Afsluitende Opdrachten: UITWERKINGEN
Met de volgende Afsluitende opdrachten kun je kijken hoe goed je de stof beheerst. Controleer steeds je eigen oplossing met de voorbeeldoplossing.
Afsluitende opdracht 5.1 Teken lolly met argumenten
import turtle
### FUNCTIEDEFINITIES
#teken snoep
def tekenSnoep( kleur, straal ):
turtle.fillcolor( kleur )
turtle.begin_fill()
turtle.circle( straal )
turtle.end_fill()
#teken stok
def tekenStok( lengte ):
turtle.right( 90 )
turtle.forward( lengte )
### HOOFDPROGRAMMA
#informatie van gebruiker vragen
print("Welke kleur wil je?")
gekozen_kleur = input()
print("Hoe groot wil je de snoep hebben?")
invoer = input()
gekozen_straal = int(invoer)
print("Hoe lang wil je de stok hebben?")
invoer = input()
gekozen_lengte = int(invoer)
#lolly tekenen
turtle.pendown()
tekenSnoep( gekozen_kleur, gekozen_straal )
tekenStok( gekozen_lengte )
turtle.done()
Afsluitende opdracht 5.2 Olympische Ringen
import turtle
### FUNCTIEDEFINITIE
def tekenGekleurdeRing(kleur, x_coor, y_coor):
turtle.penup()
turtle.setposition(x_coor, y_coor)
turtle.pendown()
turtle.pencolor(kleur)
turtle.circle(50)
### HOOFDPROGRAMMA
tekenGekleurdeRing("green",0,0)
tekenGekleurdeRing("yellow",-120,0)
tekenGekleurdeRing("red",60,60)
tekenGekleurdeRing("black",-60,60)
tekenGekleurdeRing("blue",-180,60)
turtle.done()
Afsluitende opdracht 5.3 Wat voor een getal?
### FUNCTIEDEFINITIE
#Bepaalt of een getal 0, pos of negatief is.
def bepaalSoortGetal( getal ):
if getal < 0:
print("Het getal "+ str(getal) +" is kleiner dan 0.")
elif getal == 0:
print("Het getal "+ str(getal) +" is gelijk aan 0.")
else:
print("Het getal "+ str(getal) +" is groter dan 0.")
### HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE
bepaalSoortGetal(-1)
bepaalSoortGetal(0)
bepaalSoortGetal(1)
Afsluitende opdracht 5.4 Tekenprogramma
import turtle
### FUNCTIEDEFINITIES
def tekenCirkel():
turtle.circle(50)
def tekenDriehoek():
turtle.forward(100)
turtle.right(120)
turtle.forward(100)
turtle.right(120)
turtle.forward(100)
turtle.right(120)
def tekenVierkant():
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
### HOOFDPROGRAMMA
print("Wat wil je dat ik teken: cirkel, vierkant, driehoek, of allemaal.")
invoer = input()
print("Je hebt gekozen voor:", invoer)
if invoer == "cirkel":
tekenCirkel()
elif invoer =="vierkant":
tekenVierkant()
elif invoer == "driehoek":
tekenDriehoek()
elif invoer == "allemaal":
tekenCirkel()
turtle.penup()
turtle.setposition(50, 75)
turtle.pendown()
tekenDriehoek()
turtle.penup()
turtle.setposition(150,50)
turtle.pendown()
tekenVierkant()
else:
print("Fout: Dat kan ik niet tekenen.")
print("Klaar")
turtle.done()
Afsluitende opdracht 5.5 Bereken je cijfer
def berekenCijfer( aantal_punten ):
cijfer = (aantal_punten*9) / 60 + 1
return cijfer
### HOOFDPROGRAMMA
cijfer = berekenCijfer ( 40 )
print( "cijfer bij 40 punten:", cijfer )
cijfer = berekenCijfer ( 60 )
print( "cijfer bij 60 punten:", cijfer )
cijfer = berekenCijfer ( 0 )
print( "cijfer bij 0 punten:", cijfer )
Afsluitende opdracht 5.6 Dorp tekenen: Functies aanroepen vanuit andere functies
DEEL A.
### DEEL A. ###
import turtle
### FUNCTIEDEFINITIES
#Tekent zwarte vierkant
def tekenMuren():
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
#Tekent een rood gevuld dak
def tekenDak():
turtle.fillcolor("red")
turtle.begin_fill()
turtle.right(30)
turtle.forward(150)
turtle.right(120)
turtle.forward(150)
turtle.end_fill()
#Tekent een huis bestaande uit muren en een dak
def tekenHuis():
tekenMuren()
tekenDak()
### HOOFDPROGRAMMA
tekenHuis()
turtle.done()
DEEL B.
### DEEL B. ####
import turtle
### FUNCTIEDEFINITIES
#Tekent zwarte vierkant
def tekenMuren():
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
#Tekent een rood gevulde dak
def tekenDak():
turtle.fillcolor("red")
turtle.begin_fill()
turtle.right(30)
turtle.forward(150)
turtle.right(120)
turtle.forward(150)
turtle.end_fill()
#Tekent een huis bestaande uit muren en een dak
def tekenHuis():
tekenMuren()
tekenDak()
### HOOFDPROGRAMMA
tekenHuis()
#verplaats pen naar nieuwe plaats en in juiste richting
turtle.penup()
turtle.setposition(250, 0)
turtle.setheading(0)
turtle.pendown()
tekenHuis()
#verplaats pen naar nieuwe plaats en in juiste richting
turtle.penup()
turtle.setposition(-250, -250)
turtle.setheading(0)
turtle.pendown()
tekenHuis()
turtle.done()
Afsluitende opdracht 5.7 De wielen van de bus
### FUNCTIEDEFINITIE
def zingCouplet( onderdeel, actie ):
print( "De " + onderdeel + " van de bus " + actie )
print( actie +", " + actie )
print( "De " + onderdeel + " van de bus " + actie )
print( "Als de bus gaat rijden" )
print() # print een lege regel
### HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE
zingCouplet("wielen", "draaien rond")
zingCouplet("deuren", "gaan open en dicht")
zingCouplet("wissers", "gaan heen en weer")
zingCouplet("lichten", "gaan aan en uit")