Recursie
Download
1 / 26

Recursie - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

Recursie. Steve Dewanckele http://studwww.ugent.be/~sdwancke/ailo/. Recursie (1). Wat doet de volgende procedure? to vierkant repeat 4 [fd 100 rt 90] vierkant end Opl.: Tekent oneindig aantal keer dezelfde vierkant doordat de procedure vierkant telkens naar zichzelf verwijst.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Recursie' - kita


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Recursie

Recursie

Steve Dewanckele

http://studwww.ugent.be/~sdwancke/ailo/


Recursie 1
Recursie (1)

  • Wat doet de volgende procedure?

    to vierkant

    repeat 4 [fd 100 rt 90]

    vierkant

    end

  • Opl.: Tekent oneindig aantal keer dezelfde vierkant doordat de procedure vierkant telkens naar zichzelf verwijst.


Recursie 2
Recursie (2)

  • Recursie is een proces dat verwijst naar zichzelf.

  • Logo heeft procedures die zichzelf aanroepen terwijl ze zichzelf aanroepen

    • Vgl: procedure vierkant roept zichzelf aan terwijl procedure vierkant zichzelf (als procedure vierkant) aanroept


Recursie 3
Recursie (3)

  • Procedure vierkant wordt oneindig aantal keer aangeroepen. Hoe kan dit proces dan gestopt worden?

    • De HALT-toets drukken

    • De computer te resetten

    • De computer afzetten

    • Stoppen met conditie


Recursie 4
Recursie (4)

  • Stoppen met conditie

    to vierkant :STAP

    if :STAP > 150 [stop]

    repeat 4 [fd :STAP rt 90]

    vierkant :STAP + 5

    end

  • Stoppen met een toetsdruk (KEYP)

    if keyp [stop]


Recursie 5
Recursie (5)

  • Komt de procedureoproep telkens op het einde van de procedure?

  • Neen. Kan zowel:

    • Begin

    • Midden

    • Einde


Recursie 6
Recursie (6)

  • Verschil tussen:

    to cirkel :STRAAL

    if :STRAAL = 0 [stop]

    circle :STRAAL

    cirkel :STRAAL - 1

    end

    to cirkel :STRAAL

    if :STRAAL = 0 [stop]

    cirkel :STRAAL - 1

    circle :STRAAL

    end





Opgave 3
Opgave (3)

  • KORTEZIJDE: sqrt(2) * :X

  • LANGEZIJDE: sqrt((:X * :X) * (STAART * STAART))

  • HOEK:

    • ARCTAN (:X / :STAART)

    • ARCCOS (:STAART / :LANGEZIJDE)

    • ARCSIN (:X / :LANGEZIJDE)

http://studwww.ugent.be/~sdwancke/ailo/


Opgave 4
Opgave (4)

  • Oplossing

    to boven :X

    local "KORTEZIJDE

    make "KORTEZIJDE (sqrt 2) * :X

    fd :KORTEZIJDE

    rt 90

    fd :KORTEZIJDE

    end


Opgave 5
Opgave (5)

  • Oplossing

    to onder :X :STAART

    local "LANGEZIJDE

    local "HOEK

    make "LANGEZIJDE sqrt ((:X * :X) + (:STAART * :STAART))

    make "HOEK ARCTAN (:X / :STAART)

    rt (45 + :HOEK)

    fd :LANGEZIJDE

    rt (180 - 2 * :HOEK)

    fd :LANGEZIJDE

    rt :HOEK

    end


Opgave 6
Opgave (6)

  • Oplossing

    to vlieger :X :STAART :AANTAL

    local "STAP

    make " STAP :X / :AANTAL

    cs

    rt 45

    omtrek :X :STAART

    lt 45

    kader :X :STAART

    end

if (modulo :X :AANTAL) > 0

[pr [Aantal moet een deler zijn van de vliegerbreedte] stop]


Opgave 7
Opgave (7)

  • Oplossing

    to omtrek :X :STAART

    boven :X

    onder :X :STAART

    pu

    rt 90

    setpc random 500

    fd :STAP

    lt 45

    pd

    if :X = :STAP [stop]

    omtrek :X - :STAP :STAART

    end



Maansverduistering 1
Maansverduistering (1)

  • Wat is dat?

    • De aarde komt voor de zon te staan waarbij de maan geen (of nauwelijks) zonlicht krijgt



Opgave 1
Opgave (1)

  • Tekenen van de maansverduistering waarbij de straal van de maan wordt opgegeven

  • Extra: tekenen van omgeving met sterren


Opgave 21
Opgave (2)

  • Hoe te werk gaan:

    • Teken de maan in wit ([255 255 255])

    • Teken de aarde (of schaduw) waarbij kleur hetzelfde is als de achtergrondkleur ([0 0 0])

    • Startpunt (xcor) zon is 2*STRAAL naar links

    • Zon komt over aarde totdat xcor zon = 0

  • Procedures

    • to maan :STRAAL

    • to schaduw :STRAAL

    • to maansverduistering :STRAAL


Opgave 31
Opgave (3)

  • Oplossing:

    to maan :STRAAL

    pd circle :STRAAL

    if :STRAAL > 0 [maan :STRAAL - 1]

    end

    to schaduw :STRAAL

    circle :STRAAL

    setx xcor + 1

    if xcor = 0 [stop]

    schaduw :STRAAL

    end


Opgave 41
Opgave (4)

to maansverduistering :STRAAL

if :STRAAL < 6 [pr [Straal is te klein] stop]

if :STRAAL > 100 [pr [Straal is te groot] stop]

cs cleartext ht

zetomgeving :STRAAL

pr [Bezig met maan aan het tekenen...]

maan :STRAAL

pu

setpc [0 0 0]

setx -(2 * :STRAAL)

pd cleartext

pr [Hier komt de aarde...]

schaduw :STRAAL

home

setpc [255 127 127]

maan :STRAAL

pr [Het is een maansverduistering !!]

end


Lijst van nieuwe commando s
Lijst van nieuwe commando’s

  • Random getal

    • Genereren van een willekeurg getal tussen 0 en getal-1

  • Cleartext

    • Schoonmaken van het tekstveld (onderaan bij de commandolijn)

  • Wiskundige berekeningen

    • ARCCOS hoek

    • ARCSIN hoek

    • ARCTAN hoek


Extra oef 1
Extra oef (1)

  • Gebruik recursie voor het maken van:


Extra oef 2
Extra oef (2)

  • Oplossing

    to blokken :HOOGTE :BREEDTE

    rechthoek :HOOGTE :BREEDTE

    if (:HOOGTE > 10) [blokken :HOOGTE - 10 :BREEDTE

    + 10]

    end

    to rechthoek :HOOGTE :BREEDTE

    repeat 2 [fd :HOOGTE rt 90 fd :BREEDTE rt 90]

    end



ad