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 .................