Login
Newsletter
Werbung

Thema: Pro-Linux: Algorithmen in C++

72 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von C++Kenner am Do, 17. April 2003 um 09:37 #
...aber wenn ich schon wieder Quelltexte darin sehe die als Variablennamen v,i,m,n... verwenden und dann damit ein komplizierter Algorithmus aufgebaut wird, wundere ich mich nicht wenn ich mir so manchen Quelltext von frisch gebackenen Informatikern ansehe...
[
| Versenden | Drucken ]
  • 0
    Von Granini am Do, 17. April 2003 um 09:43 #
    i ist doch quasi Standard für for-Schleifen.
    [
    | Versenden | Drucken ]
    0
    Von hrglgrmpf am Do, 17. April 2003 um 13:37 #
    hmm, dazu fällt mir eine Stelle im Linux Kernel Coding Style ein:

    "C is a Spartan language, and so should your naming be. Unlike Modula-2 and Pascal programmers, C programmers do not use cute names like ThisVariableIsATemporaryCounter. A C programmer would call that variable "tmp", which is much easier to write, and not the least more difficult to understand."

    [...]

    "Local variable names should be short, and to the point. If you have some random integer loop counter, it should probably be called "i". Calling it "loop_counter" is non-productive, if there is no chance of it being mis-understood. Similarly, "tmp" can be just about any type of variable that is used to hold a temporary value. If you are afraid to mix up your local variable names, you have another problem, which is called the function-growth-hormone-imbalance syndrome. See next chapter."

    http://purists.org/linux/

    [
    | Versenden | Drucken ]
    • 0
      Von Jens am Do, 17. April 2003 um 16:21 #
      Moin,

      kurze Namen a la i,j für Schleifen und tmp & Co sind ja ok. Aber für Lehrzwecke ist das absolut nicht geeignet. Schliesslich soll man den Code ja auch verstehen, ohne vorher mit 'n Textmarker alle Variablen markiert zu haben, oder? Und die Wartbarkeit des Codes bleibt ab einer gewissen Grösse auch auf der Strecke.

      - Jens

      [
      | Versenden | Drucken ]
      • 0
        Von Deniz am Do, 17. April 2003 um 17:21 #
        Nur so ein Beispiel aus dem Buch, schon das Abtippen ist mühsam.


        int gcd(int u, int v)
        {
        while( u > 0 )
        {
        if( u < v ) { t = u; u = v; v = t; }
        u = u - v;
        }
        return v;
        }

        [
        | Versenden | Drucken ]
        • 0
          Von Deniz am Do, 17. April 2003 um 17:25 #
          Bei genauer betrachtung fällt natürlich gleich auf das eine (int) Variable nicht initialisiert ist.

          int gcd() {
          int t;
          ..

          [
          | Versenden | Drucken ]
          • 0
            Von Linux-phased am Do, 17. April 2003 um 17:46 #
            Jetzt mal ohne Witz, ich würde das sogar so schreiben:


            int gcd(int u, int v){while( u > 0 ){if( u < v ) {int t = u; u = v; v = t; }u = u - v;}return v;}

            Oder so, auszug aus nem code den ich Gestern geschrieben habe:

            foreach $S1 (@S1){foreach $I1 (@I1){if ($I1 eq $S1){`rm -f $Dir_Incoming1/$m/$I1`; print "Removing old log $Dir_Incoming1/$I1\n"; }}}

            Nix für ungut, aber an sowas müsst ihr euch im wahren Leben gewöhnen.

            [
            | Versenden | Drucken ]
            • 0
              Von Jens am Do, 17. April 2003 um 18:11 #
              Hi

              >int gcd(int u, int v){while( u > 0 ){if( u < v ) {int t = u; u = v; v = t; }u = u - v;}return v;}
              >
              >Oder so, auszug aus nem code den ich Gestern geschrieben habe:
              >
              >foreach $S1 (@S1){foreach $I1 (@I1){if ($I1 eq $S1){`rm -f $Dir_Incoming1/$m/$I1`; print "Removing old log $Dir_Incoming1/$I1\n"; }}}
              >
              >Nix für ungut, aber an sowas müsst ihr euch im wahren Leben gewöhnen.

              so ein Blech! Sitzt Du im Büro auch auf einem Nagelbrett? Denn Schrott verstehst Du doch selber schon in zwei Monaten nicht mehr! Was bitte spricht dagegen, den Code in mehrere Zeilen aufzuteilen? Habt Ihr im Büro nur 'n Braillezeile am PC oder was? *kopfschüttel*

              - Jens

              [
              | Versenden | Drucken ]
              0
              Von heroo am Fr, 18. April 2003 um 00:09 #
              > Nix für ungut, aber an sowas müsst ihr euch im wahren Leben gewöhnen.

              Absoluter Boedsinn! Wenn du das erst meinst, bist du zweifellos verrueckt!

              [
              | Versenden | Drucken ]
              0
              Von dergewöhnliche am Fr, 18. April 2003 um 00:26 #
              Mit so einem Code, fliegst Du bei uns raus!
              Typische Perl-Pfuscher +bäh+.
              [
              | Versenden | Drucken ]
              • 0
                Von Linux-phased am Fr, 18. April 2003 um 10:18 #
                :-) Ich würde wahrscheinlich gar nicht erst bei euch anfangen, weil ihr mich nicht bezahlen könntet.

                Wenn ihr schon mal guten Perl Programmieren begegnet wärt, dann wäre obiges für euch normal, denn wir lieben Einzeiler, oder schreibst du in eine Konsole dann auch:

                {
                {
                }
                }

                :-) Also Jungs, wenn ihr auch mal Geld fürs Programmieren bekommt und zwar anständig, dann reden wir weiter.

                [
                | Versenden | Drucken ]
                • 0
                  Von Granini am Fr, 18. April 2003 um 10:36 #
                  Dann sag mal bitte was der Vorteil von Deinem Einzeiler ist?
                  Soll das später lesbarer sein? Oder wollt Ihr Papier sparen wenn Ihr Euern Quellcode audrucken müsst? Oder was?
                  [
                  | Versenden | Drucken ]
                  • 0
                    Von Linux-phased am Fr, 18. April 2003 um 11:08 #
                    Der Vorteil ist, dass du es ganz einfach in die Konsole eingeben kannst, mit so nem Einzeiler erledigst du Sachen, für die andere ein ganzes Programm schreiben müssen, aber ich denke eher, du hast noch nie einen Perl Einzeiler gesehen, ich rede z.B. von:

                    perl -e 'opendir LOG, "/var/log"; while($list=readdir(LOG)){if($list=~m/(.*).gz/){print "$list\n";}}'

                    Schon mal Perl programmiert?

                    [
                    | Versenden | Drucken ]
                    • 0
                      Von dergewöhnliche am Fr, 18. April 2003 um 22:24 #
                      Schonmal Perl programmiert?
                      Man, wer nimmt schon Perl? Perl und seine Hilfskonstrukte fürs OOP?
                      Für was soll denn Perl nun der Bringer sein? Ein paar HTML-Seiten parsen?
                      Mach ich in der Bash, den Rest erledigt ein C-Prog und wenn ich bock
                      auf scripten habe nehme ich Python ;-).
                      Ehrlich ich habe mir 3 Jahre Perl reingezogen, aber dir Sprache ist von
                      hinten bis vorne reines Flickwerk.

                      mfg knutschi

                      [
                      | Versenden | Drucken ]
                      0
                      Von erkules am Sa, 19. April 2003 um 03:39 #
                      Was spricht gegen ls /var/log/*.gz?
                      [
                      | Versenden | Drucken ]
                      0
                      Von Christoph am Di, 22. April 2003 um 12:06 #
                      Am Anfang des Patterns nach .* zu suchen ist unsinnig. Das dann auch noch zu matchen auch. Der `.' gehoert escaped und das Ende des Dateinamens muss man bei der Suche mit $ markieren.

                      Des weiteren macht - wie mein Vorposter schon richtig bemerkt hat - ein ls -1 /var/log/*.gz das selbe einfacher, lesbarer und performanter.

                      Und du bekommst wirklich Geld fuers programmieren? Traurig.

                      [
                      | Versenden | Drucken ]
                      • 0
                        Von Linux-phased am Di, 22. April 2003 um 16:59 #
                        Man euer IQ liegt auch nicht höher als 10 oder, ich hab das als Beispiel genommen, wie ein Einzeiler aussieht.

                        Ich sollte mich mit Leuten wie euch gar nicht unterhalten.

                        >>>>Am Anfang des Patterns nach .* zu suchen ist unsinnig.

                        Es hat niemand die Aufgabe gestellt, das die gesuchte Datei ein gz Archiv sein soll. Wenn ich nach nem gz Archiv suche, dann mache ich das so: ~m/.gz/g, ihr hättet sofort ne 6 bei mir, weil ich Sachen annehmt, die nicht dastehen. Im Zweifelsfalle wird sowas nachgefragt, wenn im Pflichtenheft nicht eindeutig definiert -- Anfänger.

                        P.S. ja ls *.gz tut eben nicht das gleiche, wie ich oben definiert hatte, denn mein perl Einzeiler sucht alles was .gz hat :-)

                        [
                        | Versenden | Drucken ]
                        • 0
                          Von DvD am Di, 22. April 2003 um 23:15 #
                          P.S. ja ls *.gz tut eben nicht das gleiche, wie ich oben definiert hatte, denn mein perl Einzeiler sucht alles was .gz hat

                          ... und noch ein bisschen mehr, wobei 'bisschen' hier schon sehr stark untertrieben ist.
                          Der regulaere Ausdruck, der Deine Spezifikation (bzw. einen entscheidenen Teil davon) erfuellt, muss lauten /\.gz/ (wobei hier "/" und "/" natuerlich nicht zum Ausdruck gehoeren, sondern ihn hier nur der Uebersichtlichkeit halber begrenzen).

                          Das Gleiche wie Dein "Einzeiler" wuerde dieser Befehl in der Shell bewirken: ls -1 /var/log/*.gz*


                          Die Klammern in Deinem Ausdruck sind nicht nur voellig ueberfluessig, sondern sogar kontraproduktiv.

                          Wenn ich nach nem gz Archiv suche, dann mache ich das so: ~m/.gz/g

                          Aehnlicher Fehler wie oben schon beschrieben (korrekt waere /\.gz$/) und ausserdem unnoetige Verwendung von Modifizierern.

                          [x] Deine Software ist closed source.

                          Asche auf mein Haupt, jetzt hab ich nen Troll gefuettert.

                          [
                          | Versenden | Drucken ]
                  0
                  Von Jens am Sa, 19. April 2003 um 10:58 #
                  Moin,

                  wenn Du für Dich so'n Einzeiler verbrichst ist das ok. In Programmen, und ganz besonders in komplizierten Abschnitten, schreibt man das eben nicht als Einzeiler (und dazu noch ohne Bemerkungen). Andere müssen den Code später schnell begreifen und ggf. ändern können. Das ist viel produktiver und steigert die Qualität der Software. Ein Verstoss gegen die Standards ist ein Abmahngrund!

                  - Jens

                  [
                  | Versenden | Drucken ]
              0
              Von C++Kenner am Fr, 18. April 2003 um 13:41 #
              int gcd(int u, int v){while( u > 0 ){if( u < v ) {int t = u; u = v; v = t; }u = u - v;}return v;}
              Und welöchen Vorteil hast du da?
              Ist das Programm schneller? Schützt du die Umwelt weil du weniger Speicher verbrauchst? Werden die binaries kleiner? Wird es schneller compiliert?

              Wohl eher nicht. In einer ein-Mann Softwareklitsch kann man das schon so machen wenn man will, aber in einem grossen Projekt in dem viele Entwickler arbeiten wäre sowas wohl eher, ich sag mal, kontraproduktiv und würde recht schnell zu einer Verkleinerung des Teams führen.

              [
              | Versenden | Drucken ]
              • 0
                Von Linux-phased am Fr, 18. April 2003 um 15:10 #
                Ich hab Zugriff auf ein 8GB großes CVS, glaubst du, dass ich in einem 1 Mann Betrieb arbeite?

                >>>Ist das Programm schneller? Schützt du die Umwelt weil du weniger Speicher verbrauchst? Werden die binaries kleiner? Wird es schneller compiliert?

                Verarschen kann ich mich selbst.

                Der Vorteil der Zeile ist, wie ich es oben schon erwähnt habe, man sieht, die komplette Aktion in einer Zeile, wer eine Zeile mit so einem simplen Code nicht lesen kann, der dürfte bei uns nicht mal als Praktikant anfangen :-)

                Es kommt natürlich immer auf die Schwierigkeit einer Routine an, ich sag ja nicht, dass mein ganzer Code so geschrieben wird, aber sowas einfaches wie da oben, while if und noch nicht mal else, da frag ich mich dann schon, wo ihr da Probleme damit habt?

                Aber lassen wir das, ich muss wieder was arbeiten.

                [
                | Versenden | Drucken ]
              0
              Von ein_auch_perl_kundiger am Fr, 18. April 2003 um 19:26 #
              > foreach $S1 (@S1) {foreach $I1 (@I1) {if ($I1 eq $S1) {`rm -f $Dir_Incoming1/$m/$I1`;print "Removing old log $Dir_Incoming1/$I1\n";}}}

              Dir ist in Deinem Durcheinander wohl aufgefallen, dass Du beim Ausprinten einen Teil des Pfades unterschlagen hast (Stichwort: $m) -> wie war das mit dem Praktikanten in Eurer Firma.

              Abschliessend hoffe ich nicht, dass Eurer ganzes 8 GB Repository mit solchen Fehlern gespickt ist!

              [
              | Versenden | Drucken ]
          0
          Von heroo am Fr, 18. April 2003 um 00:25 #
          > int gcd(int u, int v)
          > {
          > while( u > 0 )
          > {
          > if( u < v ) { t = u; u = v; v = t; }

          Das wuerde ich aber etwas anderst schreiben. Bis man merkt, dass t nur ein dummy ist, und dass hier ein "swap" ausgefuehrt wird, braucht man schon mindestens 5 sek Bedenkzeit (was relativ lang ist). Warum benutz der nicht std::swap? Oder nennt t besser dummy, oder tmp?

          > u = u - v;

          was soll das denn? jeder c/c++ programmierer schreibt da u -= v;

          > }
          > return v;
          > }

          Ich finde die folgende Loesung besser (die Einrueckung muss man sich denken):

          template
          T gcd(T x, T y)
          {
          while( x > 0 )
          {
          if( x < y )
          std::swap(x,y);
          x -= y;
          }
          return y;
          }

          Funzt auch mit long, char, short und auch mit eigenen Integer-Klassen.

          [
          | Versenden | Drucken ]
          • 0
            Von heroo am Fr, 18. April 2003 um 00:28 #
            Die erste Zeile muss natuerlich so aussehen:

            template< typename T >

            [
            | Versenden | Drucken ]
            0
            Von Daniel am Sa, 19. April 2003 um 00:25 #
            Hmm, ich bin zwar kein C-Programmierer, jedoch frage ich mich, dass hier bei allen Verbesserungen des Algorithmus usw. nicht an das wichtigste gedacht wird:
            Kommentare

            Wenn ihr mal ein 2-3 Jahre altes Programm von Euch selbst anschaut, dann seit ihr bestimmt froh, wenn ich wisst, warum ihr gerade in Zeile 1345 eine for-Schleife habt und nicht schon 10 Zeilen vorher bzw. was die for-Schleife hier macht. Das gleiche könnte man mit if, while, case, count,...........machen, aber bitte:
            Kommentieren

            In meinem aktuellen Projekt habe ich etwa 2mal so viele Zeilen Kommentare im Quelltext als wirklichen Code, aber dafür weiss ich in 10 Jahren noch, warum ich eine scheiss if-Funktion für statische Indexwerte verwendet habe und nicht gleich eine case-Funktion.

            [
            | Versenden | Drucken ]
            • 0
              Von arni am Sa, 19. April 2003 um 00:57 #
              Wenn man sich an die Grundregeln guten Programmierstils hält und logische Zusammenhänge in extra Funktionen packt, kann man zum grössten Teil auf Kommentare verzichten!
              Der Kommentar im Code soll ja nicht dazu gedacht sein, den Algorithmus zu erklären. Für sowas schreibt man eine Dokumentation.

              Jede Variable und jedes Konstrukt in einen Kommentar zu kleiden, ist ein typischer Anfängerfehler. Schaut man sich BSD, Linux oder generell GPL-Code an, wo Experten am Werk waren (zum Beispiel im Kernel), sieht man das dort nur sehr massvoll von Kommentaren gebrauch gemacht wird...

              [
              | Versenden | Drucken ]
              • 0
                Von nixname am Di, 22. April 2003 um 09:31 #
                Und ich kann Dir massig Coding zeigen, wo niemand mehr weiß, was das Zeug macht und wofür es gebraucht wird. Keiner getraut es sich zu löschen, da dann eventuell irgendetwas nicht mehr läuft. Kommentare sind wichtig, man braucht nicht zu übertreiben, aber ich hasse es, wenn hinter einer Variablendeklaration nicht wenigstens ein Text steht, wofür die nun gut sein soll. Wer schon mal C-Coding eines japanischen Programmierers mit jp. Variablennamen verstehen mußte, der weiß wovon ich rede. Dumm ist nur, wenn der Kommentar dann auch in jp. verfaßt ist.
                [
                | Versenden | Drucken ]
0
Von arni am Do, 17. April 2003 um 10:32 #
"Algorithmen in C++" ist zwar nicht mehr ganz so taufrisch (habe hier die 1. Auflage von 1995), trotzdem ein Super Buch von dem Algorithmen-König Sedgewick :)

Handelt es sich bei dem hier beschriebenen Buch von 1999 um einen Nachdruck der ersten Auflage oder findet man dort neues?

[
| Versenden | Drucken ]
0
Von frank am Do, 17. April 2003 um 10:38 #
Quark.
Das einzig wahre ist Niklaus Wirths Algorithmen & Datenstrukturen ;-)
Sedgewick ist schon sowas wie ein Standard.
Da er viele Sachen so übernimmt (C->C++) frage ich mich wann er richtig abschreibt und
dann C++-> Java herausbringt.
Oder gibts das schon ?
Gruss Frank
[
| Versenden | Drucken ]
0
Von Erna am Do, 17. April 2003 um 11:00 #
Unter Amazon.de gibt es hauptsächlich negative Rezensionen zu dem Buch.
Angeblich lassen sich die meisten Beispiele ohne Modifizierungen nicht einmal kompilieren. Außerdem würde man sehen, daß es von einem Pascal-Programmierer geschrieben wurde.

Siehe hier die Kommentare.

Etwas besser schneidet da schon das Buch in Pascal mit dem Titel "Algorythmen", das man hier nachlsesen kann.

Und wie man hier lesen kann, versucht er sich nun nach "Algorythmen", "Algorythmen in C" und "Algorythmen in C++" nun am Buch "Algorythmen in Java".

[
| Versenden | Drucken ]
  • 0
    Von Markus am Do, 17. April 2003 um 13:17 #
    Neulich kommt der Azubi zu mir, er versteht die Lösung im Sedgewick nicht. Angeschaut: Kann man auch nicht verstehen, die Lösung ist fehlerhaft. Arrays fangen in C eben bei 0 an, was dem Author wohl nicht so bewußt war. Offensichtlich wurde die Beispiele für C nie getestet, sondern einfach nur runtergeschrieben.

    bye
    Markus

    [
    | Versenden | Drucken ]
    • 0
      Von nufap am Do, 17. April 2003 um 16:44 #
      Aehnliche Erfahrungen hab ich mit dem Sedgewick auch gemacht. Aber selbst in der Pascalausgabe (war aber zugegebenermassen eine alte Ausgabe) sind einige Beispiele nicht lauffaehig, da der Code fehlerhaft ist.

      Ferner ist der Code sehr verkuerzt abgedruckt, ueberhaupt nicht kommentiert und der Zusammenhang mit dem beschreibenden Text erschliesst sich einem Anfaenger auch nur sehr schwer.

      Empfand ich damals als sehr frustrierend, das Ganze. Wenn man allerdings etwas fortgeschrittener ist, wird das Buch lesbarer und ist dann auch nicht uninteressant.

      nufap

      [
      | Versenden | Drucken ]
    0
    Von Gernot Tenchio am Do, 17. April 2003 um 22:51 #
    Tja, haette mal bei Pascal bleiben sollen. Ist ja auch sauberer.

    Gruss, Gernot

    [
    | Versenden | Drucken ]
0
Von Jeff am Do, 17. April 2003 um 11:20 #
Hab waehrend des Studiums mal diese 'Algorithmen in ...' Serie angelesen und war nicht so besonders begeistert.

Wesentlich lesbarer fand' ich 'Algorithmen mit Perl' von O'Reilly. Das Buch ist (wie gewohnt von O'Reilly) gut lesbar, geht angemessen auf die Hintergruende ein und bringt gute implementationsbeispiele (fuer Perl entsprechend).

Jeff

[
| Versenden | Drucken ]
0
Von Gernot am Do, 17. April 2003 um 12:08 #
Zu C++ hat auch OSNews.com einen interessanten Link zu folgender Seite gehabt.

Btw: Seit gestern ist übrigens das erste Release von den Bitream Vera Fonts draußen.
Downloaden kann man sie hier. :-)

[
| Versenden | Drucken ]
  • 0
    Von Spark am Do, 17. April 2003 um 23:05 #
    Ist zwar etwas Off-Topic hier, aber die Fonts sind wirklich klasse. :)
    [
    | Versenden | Drucken ]
    • 0
      Von CE am Fr, 18. April 2003 um 00:28 #
      Die Schriftart mit den Serifen ist etwas traurig.
      Sind Legaturen auch dabei?
      [
      | Versenden | Drucken ]
      • 0
        Von Spark am Sa, 19. April 2003 um 02:00 #
        *augenverdreh*
        Wie kann man nur so negativ denken. Jetzt gibt es endlich mal freie und absolut erstklassige Schriften (die u.a. von Distributionen vertrieben und auch verbessert werden duerfen). So schlecht finde ich Vera Serif auch nicht, zumindest kann man es besser lesen als Luxi oder Nimbus und am wichtigsten sind doch auch Sans und Monotype.
        Keine Ahnung was Legaturen sind, da kannst du dich ja selbst informieren.
        [
        | Versenden | Drucken ]
        • 0
          Von CE am Sa, 19. April 2003 um 13:34 #
          Legaturen sind z.B. ä,ö,ü und ß.
          Aber fi, fl, etc. interessieren mich eigentlich.
          [
          | Versenden | Drucken ]
          • 0
            Von Spark am Sa, 19. April 2003 um 22:46 #
            Deutsche Umlaute sind auf jeden Fall dabei, ich weiss nicht wie vollstaendig das ist. Da die Fonts frei sind, koennen die ja noch komplettiert werden in Zukunft. Probier es doch einfach aus. :) Oder schreib fi und fl aus (was auch immer das ist), dann kann ich dir sagen ob es richtig angezeigt wird. ;)
            [
            | Versenden | Drucken ]
            • 0
              Von CE am Mo, 21. April 2003 um 14:46 #
              Mir geht es nicht um die Ligaturen (ich schreib' das immer wieder falsch) aus z.B. æ, sondern um ineinander geschriebenes fi oder tt.
              [
              | Versenden | Drucken ]
      0
      Von herbie_ am Mo, 21. April 2003 um 16:29 #
      Die Begeisterung kann ich nicht teilen. Die serifenlose Schrift wirkt eigenwillig, beinahe in Richtung "MS Comic". Und die Vera-Serifenschrift wünsche ich meinem ärgsten Feind nicht. :-)
      [
      | Versenden | Drucken ]
0
Von Jochen am Do, 17. April 2003 um 12:54 #
Auch Euch, dem PL-Team, ein schönes Osterfest! Ob nun mit Familie und Eiersuchen oder mit Freunden auf Osterflucht oder vor dem Keyboard - viel Spass und gute Erholung. Ausserdem einen Riesen-Dank für Eure Site und den Aufwand, die Zeit und die Liebe, die ihr in Euer Projekt hier steckt.

Mal sehen, ob ich mir demnächst wenigestens mal wieder einen Kurztipp aus den Fingern saugen kann. ;-)

Jochen

[
| Versenden | Drucken ]
0
Von cc am Do, 17. April 2003 um 16:12 #
Hy!
ich möchte mir in nächster Zeit auch ein Buch über Algorithmen in C kaufen.
Es wird ja eigentlich von allen der Sedgewicks empfohlen. Bei der Suche im Internet habe ich jetzt aber entdeckt, das es auch ein "Algorithmen mit C" von O'Reilly gibt.
Eigentlich habe ich mit O'Reilly Büchern immer sehr gute Erfahrung gemacht. Kennt jemand eines der beiden Bücher oder im Idealfall beide und kann was dazu sagen? Wo ist mein Geld besser angelegt?

Thx
cc

[
| Versenden | Drucken ]
  • 0
    Von Deniz am Do, 17. April 2003 um 17:33 #
    Ich kenne nur Algo. in C++ von Sed. u. bin der Meinung das das nur für sehr erfahrene Programmierer o. für Studenten ist. Bei mir lag es die ersten Jahre auch nur in der Ecke langsam benötige ich es ab und zu mal zB wenn man binäre baume durchfahren will. Ausserdehm ist es sehr trocken, also ich würde dir nur dazu raten wenn du ein Profi bist. Falls nicht fang mit etwas simplerem an da ist dein Geld viel besser investiert.
    [
    | Versenden | Drucken ]
    • 0
      Von cc am Do, 17. April 2003 um 18:19 #
      Hy!
      ich studiere Informatik, kann so ein Buch also durchaus gebrauchen.
      Es stellt sich nur die Frage Sedgewicks (den fast jeder empfiehlt) oder von O'Reilly (dessen Bücher mich bisher immer überzeugt haben).
      [
      | Versenden | Drucken ]
      • 0
        Von anon am So, 20. April 2003 um 10:18 #
        Hi,

        erstmal den Standardtip, gehe zur Uni-Bibliothek und leihe Dir beide aus. Teilweise liegt es doch sehr am eigenen Stil, welches Buch einem mehr nuetzt. Falls es nicht unbedingt "C" sein muss, sondern eher Algorithmen im Mittelpunkt stehen sollen, fand ich "Introduction to Algorithms" von Cormen et al. recht gut.

        [
        | Versenden | Drucken ]
0
Von Catonga am Do, 17. April 2003 um 16:52 #
Und zwar ist diese von Pearson Studium UND Addison-Wesley und
erschien 2002.

Ob hier der Quellcode fehlerfrei ist kann ich aber noch nicht sagen,
da ich noch keine Zeit gefunden habe mir das Buch durchzulesen.

[
| Versenden | Drucken ]
0
Von arni am Do, 17. April 2003 um 18:04 #
Ja klar das Buch ist nix für Anfänger. Steht ja auch mehrfach auf den ersten Seiten, das es wohl auch als Lehrbuch fürs 2-3. Semester Informatik gedacht ist. Da darf man nun nicht gleich fertige Quelltexte ewarten, sonders muss das ganze wirklich als Lehrbuch betrachten um verschiedene Algorithmen zu verstehen.
Wer fertig codierte Algorithmen braucht kann sich ja die verschieden Beispiel-Quelltexte die man so im Netz findet anschauen.

Ich finde das Sedgewick zurecht einen guten Namen hat und kann das Buch nur jedem empfehlen der sich intensiver mit der Materie beschäftigen will/muss.

[
| Versenden | Drucken ]
  • 0
    Von Markus am Fr, 18. April 2003 um 22:26 #
    Aber die Quelltexte sind doch drin. Sie sind allerdings fehlerhaft. Da schaut man sich den Algorithmus an, versucht ihn zu verstehen und schaut sich dann zur Kontrolle noch den Sourcecode an - und fällt auf die Nase. Gerade wenn ein Buch damit Werbung macht, daß die Beispiele nicht in Pseudocode, sondern in einer bestimmten Sprache sind kann man IMHO schon fehlerfreien Code erwarten.

    bye
    Markus

    [
    | Versenden | Drucken ]
0
Von herbie am Do, 17. April 2003 um 18:10 #
Algorithmen in Java
Algorithmen in c#
Algorithmen in python
...

Bringt nur nicht viel, wenn im Grunde genommen immer noch in dem Stil programmiert wird, den man sich mal vor 30 Jahren angewoehnt hat. Mir wäre ein ausgereiftes Buch mit Pascal-Code allemal lieber, als die halbherzige Übersetzung einer Übersetzung.

[
| Versenden | Drucken ]
0
Von Jochen am Do, 17. April 2003 um 18:54 #
C++ gefällt mir nicht, schafft schmutzigen code.

Ich bin ja immer noch ein grosser Pascal Freak. Weiss einer ob man mit freien Compilern alte Turbo Pascal Programme compilieren kann? Welchen Ersatz gibt es für crt usw. Oder compilieren die tadellos? Wie viel Anpassungsaufwand ist notwendig und welchen Compiler ratet ihr mir? Kylix? Freepascal/Lazarus? GNU Pascal ecc.

[
| Versenden | Drucken ]
  • 0
    Von Gernot Tenchio am Do, 17. April 2003 um 22:55 #
    > welchen Compiler ratet ihr mir? Kylix? Freepascal/Lazarus? GNU Pascal ecc.

    Wenn es schön sein soll: FreePascal, wenn es portabel über Architekturen sein soll: GNU Pascal, wenn es nichts werden soll: Kylix.

    Gruss, Gernot

    [
    | Versenden | Drucken ]
    • 0
      Von LH am Fr, 18. April 2003 um 15:32 #
      Dir ist klar das in Kylix er mächstigste Pascal Compiler der Welt steckt?
      [
      | Versenden | Drucken ]
0
Von roi am Do, 17. April 2003 um 21:31 #
spreche aus Erfahrung, habe das Buch für Prüfung in Alg+Datenstrukturen benutzt und war
überhaupt nicht angetan.
Meine subjetive Meinung ist, daß es ein wirklich schlechtes Buch ist,
besonders bei komplexeren Alg. , von den abgedruckten Codefragmenten rede ich
lieber erst gar nicht.
Habe die Prüfung trotzdem bestanden,aber die 50 EUR kann man anders verwenden.
Kenne den Wirth nicht, aber schlechter kann der bestimmt nicht sein.
[
| Versenden | Drucken ]
  • 0
    Von Bert am Fr, 18. April 2003 um 23:17 #
    Meistens sind Bücher dieser Art schlecht, weil sie dem Fortgeschrittenen nichts bieten. Akademische Bücher sind da nicht immer die Ausnaheme, aber meistens taugen frei im Web verfügbare Skripte recht viel.

    Buchtechnisch eine kleine ausnahme ist das braindump buch von Christian Ullenbohm "Java ist auch eine Insel", war auch mal aus dem Netz einfach zu laden. Leider schreibt der nicht über C++ und für reine anfänger ein bisschen zu viel. Es gibt so viele schlechte Programmierlernbücher, manche mit elementaren Konzepten, die eher langweilen. Oder reine Referenzen, die aber meistens auch alles andere als komplett sind. Was mich mehr interessiert ist, wie ich ein Problem lösen kann.

    [
    | Versenden | Drucken ]
0
Von Kampfdackel am Fr, 18. April 2003 um 23:52 #
... Buch über Algorithmen ist sowieso "Introduction to Algorithms" von Cormen und Konsorten. Besser geht's nicht. Fehlt nur noch eine gute deutsche Übersetzung.
[
| Versenden | Drucken ]
  • 0
    Von CE am Sa, 19. April 2003 um 01:35 #
    Ja, aber keine, deren Hauptziel es ist, die Sprache möglich ausgefeilt wiederzugeben, sondern eine sinngemäße.
    [
    | Versenden | Drucken ]
0
Von argon am Mo, 21. April 2003 um 18:52 #
Die Algorithem in C++ Serie der Sedgewick-Reihe wurde um einiges zur Vorgängerversion gekürzt, deshalb empfehle ich Algorithmen in C.
[
| Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung