Ich habe mal spaßhalber ein Programm aus der EPROG-Beispielsammlung umgesetzt. Es hat die Nummer 1074 und ermittelt die Hammingdistanz von ein paar übergebenen Codewörtern.
Die Problemstellung | |
---|---|
Wie so vieles im Leben beginnt das Programm mit einer Eingabe. In diesem Fall besteht sie aus drei Teilen: - der Codewortlänge - den Codewörtern - dem Terminatorsymbol Die Codewortlänge bestimmt, wie lange die folgenden Codewörter sein sollen. Das Terminatorsymbol darf kein Codewort sein und muß ein Zeichen lang sein. 0 und 1 fallen damit flach. |
Die Hammingdistanz | |
---|---|
Was ist eine Hammingdistanz? Die genauen Details werden in Grundzüge der Informatik (früher: Einführung in die Informatik, danke Wings-Of-Glory/Informatik-Forum) gelehrt. Im wesentlichen sagt die Hammingdistanz aus, wie stark sich zwei Wörter unterscheiden. Genauer gibt sie die Anzahl der unterschiedlichen Bits in zwei Codewörtern an. Beispiel 1: A="0111" B="0111". Hier ist die Hammingdistanz 0, beide Codewörter sind gleich. Beispiel 2: A="1110" B="0001". Hier ist die Hammingdistanz 4, beide Codewörter sind komplett unterschiedlich. Wir sehen hier auch gleich, dass die Hammingdistanz a priori nur für gleichlange Codewörter definiert ist, 0 als kleinsten und die Länge eines Codewortes als größten Wert hat. |
Die Ausgabe | |
---|---|
Die Hammingdistanz des ersten Beispiels bekommen wir durch die Eingabe "4 0111 0111 =", die Ausgabe soll hier HD=0 lauten. Beim zweiten Beispiel lautet die Eingabe beispielsweise "4 1110 0001 =", die Ausgabe entsprechend HD=4. Wir haben auch einige Fehlerfälle. Entspricht die Eingabe nicht dem gewünschtem Datentyp, soll ein '?' ausgegeben werden. Meines Erachtens ist dieser Fehler nur bei der Eingabe der Codelänge möglich. Interessanter ist der allgemeine Fehlerfall "FALSCHE EINGABE". Er kann erfolgen bei - Codelänge < 1 oder Codelänge > 4 - Anzahl Codewörter < 2 oder Anzahl Codewörter > 8 - wenn ein Wort eine andere als die gewünschte Codelänge hat - wenn das Abschlußsymbol nicht einstellig ist - wenn keine Binärzahlen (=nur aus 0 oder 1 bestehende) als Codewörter angegeben werden und erfolgt in meinem Programm auch bei jedem anderen möglichen Fehler. |
Comments - Make a comment |
The comments are owned by the poster. We are not responsible for its content. |
AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki
Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread
Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread
Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread