InvoeropdrachtenOverzicht
READCHAR (RC)
leest 1 karakter (=char) in
READWORD (RW)
leest 1 woord in
READLIST (RL)
leest 1 lijst in
Invoer/Uitvoer Les 2
12/02/2003
Invoer/Uitvoer
Invoeropdrachten
Toegang tot bestanden
Oefening op toegang tot bestanden
Invoeropdrachten
Overzicht
READCHAR (RC)
leest 1 karakter (=char) in
READWORD (RW)
leest 1 woord in
READLIST (RL)
leest 1 lijst in
Invoeropdrachten
READCHAR
-> afkorting RC
-> leest ingegeven karakter
Invoeropdrachten
p -> show :A
-> resultaat: p
Voorbeeld READCHAR
-> MAKE “A RC
Invoeropdrachten
READWORD
-> afkorting RW
-> leest ingegeven woord
Invoeropdrachten
-> show :A
-> resultaat: Pol
Pol Voorbeeld READWORD
-> MAKE “A RW
Invoeropdrachten
READLIST
-> afkorting RL
-> leest ingegeven lijst
Invoeropdrachten
-> show A
-> resultaat: [Joske Theodoor Vermeulen] Joske Theodoor Vermeulen
VVoorbeeld READLIST
-> MAKE “A RL
Invoeropdrachten
Oefening
Maak een programma die een gesprek met computer Pol simuleert. De computer vraagt u voornaam, stelt zichzelf voor en begint een gesprek met u. Hij begroet u en vraagt (Ja/Nee) of u ooit al een met een computer hebt gesproken. Zo ja verklaart hij u zot, anders raad hij het aan om het eens te proberen.
Invoeropdrachten
to talk
print [Yoo! Wat is uw Voornaam?]
make "naam readword
make "antwoord se :naam [Mijn naam is Pol]
print se [Ik denk niet dat we mekaar kennen] :antwoord
print [Hebt ge ooit al eens met een pc gesproken, Ja of Nee?]
test READWORD = "Nee
IFFALSE [PRINT [Ge zijt zot!]]
IFTRUE [PRINT[Doe dat dan maar eens!]]
end
Toegang tot bestanden
Schrijven naar een bestand
-> file openen met openwrite “filename
-> uitvoerstroom naar file richten met setwrite “filename
-> Nu kan men naar een file schrijven zoals men naar een scherm schrijft.
-> Na overdracht gegevens, uitvoerstroom terug richten naar scherm setwrite [ ]
-> File sluiten close “filename
Hier moeten we setread, normaal invoer vanuit gegevens die wij intijpen, maar nu gaat hij gegevens halen uit het specifieke invoerbestand
Toegang tot bestanden
Voorbeeld: schrijven naar een bestand
openwrite “dummy.txt
setwrite “dummy.txt
print “hello
print [good bye]
setwrite []
close “dummy.txt
Toegang tot bestanden
Lezen van een bestand
-> file openen met openread “filename
-> invoerstroom naar file richten met setread “filename
-> Nu kan men de file lezen zoals men
van een keyboard kan lezen
-> Na overdracht gegevens, invoerstroom terug richten op keyboard setread []
-> File sluiten close “filename
Hier moeten we setread, normaal invoer vanuit gegevens die wij intijpen, maar nu gaat hij gegevens halen uit het specifieke invoerbestand
Toegang tot bestanden
Voorbeeld: lezen van een bestand
openread “dummy.txt
setread “dummy.txt
repeat 2 [show readlist]
setread []
close “dummy.txt
Toegang tot bestanden
Enkele uitbreidingen (voor meer zie Help-files)
- openupdate (ipv openread/openwrite)
opent file voor lezen en voor schrijven
openappend (ipv openread/openwrite)
opent file, begint te schrijven vanaf einde file
erasefile
verwijdert file (die gesloten is)
closeall
sluit alle openstaande files
Oefening
Maak een procedure wegschrijf die de gegeven lijsten A tot E wegschrijft in het bestand lijsten.txt
Pas onze HAIKU-GENERATOR zo aan dat de gegeven lijsten worden ingelezen uit lijsten.txt en dat onze gegenereerde gedichten naar haiku.txt worden weggeschreven.
Oefening oplossing
to wegschrijf
openwrite "lijst.txt
setwrite "lijst.txt
PRINT [ochtend morgen dag avond nacht]
PRINT [gloort vervaagt verdwijnt ontwaakt]
PRINT [nevel mist regen lichtkrans]
PRINT [veegt maakt vliegt lacht huilt veronderstelt zwaait]
PRINT [bloem vlieg vlinder vlieger]
PRINT [lucht wolken hemel horizon]
PRINT [open schoon droog toe]
setwrite []
close "lijst.txt
end
Oefening oplossing
To haiku :aantal
if :aantal < 1 [stop]
openread "lijst.txt
setread "lijst.txt
MAKE "A READLIST
MAKE "B READLIST
MAKE "C READLIST
MAKE "D READLIST
MAKE "E READLIST
MAKE "F READLIST
MAKE "G READLIST
setread []
close "lijst.txt
Oefening oplossing
openappend "haiku.txt
setwrite "haiku.txt
PRINT (SE "De KIES :A KIES :B)
PRINT (SE "en "in "de KIES :C)
PRINT (SE KIES :D "een KIES :E "de KIES :F KIES :G)
PRINT "
setwrite []
close "haiku.txt
haiku :aantal - 1
end
Comments