DD1345, Grupdat för F1
Henrik E, KTH-CSC
Datalogilaboration 6 - Svengelska
Laborationens tema är binära sökträd och
uppgiften är att bygga upp ett sökträd från
en fil med svenska ord, spotta ut dubbletter,
söka efter skenbart svenska ord in en engelsk
ordfil och skriva ut dom, dock endast första
förekomsten av varje svenskt ord. Redan funna
ord sparas i ett annat sökträd, och dom båda
sökträden är objekt.
Ett sökträd med ordlista
I filen bintree.py ska du programmera
ett abstrakt binärträd. Koden kan i stort sett
plockas ihop ur föreläsningsanteckningarna, men
du ska i alla fall göra en ändring i def put(self,word)
och den gäller dubbletter. Om man försöker putta in ett ord som redan
finns i trädet ska ordet i stället skrivas ut på skärmen.
Kolla att ditt binärträd fungerar med ett testprogram av
följande typ.
#coding:latin
from bintree import Bintree
tree=Bintree()
print "Putta in ord, avsluta med retur"
while True:
word=raw_input()
if word=="": break
tree.put(word)
print "Hela trädet:"
tree.write()
print "Sök ord, avsluta med retur"
while True:
word=raw_input()
if word=="": break
if tree.exists(word):
print word,"finns"
När du vet att ditt binärträd funkar kan du övergå till
labbens huvudprogram. Det ska börja med att läsa in
filen /info/grupdat09/word3 i ett nytt träd
som kan heta swedish.
Det trädet innehåller svenska trebokstavsord (om du sett
till att radbytestecknen tagits bort).
Om du gjort rätt kommer dom dubblettord som spottas ut att bilda ett
viktigt budskap.
Två binära sökträd som objekt
Ditt program ska nu fortsätta med inläsning av filen
/info/grupdat09/english.
Läs filen själv så ser du att den innehåller en kortare
engelsk text. Ditt program ska läsa in ord för ord,
kolla om ordet finns i svenska ordträdet (exempelvis finns
ordet "tag" både på svenska och på engelska) och i så fall skriva ut det.
Om ett ord finns flera gånger ska bara dess första förekomst skrivas ut.
Därför måste du skapa ett nytt tomt träd, exempelvis oldwords,
och spara alla funna ord i detta träd.
Om du har gjort rätt kommer dom utskrivna orden att bilda ännu ett
hemligt budskap!
Smöra!
Smöriga kursdeltagare försöker nu göra om smöruppgiften
smart trams från labb4 med binärträd.
Varning: Om du direkt läser in ordlistan med fembokstavsord
i trädet har du gjort bort dej. Varför?
Och glöm inte att försöka få underskrift av en lärare!
Genialt programmerat av ..................................... anser.............................. den .................