Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
Ich dachte das sei in dem letzten halben Dutzend Seiten klar geworden.
Zitat
Der Unterschied zwischen "bedarf keiner" und "darf keine enthalten" ist Dir scheinbar nicht bekannt.
Zitat
Mein Code war eindeutig und verständlich auch ohne Kommentar
Community-Fossil
Unser Lehrer hat uns Punktabzug für unsere Projektarbeit gegeben, weil wir keine Kommentare im Quellcode hatten
Java-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * Schnittstelle des Kontrolleurs für die Oberfläche. * * @author ISB-Arbeitskreis, Umsetzungshilfen Informatik 12 * @version 1.0 */ interface KONTROLLEURINTERFACE { /** * Ausführen der Laufzeitmessungen. * @param anzahlElemente Anzahl der Knoten im Graphen * @param tiefe gibt an, ob mit Tiefensuche gesucht werden soll * @param dijkstra gibt an, ob nach Dijkstra gesucht werden soll */ void WegesucheAusfuehren (int anzahlElement, boolean tiefe, boolean dijkstra); /** * Beendet das Programm. */ void BeendenAusfuehren (); } |
Java-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/** * Kontrolleur des Programms. * * @author ISB-Arbeitskreis, Umsetzungshilfen Informatik 12 * @version 1.0 */ class KONTROLLEUR implements KONTROLLEURINTERFACE { /* Die ereigniserzeugende Oberfläche */ private OBERFLAECHENINTERFACE oberflaeche; /** * Besetzt das Attribut vor. */ KONTROLLEUR () { oberflaeche = null; } /** * Setzt die Oberfläche. * @param o die ereigniserzeugende Oberfläche */ void OberflaecheSetzen (OBERFLAECHENINTERFACE o) { oberflaeche = o; } /** * Ausführen der Laufzeitmessungen. * @param anzahlElemente Anzahl der Knoten im Graphen * @param tiefe gibt an, ob mit Tiefensuche gesucht werden soll * @param dijkstra gibt an, ob nach Dijkstra gesucht werden soll */ public void WegesucheAusfuehren (int anzahlElemente, boolean tiefe, boolean dijkstra) { Model. TESTSUCHEN test; oberflaeche. TiefenSuchzeitSetzen ("---"); oberflaeche. DijkstraSuchzeitSetzen ("---"); test = new Model. TESTSUCHEN (anzahlElemente); test. DurchschnittsTest (tiefe, dijkstra); if (tiefe) { oberflaeche. TiefenSuchzeitSetzen ("" + test. ZeitFuerTiefensucheGeben ()); } if (dijkstra) { oberflaeche. DijkstraSuchzeitSetzen ("" + test. ZeitFuerDijkstraGeben ()); } } /** * Beendet das Programm. */ public void BeendenAusfuehren () { System. exit (0); } } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Diese Schlussfolgerung war schon auf Seite 3 falsch und sie ist noch immer falsch.Aber daraus folgert unweigerlich, dass Code keine sinnvollen Kommentare keine enthalten darf, denn dann wäre er schlecht.
Das hat meine zweite Variante sehr wohl.Aber er hätte nicht funktioniert, da er zb. das Einfügen von neuen Datensätzen nicht behandelt hat.
Zitat von » foreach«
Java-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 /* Die ereigniserzeugende Oberfläche */ private OBERFLAECHENINTERFACE oberflaeche; ... /** * Beendet das Programm. */ public void BeendenAusfuehren () { System. exit (0); }
Zitat
Diese Schlussfolgerung war schon auf Seite 3 falsch und sie ist noch immer falsch.
Zitat
Das hat meine zweite Variante sehr wohl.
Zitat
Bei genau solchen Kommentaren bekomme ich Schmerzen.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
//removing the old entry while(ret.first != ret.second) { if(ret.first->second.first == x && ret.first->second.first == y) { open.erase(ret.first); break; } ret.first++; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
remove_entry(ret); [...] void remove_entry(std::pair<open_container::iterator,open_container::iterator> ret) { while(ret.first != ret.second) { if(ret.first->second.first == x && ret.first->second.first == y) { open.erase(ret.first); break; } ret.first++; } } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Bis hier hin ist es richtig.Zitat
Diese Schlussfolgerung war schon auf Seite 3 falsch und sie ist noch immer falsch.
Sie ist es noch immer nicht.
Du wirst doch jetzt nicht deine eigenen Aussagen verleugnen.
Du schriebst "guter Code bedarf keiner Kommentare".
Wenn man also einen Kommentar sinnvoll einsetzten kann, ist der Code nicht gut (genug).
Und diese Schlussfolgerung ist falsch. Du musst dringend den Unterschied zwischen "nicht dürfen" und "nicht brauchen" lernen.Das heißt, dass Code keine sinnvollen Kommentare keine enthalten darf, denn dann wäre er schlecht.
Es gibt keinen Standard. Was Du da siehst ist ein Pseudo-Mix aus dem, wie ich Java schreiben muss und dem, wie ich C# schreibe. Aber die Formatierung ist ja wohl eindeutig meine SacheHat zwar damit nicht direkt zu tun, aber die Leerzeichensetztung und Klassendgroßschreibung ist auch mehr als fragwürdig.
Das ist jedenfals keiner der normalen "Standards".
Ein Punkt der hier etwas vernachlässigt wird ist glaube ich der eig schon angesprochene Optimierungspunkt. Außerdem sehe ich noch nicht so ganz wo nun der große Unterschied zwischen
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 //removing the old entry while(ret.first != ret.second) { if(ret.first->second.first == x && ret.first->second.first == y) { open.erase(ret.first); break; } ret.first++; }
und
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 remove_entry(ret); [...] void remove_entry(std::pair<open_container::iterator,open_container::iterator> ret) { while(ret.first != ret.second) { if(ret.first->second.first == x && ret.first->second.first == y) { open.erase(ret.first); break; } ret.first++; } }
sein soll (wenn man diesen Code echt nur einmal braucht). Wo genau ist der große Vorteil?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
void remove_entry(open_container::iterator start, open_container::iterator end, open_container open) { open_container::iterator* match = find(start, end); if (match) open.erase(match); } open_container::iterator* find(open_container::iterator start, open_container::iterator end) { for ( ; start != end; start++;) { if (matches(start, x, y)) // x und y sollten Konstanten sein oder übergeben an find werden, ich war hier schlicht zu faul return start; } } bool matches(std::pair<open_container::iterator possibleMatch, open_container x, open_container y) { return possibleMatch->second.first == x && possibleMatch->second.first == y; } |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (27.06.2012, 07:08)
Werbeanzeige