Hier die Lösung der Aufgaben 6.4 a, b



Nummer 6.4 a
Nerds sind eine ethnische Minderheit, die wie andere Jugendbewegungen auch nur im
Untergrund vertreten sind, daher auch oft Kellerkind genannt. Der Nerd ist meist ein
lichtscheues Wesen, das bei der Beruehrung mit Sonnenlicht sofort explodiert. Die
einzige Ausnahme ist das Licht PC-Monitorlicht; dieses zieht sie magisch an. Nerds
neigen dazu, Online-Spiele (vor allem Counter Strike, Dota und World of Warcraft)
zu spielen und behaupten gerne, dass sie in der Lage sind, zu Hacken, was bisher noch
nie nachgewiesen wurde. Die Spezies Nerd hat (wie vermutet wird) keinerlei sozialen
Kontakt, ausser zu anderen Nerds, was wahrscheinlich an ihrem bizarren Aussehen
(klein, schmaechtig, blass, meist mit Brille, unvorteilhaft gekleidet oder
uebergewichtig), sowie an ihrer Unfaehigkeit liegt, verstaendliche Saetze
zu bilden. Die neue Generation der Rasse Nerd versteht sich auch mit der Randgruppe
von Noobs sehr gut. Denn es sind beides Randgruppen der Menschheit. Es wird vermutet,
dass sich die Nerds und Noobs zusammenschliessen, um die Weltherrschaft an sich zu reissen.
Vor dem LZW ist die Textdatei 1074 Byte groß,
dass sind 8592 Bits.
Nach dem LZW ist die komprimierte Datei nur noch 5339 Bits groß.


Hier die Kompriemierte Datei!:Text
Nummer 6.4 b
// Enkodierung startet: filein.get(next); //Zeichen werden eingelesen eingelesen und in next gespeichert while(filein.good()){ //solange ein Zeichen vorhanden ist charcntr++; //erh&ouml;he Zeichenz&auml;hler um 1 oldsymbol = symbol; //aktuelles Symbol wird zwischengespeichert symbol += next; //weiteres Zeichen wird angef&uuml;gt code = dict->get_code(symbol);//schaut im W&ouml;rterbuch ob Kombination vorhanden ist if (code == ""){ // Das Symbol gibt es noch nicht // Gebe Symbol ohne letztem Zeichen aus (oldsymbol) std::string out = dict->get_code(oldsymbol); fileout << out; //schreibt Bin&auml;rcode in Datei bitcntr += out.length();// Bitcounter wird um Code von oldsymbol erweitert // &Uuml;berpr&uuml;fe ob Ende erreicht wurde: char nexttmp; //definiere tempor&auml;reren Zeichenspeicher filein.get(nexttmp); //neues Zeichen einlesen if(filein.good()){ &bnsp // F&uuml;ge neues Symbol in das W&ouml;rterbuch ein dict->write_symbol(symbol); // Leere Symbolsstring symbol = ""; //Symbol wird zur&uuml;ckgesetzt symbol += next; //und mit dem n&auml;chsten Zeichen bef&uuml;llt next = nexttmp; }



Aufgaben
Startseite