Astronomie · PalmOS software · Roosteren · Informatica · Windows software · Natuurkunde · Wiskunde · Meteorologie · Fietsen · Diversen

Informatica

Algemeen
lesmateriaal 4H/4V
lesmateriaal 5V/5H
lesmateriaal 5H/6V
lesmateriaal: Verdie
PO: Programmeren
PO: Projecten
PO: Werkstukken
PO: CT
PO: Afgerond
tips: Algemeen
tips: Delphi
tips: Delphi (2)
tips: Logo
tips: NSBasic
tips: OpenOffice
links: Software
links: websites
cc: Voorlopig
cc: Voorlichting
cc: Lokaalgeboden
cc: Excursies
cc: Puzzels
Haiti
tips: Small Basic
PO: Programmeren2008
PO: Programmeren2009
PO: Programmeren2010
PO: Programmeren2011
Gamemaker

Logo tips

 

 

 

Op deze pagina vind je mooie en leuke voorbeelden van LOGO-programma's.

 

Beknopt overzicht met de belangrijkste commando's

opdracht

wat gebeurt er

fd 100

100 stapjes vooruit

fd = forward

rt 90

draai 90 graden naar rechts

rt = right turn

lt 90

draai 90 graden naar links

lt = left turn

circle 100

cirkel op 100 stapjes afstand

pu

til de pen op

pen up

pd

zet de pen weer neer

pen down

ht

verberg de schildpad

hide turtle

st

laat de schildpad weer zien

show turtle

fill

vul iets op met een kleurtje

setfloodcolor [255 0 0]

stel de vulkleur in

penerase

de schildpad gaat nu gummen

pennormal

de pen gaat weer tekenen

setpencolor [0 100 0]

stel de tekenkleur in

setscreencolor [0 0 100]

stel de kleur van het papier in

repeat 4 [ ]

doe 4x wat tussen de haakjes [ ] staat, bv.:

repeat 4 [fd 100 rt 90]

fd random 100

loop tussen de 0 en 100 stapjes vooruit

rt random 90

draai hoogstens 90 graden naar rechts

localmake "straal 50

circle :straal

bewaar 50 in :straal

teken daarna een cirkel met :straal

localmake "straal random 50

bewaar hoogstens 50 in :straal

edall

start de tekstverwerker

edit all

make "hier pos

bewaar de huidige positie van de turtle in de variabele :hier

setpos :daar

zet de turtle neer op de positie die eerder in de variabele :daar bewaard werd (met setpos)

 

to vierkant :lengte

   repeat 4 [fd :lengte rt 90]

end

Met to definieer je een eigen routine. De routine kan parameters hebben die in de routine gebruikt worden.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Voorbeelden van routines

 

 

to vierkant :zijde

 repeat 4 [fd :zijde rt 90]

end

 

to veelhoek :zijde :hoek

  repeat :hoek [fd :zijde rt 360/:hoek]

end

 

 

to gekleurdvierkant

  vierkant 200

  pu

  rt 45

  fd 20

  pd

  setfc random 16

  fill

  pu

  rt 180

  fd 20

  rt 135

  pd

end

 

to rijtje

  repeat 3 [vierkant 100 pu rt 90 fd 150 lt 90 pd]

end

 

 

to cirkeltoren

  cs

  ; kies een straal

  ; bewaar die waarde in de variabele :straal

  localmake "straal random 50

  repeat 10 [cirkel3 :straal localmake "straal random 50 pu  fd :straal pd]

end

 

to cirkel3 :x

  ; teken de cirkel

  circle :x

  ; max 20 graden naar rechts

  rt random 20

  ; max 40 graden naar links

  lt random 40

  ; dus netto -20 to +20 graden gedraaid

  ; loop tot de rand van de cirkel zonder te tekenen

  pu

  fd :x

  pd

end

 

 

bigmac-persiflage

(12 januari 2012)

Jip's bigmac persiflage op een LOGO-auto.

 

 

zigzag

(2 december 2011)

Als je de regelmaat ziet kun je een figuur zoals hieronder gemakkelijk veel groter maken.

 

to links

  pu lt 90 fd 30 rt 180 pd

  circle 10 arc 180 30

  pu rt 180 fd 30 lt 90 pd

  fd 100

end

 

to rechts

  pu rt 90 fd 30 pd

  circle 10 arc 180 30

  pu fd 30 rt 90 pd

  fd 100

end

 

to start

  cs lt 90

end

 

to teken

  start

  repeat 4 [links rechts]

  ht

end

 

 

 

 

Een stapeltje driehoeken

(2 december 2011)

Een stapeltje driehoeken met een lijn van bijpassende lengte gemaakt met routines.

 

to driehoek :lengte

  rt 30

  repeat 3 [fd :lengte rt 120]

  lt 30

end

 

to lijn :lengte :aantal

  repeat :aantal [fd 100]

end

 

to stap :lengte :aantal

  pu repeat :aantal [fd :lengte] pu

end

 

to tekenrij :aantaldriehoeken

  repeat :aantaldriehoeken [driehoek 100 pu rt 90 fd 100 lt 90 pd]

  pu lt 90 stap 100 :aantaldriehoeken rt 120 fd 100 lt 30 fd 10 pd

  rt 90 lijn 100 :aantaldriehoeken-1

  pu rt 180 stap 100 :aantaldriehoeken-1 rt 90 fd 10 pd

end

 

to teken

  tekenrij 3

  tekenrij 2

  driehoek 100

  ht

end

 

 

 

cirkel in cirkel

(2 december 2011)

Binnen elke cirkel zit een cirkel die half zo groot is. Bovendien raken de cirkels aan elkaar. Na wat voorbereiding in een paar regels code. In dit voorbeeld zijn de opeenvolgende cirkels 50% qua straal van de vorige. Kun je dit ook voorelkaar krijgen met bijvoorbeeld 90% (de stralen zijn dan achtereenvolgens 100,90,81,...).

 

to teken

  cs

  make "straal 100

  make "stap 100

  lt 90

  repeat 5 [

    circle :straal

    make "straal :straal/2

    make "stap :stap/2

    pu rt 180 fd :stap pd

    ]

end

 

 

 

Mooie creaties

 

VVV-LOGO met LOGO

(10 december 2010, Sjoerd)

Download hier de LOGO-code.

 

 

 

Autowereld

(9 december 2010, Vino)

 

 

Kasteel in roze

(9 december 2010, Suzan)

 

 

 

 

 

circle2

(1 december 2010)

De opdracht CIRCLE 100 tekent een cirkel met straal 100 rond de plek waar je dan staat.

Wat nu als je de cirkel op de plek wilt laten beginnen waar je nu staat?

De code hieronder geeft de oplossing voor een cirkel die rechtsom verder loopt.

Als de cirkel een straal van 100 heeft stap je eerst 100 naar rechts opzij, dan teken je de cirkel en loop je weer terug.

 

 

pu rt 90 fd 100 pd

circle 100

pu rt 180 fd 100 lt 90 pd

 

Als je de cirkel naar links wil lopen moet je 100 naar links stappen.

 

We kunnen dit natuurlijk mooi aanpassen zodat we een routine hebben waar we de straal nog in moeten invullen:

 

 

to circle2 :straal

pu rt 90 fd :straal pd

circle :straal

pu rt 180 fd :straal lt 90 pd

end

 

Als je CIRCLE 100 vervangt door ARC 90 100 teken je een boog van 90 graden die naar rechts loopt!

 

to boog :straal

  pu rt 90 fd :straal pd

  arc 90 :straal

  pu rt 180 fd :straal lt 90 pd

end

 

Het dak erop

(1 december 201)

 

Stel, je wilt een driehoek als dak op een rechthoek tekenen.

 

Het is niet zo moeiljk als de driehoek een gelijkzijdige driehoek is. De code hieronder tekent eerste een vierkant en daarna een driehoek.

 

to gelijkzijdigedriehoek

  rt 30

  repeat 3 [fd 100 rt 120]

  lt 30

end

 

to vierkant

  repeat 4[fd 100 rt 90]

end

 

to huis

  vierkant

  fd 100

  gelijkzijdigedriehoek

end

 

Maar wat als je zo'n dak te hoog vind? je kunt dat probleem oplossen door make en setpos te gebruiken.

 

- onthoud waar je begint met MAKE "start pos

- zet de pen omhoog

- draai naar rechts

- loop naar het MIDDEN van de lijn

- draai 90 graden naar links

- loop naar de nok van het dak

- zet de pen neer

- spring met SETPOS :start

 

Op een soortgelijke manier teken je het rechterdeel van het dak. Je moet natuurlijk we eerst naar het rechter deel van het huis lopen. In de code hieronder is dat uitgewerkt. De code is zo geschreven dat je aan de overkant de schildpad eerst naar boven zet. Je zou daar nog wat kunnen bespraken op de opdrachten.

Op dezelfde manier zou je natuurlijk ook een heel hoog dak kunnen tekenen.

 

to dak

  make "start pos

  pu rt 90 fd 50 lt 90 fd 20 pd

  setpos :start

  pu rt 90 fd 100 lt 90

  make "start pos

  pu lt 90 fd 50 rt 90 fd 20 pd

  setpos :start

end

 

to huis

  vierkant

  fd 100

  dak

end

 

to vierkant

  repeat 4[fd 100 rt 90]

end

 

 

Willekeurige boom

(25 november 2010)

Deze boom bestaat uit een rechte lijn met doorope een cirkel.

De lengte van de lijn en de straal van de cirkel zijn willekeurig.

Omdat de deze waarden meer dan 1x nog hebt, moet je ze in een variabele bewaren.

 

to boom

  localmake "stam random 100 + 50

  fd :stam

  localmake "straal random 50 + 10

  pu

  fd :straal

  pd

  circle :straal

  pu rt 180 fd :straal fd :stam rt 180 pd

end

 

willekeurige driehoek

(25 november 2010)

De onderstaande routine tekent een willekeurige driehoek.

Ze is nog niet perfect. De eerste hoek ligt tussen 20 en 140 graden. De tweede hoek is 160-:hoek1. Daardoor blijft er altijd iets over voor de derde hoek:

 

 

to wd

  localmake "start pos

  localmake "hoek1 random 140 + 20

  localmake "hoek2 random (160-:hoek1)

  fd random 100 + 100

  rt :hoek1

  fd random 100 + 100

  rt :hoek2

  setpos :start

end

 

 

Hartje

(25 februari 2010)

De dames waren blijkbaar in de stemming.

 

TO HARTJE
  CS
  HOME
  RT 45
  FD 100
  Pu
  LT 90
  FD 50
  rt 180
  pd
  ARC 180 50
  
  PU
  HOME
  PD

  lt 45
  fd 100
  pu
  rt 90
  fd 50
  pd
  arc 180 50
END

 

 

Stippellijn

(16 november 2009)

Naar aanleiding van een vraag van Maurice.

 

to stippelijn :lengte :aantal

 

localmake "n :aantal*2+1

localmake "stukje :lengte/:n

 

repeat :aantal [fd :stukje pu fd :stukje pd]

fd :stukje

 

end

 

Je kunt deze routine alsvolgt gebruiken:

 

stippellijn 100 5

 

Er wordt dan een lijn met lengte 100 getekend. De lijn begint en eindigt met zwart. Er tussenin worden 5 witte stukje getekend.

 

Je kunt nu ook gestippelde vierkanten en driehoeken maken.

 

to gestippeldevierkant :lengte

repeat 4 [stippellijn :lengte 5]

end

 

 

Kleurenwereld

(16 november 2009)

Door Jimmy

 

 

to lol
setpensize [5 5]
repeat 100000000 [fd random 50 rt random 60 setpc random 100]
end

 

 

Wiel

(19 maart 2009)

Nee, niet ome Wiel. Maar wel een wiel van een auto:

 

to streep

  fd 100

  rt 180

  fd 100

  rt 90

end

 

to wielkruis

  circle 100

  repeat 4 [ streep ]

end

 

Als je voor de repeat rt 45 zet staat het kruis scheef.

 

Sterren

(12 maart 2009)

Zie hier drie mooie sterren, gemaakt door Eveline.

 

 

 

 

 

 

Flat

(12 maart 2009)

De flat-opdracht wordt op geheel verschillende manieren uitgevoerd:

 

 

 

 

 

muur metselen

Een muur bestaat uit bakstenen. Die worden in lagen gemetseld in lagen die verspringen.

Hieronder kun je zie hier je dat programmeert.

Een blok bestaat uit twee soorten lagen: laag1 en laag2.

Laag 1 bestaat uit halve en hele bakstenen. Laag2 bestaat alleen uit hele bakstenen.

 

 

to blok
laag1
fd 10
laag2
fd 10
laag1
fd 10
laag2
fd 10
laag1
fd 10
laag2
fd 10
end


to groot
fd 10 rt 90 fd 20 rt 90 fd 10 rt 90 fd 20 rt 90
end

to klein
repeat 4 [fd 10 rt 90]
end

to laag1
klein
rt 90 fd 10 lt 90
groot
rt 90 fd 20 lt 90
groot
rt 90 fd 20 lt 90
klein
lt 90 fd 50 rt 90
end

to laag2
groot
rt 90 fd 20 lt 90
groot
rt 90 fd 20 lt 90
groot
lt 90 fd 40 rt 90
 
end

 

 

spiraal

 

 

to spiraal :zijde :hoek :toename

if :zijde<200 [fd :zijde rt :hoek spiraal (:zijde + :toename) :hoek :toename ]

end

 

 

dronkemansloop

 

 

to dronken

cs

home

repeat 20 [fd 40 rt random 360]

end

 

auto

 

 

Dit is het begin van een auto (maak hem af of maak een nog betere en stuur hem in!):

 

to auto

home

cs

rt 90

fd 20

pu

fd 20

pd

circle 20

pu

fd 20

pd

fd 100

pu

fd 20

pd

circle 20

pu

fd 20

pd

fd 10

lt 90

fd 50

lt 90

fd 30

rt 45

fd 30

end

 

kaas

Het onderstaande programma is een eerste poging om kaas te maken.

 

to kaas :grootte :hoek

home

cs

rt 90

fd :grootte

home

rt 90

lt :hoek

fd :grootte

home

lt 90

lt :hoek

arc :hoek :grootte

home

pu

rt 90

lt :hoek/2

fd 20

setfc 6

fill

pd

repeat 10 [

  pu

  home

  fd random :grootte

  rt 90

  fd random :grootte

  pd

  localmake "straal random 20

  localmake "p pos

  circle :straal

  setfc [255 255 255] fill

  setpc [255 255 255]

  circle :straal

  setpc [0 0 0]

]

ht

end

 

Spinnenweb

(door Frederique)

 

 

 

to driehoek :grootte

repeat 3[fd :grootte rt 120]

end

to driehoeken

driehoek 50 driehoek 100 driehoek 150 driehoek 200 driehoek 250

end

to spinnenweb

repeat 6[driehoeken rt 60]

rt 60 fd 250 rt 60 driehoeken

rt 120 fd 500 rt 60 driehoeken

pu

setfc [7 96 129]

rt 30 fd 25

fill

fd 50 fill

fd 50 fill

fd 25 fill

fd 50 fill

setfc [11 135 183]

rt 90 fd 125 fill

fd 20 fill

fd 225 fill

rt 60

fd 235 fill

rt 60 fd 235 rt 60 fd 50 fill

fd 150 rt 30 fd 50 fill

setfc [13 156 210]

rt 90 fd 50 fill

rt 90 fd 50 fill lt 30 fd 150 lt 60 fd 10 fill fd 150 lt 60 fd 100 fill fd 100 fill lt 60

fd 150 lt 60 fd 100 fill lt 90 fd 40

setfc [67 189 248] fill lt 90 fd 90 rt 60 fd 90 fill rt 30 fd 30 fill rt 30 fd 125 fill

rt 60 fd 125

rt 60 fd 20 fill

rt 30 fd 150 fill

setfc [134 213 251]

rt 90 fd 15 fill fd 35 fill fd 75 fill rt 90 fd 75 fill rt 30 fd 40 fill rt 60 fd 75 fill

rt 90 fd 40 rt 90

setfc [185 231 253]

fd 15 fill fd 25 fill fd 15 fill

lt 90 fd 30 fill lt 90 fd 15 fill fd 25 fill

setfc [7 96 129] lt 90 fd 250 fill rt 60 fd 50 fill rt 180 fd 75 fill rt 30 fd 50 fill fd 50

fill

pd

end