Pseudocode - Welche Form
-
volkard schrieb:
hans rosenberger müßte da einen punkt abziehen, denke ich.
Hans wer?
-
volkard schrieb:
beispiel von mir, wo pseudocode als kommentar noch lebt
du bist also auch so ein frickler, der in seinem code deutsche bezeichner verwendet. da läufts mir kalt den rücken runter.
was ist mit "next", ist dir da das doitsche wort nicht eingefallen?
-
volkard schrieb:
der prof benutzt pseudocode anscheinend, um zwanzigzeiler in dreizeiler zu verwandeln. naja, mir würde das spaß machen, aber nur aus freude am extremen.
Für nen Dreizeiler beweist sich auch die Korrektheit etwas angenehmner. Außerdem werden durch diese Formulierung viele Implementierungsdetails offen gelassen, das heißt man sieht sehr klar den Algorithmus und kann sich danach überlegen welche schicken Datenstrukturen da nun das Maximum an Effizienz für die einzelnen Schritte rausholen. Mir gefällt der Pseudo-Code von dem Kruskal.
-
kulturwächter schrieb:
du bist also auch so ein frickler, der in seinem code deutsche bezeichner verwendet.
ich glaub, ich mache in code, der zur wiederverwendung ansteht, ausschließlich englische bezeichner.
code allerdings, der ausschließlich für das aktuelle projekt da ist, der wird gerne deutsch.
die projektübergreifende liste hat eher sowas wie void push(T const& t){top=new Node(top,t)} stehen. mal überlegen, ob ich T const&& t schreiben sollte. hab immernoch keinen modernen compiler drauf.
-
kulturwächter schrieb:
du bist also auch so ein frickler, der in seinem code deutsche bezeichner verwendet. da läufts mir kalt den rücken runter.
Es gibt sogar Firmen wo die Vorgabe lautet, das man deutsche Bezeichner verwendet. Sei es, weil die Software nur im deutschen Sprachraum verwendet wird, sei es weil die krampfhafte Suche der englischen Fachbegriffe unnötig Zeit dauern würde, oder dazu führen würde das man englische Programmierer mit Lachkrämpfen einliefern müsste...
-
Mein eigener Pseudocode dient in der Regel nur, um mir selbst klar zu machen wie ich ein Problem loesen will. Und er ist daher ist je nach Laune, Komplexitaet des Problems und mein Verstaendnis des selben irgendwo zwischen Mathematisch formuliert (wie beim Kruskal) oder schaut fast schon aus wie Python. Wobei ich beliebig zwischen C++ - Objektnotation ( foo.get_something()) und normaler Funktionsnotation rumspring (get_something_from_foo()), hin & wieder auch Bezeichner verwend die nur ich kenn oder sachen einfach komplett auslass weil sie fuer mich klar sind.
Aktuelles Beispiel:
relevant_subtypes = all_subtypes_of_segment() for each pos in segment: current_subtype = pos.get_subtype() for each sequence: if sequence.get_subtype() == relevant_subtype: ... possible mismatch type 1 else if sequence.get_subtype() in relevant_subtypes // ignore else ... possible mismatch type 2
Wenn ich Pseudocode verwende, um jemand einen Algorithmus zu erklaeren, kommt es ganz auf den Gespraechspartner an, was ich verwende. Ich bevorzuge mathematisch genaue und kurze Notationen. Meiner Erfahrung nach sind die aber sehr ungeeignet, um Leuten "was Neues" beizubringen, weil die meisten Leute Probleme mit solchen Notationen haben und dann gleichzeitig die Notation & den Inhalt verstehen muessen. Da wird dann ein mathematischer Dreizeiler zum mentalen Vierzigzeiler. Nicht umsonst wird der Prof. bei der Kurskal-Folie laenger als 2 Minuten verweilt sein
-
Es gibt keinen Pseudocode, sondern nur Pseudocoder, wie man hier mal wieder sieht.
-
this->that schrieb:
Abgesehen davon finde ich generell Pseudocode sinnlos.
manchmal kommt man aber eben nicht drumrum. Es gibt Vorlesungen, bei denen ohne Pseudocode nicht mitkommen könntest. Da denke ich z.b. an KI Vorlesungen oder Hardware verifikation, wenn du über BDD travesieren muss oder Bild/Urbildberechnung mittels (K)BBDs machen musst, denn wenn du erstmal richtigen Code [1] schreiben müsstest, würde man 300 Folien statt 10 pro Vorlesung durchgehen.
Ich musste schon mit BDDs Bibliotheken arbeiten, das macht es keinen Spaß mehr, wenn man sich davor den Algorithmus nicht in Pseudocode aufgeschrieben hat, denn ohne würde man nichts machen können.
[1] zumal, welche Sprache ist "die Richtige"? C, C++, Java, haskell, ...
-
supertux schrieb:
zumal, welche Sprache ist "die Richtige"? C, C++, Java, haskell, ...
ist doch egal. man kann in jeder sprache c++-programme bauen.
-
volkard schrieb:
ist doch egal. man kann in jeder sprache c++-programme bauen.
verstehe ich nicht, was meinst du damit?
-
supertux schrieb:
volkard schrieb:
ist doch egal. man kann in jeder sprache c++-programme bauen.
verstehe ich nicht, was meinst du damit?
das sollte ein witz sein.
-
dann war er schlecht (oder ich bin zu blöd)
denn ich hab ihn nicht verstanden
-
supertux schrieb:
dann war er schlecht (oder ich bin zu blöd)
denn ich hab ihn nicht verstanden
ich ehrlich gesagt auch nicht. vielleicht sollte es 'ne anspielung sein auf: 'aus 300 folien machen wir 10'. wie er's meinte, wird er uns bestimmt bald sagen.
-
Wenn es eine Anspielung war, dann auf "a good programmer can write FORTRAN in any language"
-
*scherz-on*
wörtlich könnte man es auch auslegen als "man kann in jeder sprache einen C++ compiler programmieren"
*scherz-off*
-
Helium schrieb:
Wenn es eine Anspielung war, dann auf "a good programmer can write FORTRAN in any language"
ja, so sollte ihr das mal nehmen.
-
asc schrieb:
Es gibt sogar Firmen wo die Vorgabe lautet, das man deutsche Bezeichner verwendet. Sei es, weil die Software nur im deutschen Sprachraum verwendet wird, sei es weil die krampfhafte Suche der englischen Fachbegriffe unnötig Zeit dauern würde, oder dazu führen würde das man englische Programmierer mit Lachkrämpfen einliefern müsste...
dann bin ich sehr froh, dass ich noch nicht in einer firma mit solchen vorgaben arbeiten musste. noch froher sogar, ausschließlich in firmen gearbeitet zu haben, deren vorgaben das exakte gegenteil besagen.
obwohl, wenn man es konsequent macht...
#define neu new #define loeschen delete #define nix void typedef int ganzzahl;
-
kulturwächter schrieb:
obwohl, wenn man es konsequent macht...
Es geht um eigene Bezeichner. Davon ganz abgesehen finde ich es persönlich schlimmer wenn Begriffe wegen dem Englischzwang falsche Bedeutungen bekommen, weil die Programmierer nicht immer die fachlich richtigen englischen Begriffe kennen (Und Konzepte, wenn es den sowas gibt, in Deutsch vorliegen; weil die Software nunmal in erster Linie für den deutschsprachigen Markt bestimmt ist).
cu André
-
asc schrieb:
Es gibt sogar Firmen wo die Vorgabe lautet, das man deutsche Bezeichner verwendet.
BMW?
-
asc schrieb:
Es geht um eigene Bezeichner. Davon ganz abgesehen finde ich es persönlich schlimmer wenn Begriffe wegen dem Englischzwang falsche Bedeutungen bekommen, weil die Programmierer nicht immer die fachlich richtigen englischen Begriffe kennen (Und Konzepte, wenn es den sowas gibt, in Deutsch vorliegen; weil die Software nunmal in erster Linie für den deutschsprachigen Markt bestimmt ist).
Schonmal ungarische Software warten muessen?
Dann wirst du schlechtes englisch lieben lernen.Ein "nur fuer den X-Markt bestimmt" finde ich persoenlich immer sehr fragwuerdig. Denn dauernd aendern sich anforderungen und ploetzlich verkauft sich die Software auch in Frankreich und dann bald hauptsaechlich in frankreich und du kannst aber keine franzoesischen entwickler nehmen, weil alles deutsch entwickelt wurde - und wenn du es doch machst sackt die qualitaet logischerweise ab.
Ich musste einige Zeit eine ungarische Software warten - war zum glueck nicht uebermaessig komplex, aber da hab ich mir sehr muehsam ein woerterbuch fuer die funktionen anlegen muessen damit ich halbwegs schnell etwas verstehe...