<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[LZW-Encoder mit Array ohne Hashing]]></title><description><![CDATA[<p>Hey Leutz,<br />
wie der Titel schon sagt, geht es um den LZW-Algo. Mir sind Erklärungen gegeben zu den jeweiligen Funktionen, aber bei einer komme ich grad nicht weiter. Ich poste mal die Erklärung und schreibe dann was ich nicht verstehe.</p>
<pre><code>CLZWArray()
Natürlich benötigen Sie einen Konstruktor. Im Konstruktor werden die ersten 256
Einträge des Dictionaries mit den Strings zu den Positionen 0-255 der ASCII-
Tabelle belegt. Um einen int-Wert einem string zuzuweisen, können Sie in
Klassen, die von CLZW abgeleitet sind, die Methode string  intToString(
int  i) verwenden. Zum Beispiel wird der Wert 3 folgendermaßen der Position
3 des Dictionaries zugewiesen:
m_symbolTable[3].setSymbol(intToString(3));
Das Gegenstück ist die Funktion unsigned  int  charToInt(char);, eben-
falls eine statische Funktion der Klasse CLZW. Diese sollten Sie verwenden, damit
auch Umlaute und andere Zeichen mit ASCII-Werten oberhalb 127 korrekt in den
Zahlenbereich 128 bis 255 gewandelt werden.
</code></pre>
<p>Der Abschnitt mit &quot;Das Gegenstück ist die Fkt. ...&quot;, den verstehe ich nicht.<br />
Also erstmal soll ich im Konstruktur die ASCII-Zeichen speichern, aber jetzt ist die Rede davon oberhalb von 127 korrekt umzuwandeln.<br />
Vllcht kann mir das einer mal genauer erklären.</p>
<p>MfG<br />
Aknayirp</p>
<p>EDIT: Ich frage mal noch genauer: Reicht der erste Teil (vor &quot;Der Gegenstück...&quot;) um im Konstruktur das Array mit den ASCII-Zeichen zu füllen oder brauche ich die Fkt. charToInt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317859/lzw-encoder-mit-array-ohne-hashing</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 22:52:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317859.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Jun 2013 19:50:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LZW-Encoder mit Array ohne Hashing on Sat, 22 Jun 2013 19:52:51 GMT]]></title><description><![CDATA[<p>Hey Leutz,<br />
wie der Titel schon sagt, geht es um den LZW-Algo. Mir sind Erklärungen gegeben zu den jeweiligen Funktionen, aber bei einer komme ich grad nicht weiter. Ich poste mal die Erklärung und schreibe dann was ich nicht verstehe.</p>
<pre><code>CLZWArray()
Natürlich benötigen Sie einen Konstruktor. Im Konstruktor werden die ersten 256
Einträge des Dictionaries mit den Strings zu den Positionen 0-255 der ASCII-
Tabelle belegt. Um einen int-Wert einem string zuzuweisen, können Sie in
Klassen, die von CLZW abgeleitet sind, die Methode string  intToString(
int  i) verwenden. Zum Beispiel wird der Wert 3 folgendermaßen der Position
3 des Dictionaries zugewiesen:
m_symbolTable[3].setSymbol(intToString(3));
Das Gegenstück ist die Funktion unsigned  int  charToInt(char);, eben-
falls eine statische Funktion der Klasse CLZW. Diese sollten Sie verwenden, damit
auch Umlaute und andere Zeichen mit ASCII-Werten oberhalb 127 korrekt in den
Zahlenbereich 128 bis 255 gewandelt werden.
</code></pre>
<p>Der Abschnitt mit &quot;Das Gegenstück ist die Fkt. ...&quot;, den verstehe ich nicht.<br />
Also erstmal soll ich im Konstruktur die ASCII-Zeichen speichern, aber jetzt ist die Rede davon oberhalb von 127 korrekt umzuwandeln.<br />
Vllcht kann mir das einer mal genauer erklären.</p>
<p>MfG<br />
Aknayirp</p>
<p>EDIT: Ich frage mal noch genauer: Reicht der erste Teil (vor &quot;Der Gegenstück...&quot;) um im Konstruktur das Array mit den ASCII-Zeichen zu füllen oder brauche ich die Fkt. charToInt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2333403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2333403</guid><dc:creator><![CDATA[Aknayirp]]></dc:creator><pubDate>Sat, 22 Jun 2013 19:52:51 GMT</pubDate></item><item><title><![CDATA[Reply to LZW-Encoder mit Array ohne Hashing on Sat, 22 Jun 2013 20:14:38 GMT]]></title><description><![CDATA[<p>Aknayirp schrieb:</p>
<blockquote>
<p>Der Abschnitt mit &quot;Das Gegenstück ist die Fkt. ...&quot;, den verstehe ich nicht.</p>
</blockquote>
<p>Das hat folgende Gewandnis:<br />
Ein char speichert Werte von -128 bis 127 (ist nicht genau definiert, aber man muss darauf vorbereitet sein).<br />
Im Dictionary stehen aber die Werte von 0-255. Deshalb muss der char fachgerecht in einen int umgewandelt werden. Das geht mit <code>static_cast&lt;unsigned char&gt;(char)</code> .</p>
<p>Aknayirp schrieb:</p>
<blockquote>
<p>Also erstmal soll ich im Konstruktur die ASCII-Zeichen speichern, aber jetzt ist die Rede davon oberhalb von 127 korrekt umzuwandeln.</p>
</blockquote>
<p>Der Aufgabensteller hat das mit Encodings offensichtlich nicht ganz verstanden. Er spricht auch von ASCII-Werten von 0-255 (lol). Ist wahrscheinlich ein Fehler von ihm, ignorier das einfach.</p>
<p>Aknayirp schrieb:</p>
<blockquote>
<p>EDIT: Ich frage mal noch genauer: Reicht der erste Teil (vor &quot;Der Gegenstück...&quot;) um im Konstruktur das Array mit den ASCII-Zeichen zu füllen oder brauche ich die Fkt. charToInt?</p>
</blockquote>
<p>Wenn du die Tabelle mit ints füllst, nein. Die Funktion brauchst du nur, wenn du ein char vor dir hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2333408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2333408</guid><dc:creator><![CDATA[leutz]]></dc:creator><pubDate>Sat, 22 Jun 2013 20:14:38 GMT</pubDate></item><item><title><![CDATA[Reply to LZW-Encoder mit Array ohne Hashing on Sat, 22 Jun 2013 20:34:01 GMT]]></title><description><![CDATA[<p><strong>B</strong>ewandnis!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2333415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2333415</guid><dc:creator><![CDATA[Hrm!]]></dc:creator><pubDate>Sat, 22 Jun 2013 20:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to LZW-Encoder mit Array ohne Hashing on Sat, 22 Jun 2013 20:52:50 GMT]]></title><description><![CDATA[<p>Aber ich muss in mein Array (dictionary) doch am Anfang mit den Zeichen der ASCII-Tabelle füllen. So verstehe ich zumindest die Aufgabe des Konstrukturs in dieser Aufgab. Und ich habe das so realisiert.</p>
<pre><code>CLZWArray::CLZWArray()
{
  for(int i=0; i&lt;256; i++)
  {
      m_symbolTable[i].setSymbol(intToString(i));
  }  
}
</code></pre>
<p>Durch die Fkt. intToString wandle ich ja die entsprechende Zahl zum Zeichen um und speichere das so ab.<br />
Habe aber ehrlich gesagt durch deine Aussagen gerade nicht verstanden, ob ich das jetzt richtig mache oder nicht.<br />
Ich frage auch deshalb, weil die ganzen Tests mich nicht zum entsprechenden Ergebnis führen. Und ich glaube es liegt daran.<br />
Wäre toll, wenn man mir das nochmal näher bringen könnte.<br />
Dannke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>MfG<br />
Aknayirp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2333426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2333426</guid><dc:creator><![CDATA[Aknayirp]]></dc:creator><pubDate>Sat, 22 Jun 2013 20:52:50 GMT</pubDate></item><item><title><![CDATA[Reply to LZW-Encoder mit Array ohne Hashing on Sat, 22 Jun 2013 21:41:14 GMT]]></title><description><![CDATA[<p>Bewand<strong>t</strong>nis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2333434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2333434</guid><dc:creator><![CDATA[Hrmm!]]></dc:creator><pubDate>Sat, 22 Jun 2013 21:41:14 GMT</pubDate></item></channel></rss>