Lbortion 1: En Tri-modul 1 Syft Progrmmring md rfrnsr, vlusning, tstning, kt m.m. Vi hr trolign int hunnit gå ignom llt, viss skr får ni br cctr så läng. S ävn kodxml å kurssidn. 2 Bkgrund Vi skll undr lbortion 1-c stgvis bygg n övrsättrliktion. Användrn skrivr in (inldningn v) tt ord i utgångssråkt. Aliktionn svrr md tt ntl förslg å ord och tt ntl övrsättningr v dss. Slutrsulttt kn t.x. s ut som; Figur 1: Dn slutgiltig liktionn. Aliktionn kommr tt bstå v tr dlr (modulr) s Figur 2. 3 Tri Aliktionn rbtr som syns md strängr. Vi bhövr något som givt n inldning (tt rx) v tt ord gr oss n list md ll ord som inlds md 1
DIT950 Jochim von Hcht Figur 2: Dn färdig liktionns dlr (UML komonntr). Tri och Dictionry är modulr som nvänds v liktionn Trnsltor. Pilrn visr å brondn d.v.s. Trnsltor nvändr Dictionry som nvändr Tri. Brondn kommr tt sköts v Mvn (vi NtBns) rxt (och snr n list md ll övrsättningr). I dnn lbortion skll vi konstrur n klss som kn hjäl oss md dtt, n s.k. Tri (uttls tr llr try v ng. rtrivl). En Tri är ubyggt som tt u och ndvänt träd. I trädt srr mn strängrn tckn för tckn i grnr, s Figur 3. Md dnn struktur blir dt lätt tt hitt ll ord som inlds md tt visst rx, d nns å smm grn! Dssutom är dt tt ktivt sätt tt lgr ordn å. Svnsk Rot Tri Englsk b c m i o h o l r n l k i TriNod g y Figur 3: Två hokold Tri:r 2 Producd with Lyx, th on sourc wordrocssor
DIT950 Jochim von Hcht Imlmnttionsmässigt är Tri:n ubyggd v s.k. nodr (klssn TriNod). Vrj tckn i tt ord nns i n nod och nodrn är ihokold md vrnn (hldrgn linjr). Dt som är scillt md vår Tri är tt dn kn kols iho md n likdn Tri (strckd ilrn). Gnom tt kol iho nodr i n Tri md n nnn kommr vi tt från utgångssråkt (Svnsk/Englsk) kunn hitt övrsättningr i målsråkt (Englsk/Svnsk) 1. 4 Dsignmodll Figur 4: Dsignmodll för Tri moduln (UML-liknnd klss digrm). Klssrn liggr i tt kt, du.gu.cid.tri. (n mstruktur). Mtodn nwinstnc är n s.k. Fctory-mthod nvänds i ställt för nw. 5 Modulns gränssnitt Klssn ConnctblTri innhållr n s.k. Fctory-mtod, nwinstnc(), för tt sk instnsr (så slir vi nvänd nw, mr snr...). Modulns gränssnittt gs v IConnctblTri. Dt är mtodrn i gränssnittt som kommr tt nvänds v näst lgr i liktionn (Dictionry) Följnd gällr; insrt, Skll lägg till tt ord i Tri:n. Rturnrr n rfrns till nodn md dn sist bokstvn i ordt (dtt gör tt vi kn kol nodn till n nod i n nnn Tri). gtkys, Gr ll ord i Tri:n som inlds md rmtrn rx. gtvlus. Om Tri:n är hokold md n nnn Tri gr mtodn ll strängr (övrsättningr) från dn ndr som är kold till rmtrn ky i dnn Tri (t.x. ovn: gr och monky). Annrs gr mtodn n tom list. 1 Frivilligt: Hur hntr synonymr? 3 Producd with Lyx, th on sourc wordrocssor
DIT950 Jochim von Hcht contins, svr snt om strängn nns i Tri:n nnrs flskt. TIPS Ett sätt tt mrkr vrt tt ord slutr är tt låt slutnodn h sig själv som övrsättning (k å sig själv). 6 Imlmnttion Allt du bhövr nns tt ldd nr som tt NtBns-rojkt (tri_skl.nb), hämt från kurssidn. Pck u och ön i NtBns. Tri:n skll byggs som n länkd dtstruktur bstånd v TriNodr. 1. Fundr vilk rfrnsr (ssocitionr) som bhövs i TriNod för tt dt skll vr möjligt tt kol iho objkt till tt träd. S till tt dss nns som ttribut. Gnrllt gällr tt TriNod skll ligg å n lägr bstrktionsnivå än ConnctblTri, TriNod skll br hntr sin gn dt och svr å nkl frågor (mtodr ty dd/rmov/st/gt/hs/is). 2. Vilk rfrnsr bhövs i ConnctblTri? 3. Börj md tt imlmntr mtodrn insrt och contins i ConnctblTri. Arbt rllllt md TriNod. Tst kontinurligt! Tstning och vlusning: Använd dn färdig JUnit tstn. T bort tstr som int skll körs gnom tt kommntr bort @Tst (llr nvänd @Ignor). Vid roblm kör tstn i vlusrn (dbug). Tis Allt är int rkursion, tänk till! 4. Fortsätt md gtkys och därftr gtvlus (som krävr två hokold Tri:r, s JUnit-tstn). Idntir lämlig hjälmtodr. 5. För rlvnt mtodr i ConnctblTri. Försök hitt n motivring till tt om vi hr tt korrkt träd innn mtodn så hr vi också dtt ftr tt mtodn hr xkvrt. Skriv motivringn som n kort kommntr innn mtodn. 7 Rdovisning Körningsgodkännnd smt kodinsktion. Görs undr lbortionsssn. S till tt bli vrickd. Följnd kommr tt kontrollrs: Allmän kodstil, indntring, krullrntsr, hårdkodd värdn,...(nt- Bns kn hjäl till, Högrklick > Formt) Imlmnttionn skll klr ll tstr i dn bifogd JUnit-tstn. Ing vrningr skll nns. Mtodkommntrr md rsonmng skll vr v tillräckligt hög kvlitt. 4 Producd with Lyx, th on sourc wordrocssor
DIT950 Jochim von Hcht Så lit som möjligt v moduln skll syns (så myckt rivt som möjligt, mr om dtt snr). Inlämningsdtum S kurssidn. 5 Producd with Lyx, th on sourc wordrocssor