410 likes | 530 Views
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 :
E N D
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: Elke verzameling van tekens. Een woord binnen LOGO heeft op zich geen betekenis. Voorbeelden: • JOYSTICK • MUISMAT • WIN311 (nummerplaat) • 7&$2R (geen enkel betekenis).
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]]
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.
2. De Taalwereld Manipuleren van woorden en lijsten. • MANIPULEREN: met woorden of lijsten goochelen, op een bepaalde manier wijzigingen aanbrengen.
3. PRINT en aanverwanten • PRINT (of PR) • PR Drink • PR “Drink • PR [Drink Allemaal] • PR [“Drink “Allemaal] • PR “ • PR []
3. PRINT en aanverwanten • TYPE bvb: TYPE [Ik wil meer leren over Logo] TYPE “! PR “ • SHOW bvb: SHOW [MUIS MUISMAT] SHOW “MUIS SHOW [MUIS]
4. FIRST en LAST • FIRST • PR FIRST “Tom • PR FIRST “Cruise • LAST • PR LAST “Tom • PR LAST “Cruise
5. BUTFIRST (BF) en BUTLAST (BL) • BF • PR BF “Tom • PR BF “Cruise • BL • PR BL “Tom • PR BL “Cruise
6. ITEM • ITEM n lijst bvb: PR ITEM 3 [un dos tres quatro]
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]]
7. Oefening: ERAF1 (opgave) • Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet: ERAF1 “COCKTAIL COCKTAIL COCKTAI COCKTA COCKT COCK COC CO C EMPTYP: is een woord of lijst leeg? IF EMPTYP woord …
7. Oefening: ERAF1 (opgave) • Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet: ERAF1 “COCKTAIL COCKTAIL OCKTAIL CKTAIL KTAIL TAIL AIL IL L
7. Oefening: ERAF1 (oplossing) to ERAF1 :WOORD IF EMPTYP :WOORD [STOP] PR :WOORD ERAF1 BF :WOORD end
7. Oefening: ERAF2 (opgave) • Maak een recursieve procedure die ervoor zorgt dat de output er als volgt uitziet: ERAF2 “COCKTAIL COCKTAIL COCKTAI COCKTA COCKT COCK COC CO C
7. Oefening: ERAF2 (oplossing) to ERAF2 :WOORD IF EMPTYP :WOORD [STOP] PR :WOORD ERAF2 BL :WOORD end
7. Oefening: ACHTERUIT (opdracht) • Maak een recursieve procedure die een gegeven woord (of zin) van achter naar voor schrijft. • Bvb: stijn -> njits
7. Oefening: ACHTERUIT (oplossing) to ACHTERUIT :WOORD IF EMPTYP :WOORD [PR “ STOP] TYPE LAST :WOORD ACHTERUIT BL :WOORD end Opmerking: zo kan je ook nagaan of een woord een palindroom is…
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)
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
8. Samenvoegen van woorden en lijsten • COUNT • PR COUNT “quatro • PR COUNT [un [dos tres] quatro]
8. Samenvoegen van woorden en lijsten • LPUT • SHOW LPUT “EERST [ABC DEF] • FPUT • SHOW FPUT “EERST [ABC DEF]
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 “?)
9. Oefening: welke output! • 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)
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.
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]]
10. Testopdrachten • WORDP • PR WORDP “Popey • PR WORDP [Lijst] • IFELSE WORDP :LIJST [PR [Dit is een woord]] [PR [Dit is geen woord]]
10. Testopdrachten • NUMBERP • PR NUMBERP 7 • PR NUMBERP [9] • IFELSE NUMBERP :GETAL [MAKE “GETAL :GETAL +1] [PR [Dit is geen getal]]
10. Testopdrachten • LISTP • PR LISTP “woordje • PR LISTP [lijstje] • IFELSE LISTP :GROEI [PR COUNT :GROEI] [PR [Dit is geen lijst]]
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]]
10. Testopdrachten • EQUALP • PR EQUALP 150 50 * 3 • PR EQUALP “ [] (leeg woord vs. lege lijst)
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
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!]]
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!]]
12. Logische operatoren • NOT • IFELSE NOT (FIRST :W) = "A [PR [Dit woord begint niet met een A]] [PR [Tuuuut, guess again!]]
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
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.
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
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: AILO AIL AI A AI AIL AILO
15. Oefening: woordsculptuur (opl.) to main ct type "|Give me a word ==> | sculpture rw end to sculpture :wrd if 1=count :wrd[pr :wrd stop] pr :wrd sculpture bl :wrd pr :wrd end