// Autor: Bernhard FISCHER // MNr.: 0126057 // E-mail: e0126057@student.tuwien.ac.at // BspNr.: 1150 // Beschreibung: HAMMING-CODE; Eingabe:Datenwort, Ausgabe: Prüfbits ****************** * Dokumentation: * ****************** Leistung des Programms: Ein Datenwort wird im Binärcode eingegeben. Das Programm berechnet die für den HAMMING-CODE benötigten Prüfbits,und gibt NUR die Prüfbits wieder aus. Laut Spezifikation wird ein Datenwort mit der maximalen Grösse von 6 Zeichen eingelesen. Um auf Eingabefehler zu überprüfen, wurde dabei ein String eingelesen; nur die Eingaben "0" oder "1" werden in der Form z.B.: "001101" akzeptiert. Bei einer unzulässigen Eingabe endet das Programm mit der Ausgabe: "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub. Anmerkung: Space beendet die Eingabe! Das Programm ist allgemein geschrieben und beliebig erweiterbar, d.h. setzte die Konstante "MaxEingabeLaenge = 6", stehend am Beginn des Programms auf eine beliebige Zahl(z.B.: 27), so sind auch grössere Eingabedaten möglich. Zur Methode Einlesen: --------------------- Mit der Methode readWord() wird ein String eingelesen. Anschliessend wird dieser auf Zulässigkeit überprüft und in einzelne Chars aufgespalten, dies geschieht mit der Methode getChars(). Diese Chars werden anschliessend in einem CharArray gespeichert. Zur Methode Umwandeln: ---------------------- Hier wird das eingelesene Datenwort(CharArray) in ein IntegerArray umgewandelt; ist nötig für die Methode Berechnung. Zur Methode Berechnung: ----------------------- Prinzip der Berechnung von Prüfbits für Hamming-Code(siehe auch Spezifikation): Man nehme den Gesamtcode(besteht aus den eingegebenen Datenbits und den Prüfbits), welcher folgende Form aufweist: PPDPDDDPDD...(P:Prüfbit, D:Datenbit). Jedes Zeichen bekommt einen Index, beginnend von 1. Erkennbar: Jedes Bit, dass eine Potenz von 2 ist, ist ein Prüfbit. Um ein Prüfbit zu berechnen geht man folgendermassen vor: Alle Potenzen von 2(2h0,2h1,2h2...) die ein Datenbit teilen, sind zugleich der Index der Stelle, zu welchem Prüfbit ein Beitrag geliefert wird. Beispiele: So liefert das Datenbit an der Stelle 5 einen Beitrag zu Prüfbit an Stelle 4 und 1, dass Datenbit an der Stelle 10 einen Beitrag zu den Prüfbits an der Stelle 8 und 2 etc. Dies wird mit der Methode Berechnung ausgeführt, anschliessend werden die betroffenen Prüfbits ausgegeben. Zu der Ausgabe: Verwendung der Schleife ist notwendig, da die Prüfbits im "Pruefbit"-Array nur an den Stellen der Potenzen von 2 gespeichert sind. So mussten diese Stellen nochmals ermittelt werden. Nach der Ausgabe eines Prüfbits folgt ein Leerzeichen(ausser letztes Bit), abschliessend ein Zeilenvorschub.