Newest Viewed Downloaded

Vakdidactiek9/12/2002 Leen Depré leen.depre@rug.ac.be

Vakdidactiek

9/12/2002 Leen Depré leen.depre@rug.ac.be

Toepassingen op recursie

Binaire bomen Herschrijfsystemen

Herhaling

Wat is recursie? Een functie (methode) heet recursief wanneer er in de code een aanroep van zichzelf voorkomt.

Binaire bomen

gebalanceerde boom

Binaire bomen

ongebalanceerde boom

Binaire bomen in LOGO

Binaire bomen in LOGO

to tree :size if :size < 5 [stop] fd :size lt 30 tree :size*.7 rt 60 tree :size*.7 lt 30 bk :size end

Binaire bomen

Random

De functie genereert een willekeurig geheel getal, kleiner dan de opgegeven waarde. random 50 print fd (random 50) + 50 ((random 5) + 5) / 10

Binaire bomen (code)

to rtree :size if :size < 5 [stop] fd :size lt 30 rtree :size*(((random 5)+5)/10) rt 60 rtree :size*(((random 5)+5)/10) lt 30 bk :size end

Natuurlijke boom

Natuurlijke boom (code)

to tree :size if :size < 5 [fd :size bk :size stop] fd :size/3 lt 30 tree :size*2/3 rt 30 fd :size/6 rt 25 tree :size/2 lt 25 fd :size/3 rt 25 tree :size/2 lt 25 fd :size/6 bk :size end

Herschrijfsystemen

a  a b b  a over het alfabet {a,b} Dus krijgen we: b  a  a b  a b a  a b a a b  a b a a b a b a  …

Grafische herschrijfsystemen in LOGO

  niveau 0 niveau 1

De sneeuwvlok-krommen van Koch

niveau 0 niveau 1 niveau 2 niveau 3

Programma voor figuur van niveau 1

to flock :size fd :size lt 60 fd :size rt 120 fd :size lt 60 fd :size end to snow :size cs ht repeat 3[flock :size/3 rt 120] end

Volledig programma met recursie

to flock :size :niveau ifelse :niveau = 0 [fd :size][flock :size/3 :niveau-1] lt 60 ifelse :niveau = 0 [fd :size][flock :size/3 :niveau-1] rt 120 ifelse :niveau = 0 [fd :size][flock :size/3 :niveau-1] lt 60 ifelse :niveau = 0 [fd :size][flock :size/3 :niveau-1] end to snow :size :niveau cs ht ifelse :niveau > 0 [repeat 3[flock :size/3 :niveau-1 rt 120]] [repeat 3[fd :size rt 120]] end

Nog een voorbeeld

Oplossing

to fline :size :niveau ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] rt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] lt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] lt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] rt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] rt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] lt 90 ifelse :niveau = 0 [fd :size][fline :size/4 :niveau-1] end

Oplossing (vervolg)

to fvierkant :size :niveau cs ht ifelse :niveau > 0 [repeat 4[fline :size/4 :niveau-1 rt 90]] [repeat 4[fd :size rt 90]] end

Showing 1 - 20 of 20 items Details

Name: 
Les6LeenDepre
Author: 
leen depre
Company: 
*
Description: 
Vakdidactiek9/12/2002 Leen Depré leen.depre@rug.ac.be
Tags: 
size | niveau | ifelse | fline | end | flock | tree | binaire
Created: 
11/28/2002 10:29:53 AM
Slides: 
20
Views: 
1
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap