Aufgabe 6: Internationalisierung

Verwenden Sie utf-8, wstrings und Internationalsierung
Schreiben Sie ein C++ Programm, das eine Datei öffnet, Wörter aus dieser Datei liest und sie in einer Datei speichert.
  1. Öffnen Sie folgende Datei idiot.txt aus dem zip-Archiv ((idiot.zip hier klicken) oder (freiwillig!) Fjodor Dostojewskis Roman, "Schuld und Sühne", und Sie finden Ihn (hier klicken)
  2. Entpacken Sie das Archiv und ermittteln Sie das Encoding der Datei.
  3. Schreiben Sie ein C++ Programm, das die Datei mit dem richtigen Encoding öffnet und lesen Sie die Datei wortweise und speichern Sie die Wörter zeilenweise in der utf-8 Datei "all_words.txt".
  4. Erzeugen Sie aus der Datei "all_words.txt" mit UNIX-Befehlen eine sortierte Frequenzliste. Was sind die 5 häufigsten Wörter?
  5. Schreiben Sie eine Funktion, die alle Punktuationszeichen in einem Wort entfernt und alle großgeschriebenen Buchstaben des Wortes in kleingeschriebene Buchstaben konvertiert. Wiederholen Sie die vorherige Aufgabe, wenden aber bei jedem Wort diese Funktion an. Jetzt speichern Sie die Wörter in der utf-8 Datei "all_lower_words.txt".
    Der Header der Funktion ist folgendermaßen definiert:
    int rm_punct_to_lower(wstring &word)
    Der Rückgabewert der Funktion soll die Anzahl der Buchstaben des Wortes sein.
  6. Geben Sie aus, wieviele Buchstaben im Text vorkommen.
  7. Erzeugen Sie aus der Datei "all_lower_words.txt" mit UNIX-Befehlen eine sortierte Frequenzliste. Was sind die 5 häufigsten Wörter?
  8. Übung zu rekursiven Funktionen

  9. Schreiben Sie eine rekursive Funktion int mult(int a, int b) , die die Multiplikation zweier Zahlen rekursiv löst:
     
    a * b = a + a + a + (b-mal) 
    z.B. 
    2 * 3 = 2 + 2 + 2