Entwicklung eines Pseudocodes zur Komprimierung von Bildatein

Hallo Leute,
wie setze ich die Folgende Aufgabe um ?

Beispiel: Rohdaten
QQQQRRRRRRTTTTTTTTTTLLLLLLLLLLMNNNVVVVVVVVVVVAAAAAAAAAAAAA
Nach der Komprimierung (§ ist das Sonderzeichen,das die Wiederholung einleitet)
§4Q§6R§10T§11LMNNN§11V§13A

Ich darf folgende Funktionen und Variablen benutzen
Bilddaten [ ] : enthält die Daten in Form eines Arrays (Typ Zeichen)
Bilddaten.GetLength() :liefert die Größe des Arrrays
Bilddaten[indes] :liefert ein Zeichen an der Stelle index(nullbasiert)
KomprimierteDaten [ ] :Array für Speicherung der Komprimierung
KomprimierteDaten.Add(Zeichen) : Fügt dem Array ein zeichen hinzu

Mein erster Lösungansatz war das ich mir ein Struktogramm erstelle und den dann in Pseudocode umwandel. Wie würdet ihr es machen ? Habt ihr eine Idee wie ich es umsetzen kann ?
 
Schwer zu sagen, ich für meinen Teile denke wüsste jetzt schon direkt wie ich vorgehen würde das ich direkt losschreiben würde.

Obs dann wirklich passt was man sich vorgestellt hat sieht man ja dann meist eh erst wenns vor einem liegt, in vorm vom halt Pseudocode oder richtigem.
 
Hallo Spyke,
kannst du mir ein Kleinen Ausschnitt aus deinem Code den du dir gedacht hast schreiben ? ich möchte nicht die Komplette-Lösung haben jedoch ein Anfang damit ich weiß wie ich vorgehen muss
 
Welche Zeichen können denn in den Rohdaten vorkommen? Du hast bei Dir schon das schöne Beispiel gezeigt, dass Du vier gleiche Zeichen auf §4Q§ "kürzt", wobei das Ergebnis die gleiche Länge hat wie die Ausgangsdaten. Dies könnte dazuführen, dass Du beispielsweise drei Zeichen auf §3Q§ vergrößerst und somit die Ergebnisdaten auch länger sein können als die Ausgangsdaten.

Wenn Du nur Buchstaben verwendest, kannst Du auch die Paragraphenzeichen weglassen. Außerdem solltest Du eine Regel einführt, die die Ausgangsdaten erst dann komprimiert, wenn das Ergebnis auch wirklich kürzer ist als das Original.
 
hallo einfach nur crack
es soll erst ab 4 Zeichen gekürzt werden
wieso kann ich dann das Paragraphenzeichen weglassen wenn ich nur Buchstaben benutze ?
 
Ich würde die Zeichen alle einzeln durchlaufen und zählen solange immer das gleiche zeichen vorkommt.
Dabei die Position des ersten vorkommens des zeichens merken.

Ändert sich das Zeichen, ev. schaun, wie @einfach nur crack schon bemerkte, ob sich das komprimieren lohnt.
In diesem Fall wenn das vorkommen des zeichen öfters als 4 mal in einer reihenfolge auftaucht.

Dann, wenn kleiner 4 die original zeichen in das komprimierungs array, ansonsten deine komprimierung in das komprimierungs array.
 
Ich würde die Zeichen alle einzeln durchlaufen und zählen solange immer das gleiche zeichen vorkommt.
Dabei die Position des ersten vorkommens des zeichens merken.

Ändert sich das Zeichen, ev. schaun, wie @einfach nur crack schon bemerkte, ob sich das komprimieren lohnt.
In diesem Fall wenn das vorkommen des zeichen öfters als 4 mal in einer reihenfolge auftaucht.

Dann, wenn kleiner 4 die original zeichen in das komprimierungs array, ansonsten deine komprimierung in das komprimierungs array.

HÄ jetzt versteh ich garnix mehr :(
 
so habe jetzt einfach mal ein pseudocode geschrieben aber ich frage mich ob er auch richtig ist :confused:

SeqChar p = < NächstesEingabezeichen >;
Char k = NächstesEingabezeichen;
Wiederhole:
Falls p & < k > in Tabelle enthalten
dann p = p & < k >
sonst trage p & <k> neu in Tabelle ein
(und erzeuge neuen Index dafür);
Schreibe Tabellenindex von p auf Ausgabe;
p = < k >;
Ende Fallunterscheidung;
k = NächstesEingabezeichen;
solange bis Eingabeende
Schreibe Tabellenindex von p auf Ausgabe;
 
Zurück