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.
Das Hauptprogramm | |
---|---|
Hier passiert eigentlich nicht mehr besonders viel. Auf eine Verwendung der Eprog-Eingaberoutinen habe ich verzichtet; bei einer ungültigen Eingabe könnte sich das Programm nämlich aufhängen, siehe auch Artikel zur eprog.jar. Unsere main() ist dennoch sehr kompakt, weil die Arbeit auf viele Methoden aufgeteilt ist. Man könnte theoretisch die distance(String) in die main() umsiedeln. Vorteil: ??? Nachteil: Wiederverwertung (siehe auch Folgerunden) wird erschwert. Ist also keine gute Idee. 206 public static void main(String[] args) { 207 // Nachdem die eprog-Bibliothek buggy ist 208 // (siehe http://www.kiesler.at/article53.html) 209 // hier die ausprogrammierte Variante. 210 // 211 // ist erlaubt, benutzt nur das JDK. 212 213 InputStreamReader ins=new InputStreamReader(System.in); 214 BufferedReader reader=new BufferedReader(ins); 215 216 try { 217 218 EprogIO.println("HD="+distance(reader.readLine())); 219 220 } catch(NumberFormatException nfe) { 221 222 EprogIO.println(SYNTACTIC_ERROR); 223 224 } catch(Exception e) { 225 226 EprogIO.println(SEMANTIC_ERROR); 227 228 } 229 } |
Beschreibung main() | |
---|---|
213-214 Das komplexe Ein/Ausgabemodell wird ansich recht gut von eprog.jar versteckt. Da diese aber nicht so ganz fehlerfrei funktionioniert und sie in der Praxis nicht sehr professionell 'rüberkommt, wagen wir uns trotzdem darüber. Der BufferedReader ermöglicht, aus dem Eingabestream (System.in) eine Zeile einzulesen ("readLine"). 216 Dank Exceptionhandling ist unser eigentliches Hauptprogramm gerade mal eine Zeile lang: 218 Wir geben schlichtweg HD=distance(Eingabe) aus, also "HD=", gefolgt von der ermittelten Hammingdistanz der Eingabecodewörter. 220-222 gibt's ein Zahlenformatproblem, hat der Benutzer also eine ungültige Codewortlänge eingegeben (ist der einzige Fall, der in unserem Programm relevant ist), geben wir "?" aus. Hier als Konstante angegeben, sie ist am Anfang der Datei mit static final definiert. 224-226 jede andere Exception liefert "FALSCHE EINGABE" Wieder ein EPROG-Programm überstanden! |
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