De taalwereld in Logo

41
De taalwereld in Logo Les 12 Karel Heymans 15 december 2004

description

De taalwereld in Logo. Les 12 Karel Heymans 15 december 2004. 1. Verschillende werelden in Logo. Schildpadwereld Taalwereld Muziekwereld Sprokenwereld. 2. De Taalwereld. Manipuleren van woorden en lijsten: WOORDEN : - PowerPoint PPT Presentation

Transcript of De taalwereld in Logo

Page 1: De taalwereld in Logo

De taalwereld in Logo

Les 12

Karel Heymans

15 december 2004

Page 2: De taalwereld in Logo

1. Verschillende werelden in Logo

Schildpadwereld Taalwereld Muziekwereld Sprokenwereld

Page 3: De taalwereld in Logo

2. De Taalwereld

Manipuleren van woorden en lijsten:

WOORDEN:Elke verzameling van tekens. Een woord binnen LOGO heeft op zich geen betekenis.

Voorbeelden: JOYSTICK MUISMAT WIN311 (nummerplaat) 7&$2R (geen enkel betekenis).

Page 4: De taalwereld in Logo

2. De Taalwereld

Manipuleren van woorden en lijsten:

LIJSTEN:Een verzameling van woorden of elementen. Een lijst wordt tussen vierkante haakjes genoteerd.

bvb: [JOYSTICK MUISMAT].

Een lijst kan ook een andere lijst als element bevatten. bvb. [JOYSTICK [MUISMAT MUIS]]

Page 5: De taalwereld in Logo

2. De Taalwereld

Manipuleren van woorden en lijsten:

ELEMENTEN:

Een element van een lijst kan dus een woord of een lijst zijn.

Bvb: [JOYSTICK [MUISMAT MUIS]] JOYSTICK en [MUISMAT MUIS] zijn de elementen van de

lijst.

Page 6: De taalwereld in Logo

2. De Taalwereld

Manipuleren van woorden en lijsten.

MANIPULEREN: met woorden of lijsten goochelen, op een bepaalde manier wijzigingen aanbrengen.

Page 7: De taalwereld in Logo

3. PRINT en aanverwanten

PRINT (of PR)

PR Drink PR “Drink PR [Drink Allemaal] PR [“Drink “Allemaal] PR “ PR []

Page 8: De taalwereld in Logo

3. PRINT en aanverwanten

TYPEbvb: TYPE [Ik wil meer leren over Logo]

TYPE “!

PR “

SHOWbvb: SHOW [MUIS MUISMAT]

SHOW “MUIS

SHOW [MUIS]

Page 9: De taalwereld in Logo

4. FIRST en LAST

FIRST PR FIRST “Tom PR FIRST “Cruise

LAST PR LAST “Tom PR LAST “Cruise

Page 10: De taalwereld in Logo

5. BUTFIRST (BF) en BUTLAST (BL)

BF PR BF “Tom PR BF “Cruise

BL PR BL “Tom PR BL “Cruise

Page 11: De taalwereld in Logo

6. ITEM

ITEM n lijst

bvb: PR ITEM 3 [un dos tres quatro]

Page 12: De taalwereld in Logo

7. Oefening: welke output!

SHOW BL [Tom Cruise Cocktail] TYPE ITEM 2 [Tom Cruise Cocktail] PR LAST BL [Tom Cruise Cocktail] PR BF ITEM 3[Tom Cruise [Cocktail

Rainman]]

Page 13: De taalwereld in Logo

7. Oefening: ERAF1 (opgave)

Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet:

ERAF1 “COCKTAILCOCKTAILCOCKTAICOCKTACOCKTCOCKCOCCOC

EMPTYP: is een woord of lijst leeg?

IF EMPTYP woord …

Page 14: De taalwereld in Logo

7. Oefening: ERAF1 (opgave)

Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet:

ERAF1 “COCKTAILCOCKTAILOCKTAILCKTAILKTAILTAILAILILL

Page 15: De taalwereld in Logo

7. Oefening: ERAF1 (oplossing)

to ERAF1 :WOORD

IF EMPTYP :WOORD [STOP]

PR :WOORD

ERAF1 BF :WOORD

end

Page 16: De taalwereld in Logo

7. Oefening: ERAF2 (opgave)

Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet:

ERAF2 “COCKTAILCOCKTAILCOCKTAICOCKTACOCKTCOCKCOCCOC

Page 17: De taalwereld in Logo

7. Oefening: ERAF2 (oplossing)

to ERAF2 :WOORD

IF EMPTYP :WOORD [STOP]

PR :WOORD

ERAF2 BL :WOORD

end

Page 18: De taalwereld in Logo

7. Oefening: ACHTERUIT (opdracht)

Maak een recursieve procedure die een gegeven woord (of zin) van achter naar voor schrijft.

Bvb: stijn -> njits

Page 19: De taalwereld in Logo

7. Oefening: ACHTERUIT (oplossing)

to ACHTERUIT :WOORDIF EMPTYP :WOORD [PR “ STOP]TYPE LAST :WOORDACHTERUIT BL :WOORD

end

Opmerking: zo kan je ook nagaan of een woord een palindroom is…

Page 20: De taalwereld in Logo

8. Samenvoegen van woorden en lijsten

WORD PR WORD “joy “stick

PR (WORD “joy “stick “je)

LIST SHOW LIST “joy “stick SHOW LIST “joy [stick] SHOW LIST [joy] [joy stick] SHOW (LIST “j “o “y)

Page 21: De taalwereld in Logo

8. Samenvoegen van woorden en lijsten

Wat doet deze procedure?

to PLUSJA :LIJST

IF EMPTYP :LIJST [STOP]

PR WORD FIRST :LIJST "ja

PLUSJA BF :LIJST

end

Page 22: De taalwereld in Logo

8. Samenvoegen van woorden en lijsten

COUNT PR COUNT “quatro PR COUNT [un [dos tres] quatro]

Page 23: De taalwereld in Logo

8. Samenvoegen van woorden en lijsten

LPUT SHOW LPUT “EERST [ABC DEF]

FPUT SHOW FPUT “EERST [ABC DEF]

Page 24: De taalwereld in Logo

8. Samenvoegen van woorden en lijsten

SE (of SENTENCE) PR SE [DIT ZIJN][TWEE LIJSTEN] PR SE “TWEE “WOORDEN

Woorden of zinnen met variabelen verbinden: MAKE “NAAM [Michael Jordan] PR SE [Space Jam

met] :NAAM MAKE “PRIJS 30 PR (SE [Kost die DVD] :PRIJS “euro “?)

Page 25: De taalwereld in Logo

● SHOW LIST [1 [2 3]] [4 [5 6]] ● SHOW SE [1 [2 3]] [4 [5 6]] ● PR COUNT (SE [1 2 3] "4 [1 [2 3]])● SHOW FIRST LPUT “1 [2 3]● PR (WORD “text “mar “ker)

9. Oefening: welke output!

Page 26: De taalwereld in Logo

10. Testopdrachten

Programmeercode waarbij er op een bepaalde voorwaarde getest wordt.

Deze voorwaarde kan op true/waar evalueren of false/niet waar, naar gelang de voorwaarde voldaan is of niet.

We hebben al een dergelijke voorwaarde gezien namelijk EMPTYP.

IF en IFELSE.

Page 27: De taalwereld in Logo

10. Testopdrachten

NAMEP PR NAMEP “LIJST MAKE “LIJST [Dit is een lijst]

PR NAMEP “LIJST IFELSE NAMEP :WOORD [PR [Variabele heeft waarde]]

[PR [Geen waarde]]

Page 28: De taalwereld in Logo

10. Testopdrachten

WORDP PR WORDP “Popey PR WORDP [Lijst] IFELSE WORDP :LIJST [PR [Dit is een woord]]

[PR [Dit is geen woord]]

Page 29: De taalwereld in Logo

10. Testopdrachten

NUMBERP PR NUMBERP 7 PR NUMBERP [9] IFELSE NUMBERP :GETAL [MAKE “GETAL :GETAL +1]

[PR [Dit is geen getal]]

Page 30: De taalwereld in Logo

10. Testopdrachten

LISTP PR LISTP “woordje PR LISTP [lijstje] IFELSE LISTP :GROEI [PR COUNT :GROEI]

[PR [Dit is geen lijst]]

Page 31: De taalwereld in Logo

10. Testopdrachten

MEMBERP PR MEMBERP “Jackson [Willis Travolta Jackson] PR MEMBERP "Travolta [Willis [Travolta] Jackson] IF MEMBERP :LETTER [a e i o u] [PR [Dit is een klinker]]

Page 32: De taalwereld in Logo

10. Testopdrachten

EQUALP PR EQUALP 150 50 * 3 PR EQUALP “ [] (leeg woord vs. lege lijst)

Page 33: De taalwereld in Logo

11. Oefening: welke output!

PR MEMBERP “A [A B C D E] PR MEMBERP “A “ABCDE PR MEMBERP [A] [A B C D E] PR MEMBERP [A] [[A] B C D E] PR EQUALP 100 2*50 PR NAMEP “WOORD MAKE “WOORD 123 PR NAMEP “WOORD

Page 34: De taalwereld in Logo

12. Logische operatoren

AND IFELSE

AND (FIRST :W) = "A (LAST :W) = "A [PR [Dit woord begint en eindigt met een A]]

[PR [Tuuuut, guess again!]]

Page 35: De taalwereld in Logo

12. Logische operatoren

OR IFELSE

OR (FIRST :W) = "A (LAST :W) = "A [PR [Dit woord begint of eindigt met een A]]

[PR [Tuuuut, guess again!]]

Page 36: De taalwereld in Logo

12. Logische operatoren

NOT IFELSE

NOT (FIRST :W) = "A

[PR [Dit woord begint niet met een A]] [PR [Tuuuut, guess again!]]

Page 37: De taalwereld in Logo

13. Invoeropdrachten

Aan de gebruiker waarde vragen. Dialoogvenster. Verschillende formaten mogelijk:

READCHAR (RC): Invoer is 1 teken. READWORD (RW): Invoer is een woord. READLIST (RL): Invoer is een lijst.

Gebruik: Bvb.: MAKE “GETAL RW

Page 38: De taalwereld in Logo

14. Oefening: vierkantswortel (opg.)

Maak een procedure die een vierkantswortel trekt uit een getal. Zorg ervoor dat het getal aan de gebruiker wordt gevraagd en dat er eerst gecontroleerd wordt of dit weldegelijk een getal is.

Page 39: De taalwereld in Logo

14. Oefening: vierkantswortel (opl.)

to VIERKANTSWORTEL

MAKE "GETAL RW

IFELSE

NUMBERP :GETAL

[MAKE "ROOT sqrt(:GETAL) PR :ROOT] [PR [Er is geen getal ingegeven]]

end

Page 40: De taalwereld in Logo

15. Oefening: woordsculptuur (opg.)

Maak een procedure die een woord vraagt aan de gebruiker en die er vervolgens iets mee doet zoals in dit voorbeeld:

AILOAILAIAAIAILAILO

Page 41: De taalwereld in Logo

15. Oefening: woordsculptuur (opl.)

to maincttype "|Give me a word ==> |sculpture rw

end

to sculpture :wrdif 1=count :wrd[pr :wrd stop]pr :wrdsculpture bl :wrdpr :wrd

end