Hey Leute,
ich soll für die Uni folgende Aufgabe lösen:
Ich habe bisher viel recherchiert über Häufigsten Buchstaben ausgeben usw. Allerdings fehlt mir der Sinn bzw. die Erklärung dazu. Ich stecke einfach fest und bin relativ ansatzlos.
Würde das ganze irgendwie mit Char-Arrays lösen, aber dann steht in der Aufgabe, dass man das mit Integer macht und die dann zu einem Char castet.
Möchte da ganz offen sprechen: Da fehlt wohl auch einfach Grundwissen, dass ich aufgrund von den KiTa Keimen meiner Tochter und den daraus resultierenden Krankheiten leider immer mal verpasse vermittelt zu bekommen.
Kann sich vielleicht ein guter Samariter erbarmen, und mir erklären wie und wo und überhaupt?
ich soll für die Uni folgende Aufgabe lösen:
Buchstabenhäufigkeit
Aufgabe
Ihr Programm erhält zwei Zeichenketten als Kommandozeilenparameter. Die erste etwas längere Zeichenkette wurde mit dem Caesar-Verfahren verschlüsselt. Die zweite Zeichenkette enthält Buchstaben, die vermutlich am häufigsten im Klartext vorkamen. Ihre Aufgabe besteht nun darin, den in der ersten Zeichenkette am häufigsten vorkommenden Buchstaben zu ermitteln und auszugeben. Weiterhin soll für jeden Buchstaben der zweiten Zeichenkette die Verschiebung vom Zeichen zum häufigsten Zeichen der ersten Zeichenkette ermitteln und der Wert ausgegeben werden. Es werden nur Buchstaben berücksichtigt, wobei Groß- und Kleinschreibung ignoriert werden. Alles was kein Buchstabe ist, wird ignoriert. Es gibt immer genau einen Buchstaben, der in der ersten Zeichenkette am häufigsten vorkommt.
Vorgehensweise
Sie müssen als für jedes Zeichen der ersten Zeichenkette ermitteln, wie häufig dieser vorkam. Dazu sollten Sie sich ein Feld der Länge 26 anlegen (es gibt 26 Buchstaben, wobei Sie davon ausgehen könne, dass anstatt ß nur ss, anstatt ä, ö oder ü entsprechend ae, oe oder ue geschrieben wird).
Sobald Sie die Häufigkeiten ermittelt haben, wählen Sie den Buchstaben aus, der am häufigsten vorkam und vergleichen diesen mit jedem Buchstaben der zweiten Zeichenkette und geben jeweils die Verschiebung an. Haben Sie z.B. herausgefunden, dass der häufigste Buchstabe g ist und in der zweiten Zeichenkette kommt nur en vor, so würde die folgende Ausgabe erwartet werden:
g
2
19
Damit e zu g wird, hättes jedes Zeichen um 2 Stellen verschoben werden müssen. Damit n zu g wird, hätte jedes Zeichen um 19 Stellen verschoben werden müssen.
Hinweise
Nutzen Sie aus, dass jedes Zeichen (char) durch eine Zahl dargestellt wird und die Buchstaben a bis z hintereinander vorkommen. Wenn Sie ein Feld der Länge 26 anlegen, steht die Position 0 für das a und 25 für das z. Wenn Sie 'a'-'a' rechnen, erhalten Sie immer 0, wenn Sie 'z'-'a' rechnen, erhalten Sie immer 25. Umgedreht können Sie aus der Position wieder das Zeichen erhalten (0 + 'a'ergibt den Wert für a und 25+'a' ergibt den Wert für z). Wie Sie bereits wissen, erhalten wir dann allerdings immer ein int-Wert, den Sie noch zu char casten müssen.
Ich habe bisher viel recherchiert über Häufigsten Buchstaben ausgeben usw. Allerdings fehlt mir der Sinn bzw. die Erklärung dazu. Ich stecke einfach fest und bin relativ ansatzlos.
Würde das ganze irgendwie mit Char-Arrays lösen, aber dann steht in der Aufgabe, dass man das mit Integer macht und die dann zu einem Char castet.
Möchte da ganz offen sprechen: Da fehlt wohl auch einfach Grundwissen, dass ich aufgrund von den KiTa Keimen meiner Tochter und den daraus resultierenden Krankheiten leider immer mal verpasse vermittelt zu bekommen.
Kann sich vielleicht ein guter Samariter erbarmen, und mir erklären wie und wo und überhaupt?