Seite 1 von 2
C/C++ Tutorial
Verfasst: Donnerstag 22. September 2011, 19:07
von JonasR
Hi Leute,
kennt wer von euch ein gutes C oder C++ Tutorial? Weiß ja nicht ob es da auch so Fehlgriffe wie galileocomputing gibt

Muss nicht bei den Grundkenntnissen des Programmierens anfangen.
€ Wie unhöflich

Habe ich glatt das Danke vergessen.
Dankeschön

Re: C/C++ Tutorial
Verfasst: Donnerstag 22. September 2011, 19:11
von BlackJack
@JonasR: Statt *oder* meintest Du sicher *und*. C und C++ sind zwei recht verschiedene Programmiersprachen die nur sich nur einen grossen Teil Syntax teilen. Welche Sprache willst Du denn lernen? Beide?
Re: C/C++ Tutorial
Verfasst: Donnerstag 22. September 2011, 19:16
von JonasR
Hmmm Ich dachte immer das die beiden sich nicht so stark von einander unterscheiden

Habe ja aber auch noch keinerlei Erfahrungen mit beiden Sprachen. Am liebsten wäre mir dann C++
Re: C/C++ Tutorial
Verfasst: Freitag 23. September 2011, 09:19
von lunar
@JonasR: Von den frei im Netz verfügbaren Tutorien und Kurse ist meist abzuraten. Viele sind veraltet, nicht wenige sogar offensichtlich fehlerhaft, keines lehrt modernes, idiomatisches C++. Meines Erachtens ist C++ als Sprache auch zu kompliziert, um sie aus einem Tutorium zu lernen. Lerne lieber aus Büchern, gerade zu C++ gibt es viele anerkannte Standardwerke. Für den Einstieg empfehlen sich der "C++ Primer" oder "Accelerated C++", alternativ gibt es "Effective C++" frei im Netz. Zudem ist "Effective C++" empfehlenswert, dieses Buch behandelt viele Fallstricke und Merkwürdigkeiten der Sprache, und kann gerade beim Einstieg in die Sprache viel Frustration ersparen. Ebenfalls empfehlenswert sind die Werke von Alexandrescu ("Modern C++ Design" und "C++ Coding Standards"). Er hat modernes C++ entscheidend mitgeprägt, auf sein Konto gehen manche moderne Idiome, insbesondere bezüglich Templates. Das ist jetzt nicht obligatorisch für den Einstieg, hilft aber viel beim grundlegenden Verständnis der Sprache, und beim Verständnis generischer C++-Bibliotheken wie boost.
Im Allgemeinen ist C++ eine ziemlich überkomplizierte, und eher unschöne Sprache. Wenn Du C++ nicht lernen musst, und in absehbarer Zeit nicht brauchst, kannst Du Deine Zeit angenehmer verbringen. Lerne lieber Sprachen wie Haskell oder Scheme, mit denen Du wirklich neue Konzepte kennen lernst.
Re: C/C++ Tutorial
Verfasst: Freitag 23. September 2011, 12:09
von JonasR
Hi lunar,
danke für die Antwort ich werde mir die Tutorials mal anschauen. Und mir wohl auch ein Buch kaufen

=)
Wieso würdest du mir denn eher zu Haskell bzw Scheme raten? Sehe ich es richtig dass beide keine Objekt orientierte Sprachen sind? Kann ich mit den beiden die gleichen Sachen abbilden wie mit C++?
Re: C/C++ Tutorial
Verfasst: Freitag 23. September 2011, 12:15
von lunar
@JonasR: Ich rate Dir nicht dezidiert zu Haskell oder Scheme, ich rate Dir nur generell von C++ ab, und empfehle Dir einfachere, und gleichzeitig interessantere Sprachen. Offensichtlich möchtest Du C++ aus Interesse in Deiner Freizeit lernen, und ich glaube eben, dass man seine Freizeit mit schöneren Sprachen verbringen kann.
Ob Du mit anderen Sprachen „die gleichen Sachen abbilden“ kannst wie mit C++, hängt jetzt stark davon ab, was Du damit überhaupt meinst. Objektorientierung alleine ist wohl kaum ein sinnvolles Kriterium.
Re: C/C++ Tutorial
Verfasst: Freitag 23. September 2011, 12:16
von deets
Alle erwaehnten Sprachen sind turing-vollstaendig. Soll heissen: man kann mit ihnen alles machen, was man ueberhaupt programmieren kann.
Die Frage ist, was man damit *wie* macht. Und OO ist zB in Python IMHO wesentlich leichter zu lernen und netter, als in C++. C ist eh nicht OO. Haskell & Scheme sind funktionale Sprachen, und die zu lernen erweitert deinen Horizont wesentlich deutlicher, als C++. Das tut einfach nur weh. Sehr.
Re: C/C++ Tutorial
Verfasst: Freitag 23. September 2011, 18:57
von Py-Prog
@JonasR lerne doch lieber eine Einfache sprache.
Wie wäre es mit (Typsicherer-)Assembler?

Re: C/C++ Tutorial
Verfasst: Samstag 24. September 2011, 10:23
von Leonidas
Also, naja, zu C kann man, wie ich finde, immer noch das K&R-Buch empfehlen. Das ist zwar ANSI-C und nicht C99, aber so grundlegende Änderungen gabs ja nicht. Auch wenn ich heutzutage C kaum noch für ganze Programme hernehmen würde und ohne Libraries wie GLib muss man eh immer wieder das Rad neu erfinden. In der hinsicht ist Vala eigentlich ganz interessant, weil es C und GLib und GObject in ein einigermaßen angenehm zu nutzendes Paket verschnürt.
An der Stelle von C++ wären vielleich heutzutage noch D oder Go interessant, aber ich habe in beiden zu wenig Erfahrung und bisher keinen Gebrauch dafür gehabt.
JonasR hat geschrieben:Wieso würdest du mir denn eher zu Haskell bzw Scheme raten? Sehe ich es richtig dass beide keine Objekt orientierte Sprachen sind? Kann ich mit den beiden die gleichen Sachen abbilden wie mit C++?
Naja, Python ist doch schon eine objektorientierte Sprache? Müssen denn alle Sprachen objektorientiert sein? Also Scheme ist an sich zwar funktional, aber es gibt so Pi mal Daumen 10 verschiedene Objektsysteme für Scheme, von Java-Style OOP, über CLOS-Style OOP bis hin zu JavaScript-Style-Prototypen-OOP. Ich fand Scheme eigentlich ganz angenehm, aber vermutlich ist heutzutage Clojure die nützlichere Sprache. In vielerlei Hinsicht ein "weitergedachtes" Scheme.
Re: C/C++ Tutorial
Verfasst: Samstag 24. September 2011, 11:49
von sma
Scheme entstand interessanterweise, weil Steele und Sussman verstehen wollten, wie Objektorientierung (genauer Actor-basierte Programmierung) funktioniert (
http://labs.oracle.com/projects/plrg/JA ... public.pdf, Folie 29).
Es es also einfach um die interlektuelle Erbauung geht, schlägt fast nichts Scheme. Clojure ist da auch zu unaufgeräumt, IMHO. Nett ist IMHO noch Forth (oder Factor als moderner funktionaler Nachfolger), weil es eine wirklich andere Sprache ist. C++ ist einfach nur umständlich, aber bringt im vergleich zu Python kaum weiteren Erkenntnisse. Doch zu verstehen, dass Kontrollstrukturen wie bedingte Anweisungen und Schleifen auch nur Funktionsaufrufe sind, das hat damals bei mir Klick gemacht und so einem anderen (ich bilde mir ja gerne ein, höherem) Verständnis von Programmiersprachen geführt.
Als Teaser: Angenommen, (x p q) beschreibt den Aufruf der Funktion x mit den Argumenten p und q und (λ (x) ...) beschreibt eine anonyme Funktion mit dem formalen Parameter x, der im durch ... abgekürzten Rumpf der Funktion benutzt werden kann, wie funktioniert dann die übliche if-Bedingung (if cond then else)? Ich fodere mal, dass das einfach nur einen andere Syntax für (cond (λ () then) (λ () else) ist. cond soll für einen Ausdruck stehen, der zu einem Wert t oder f wird, was Funktionen sein müssen, da ich ja definiert habe, dass da hinter der Klammer immer eine Funktion steht. Ich muss then und else zu anonymen Funktionen machen, weil if in der Regel immer so funktioniert, dass nur einer der beiden Zweige ausgewertet wird, als kein normaler Funktionsaufruf ist, bei dem (außer in Sprachen wie Haskell) zum Aufruf zuvor immer alle Argumente berechnet werden. Also t == (λ (t e) (t)) und f == (λ (t e) (e)). Eine spezielle Syntax für "if" ist also in einer Sprache mit anonymen Funktionen (und Makros) entbehrlich...
Stefan
Re: C/C++ Tutorial
Verfasst: Samstag 24. September 2011, 13:10
von snafu
Danke für die Anregungen, sma. Das Konzept von Forth und Factor scheint mir definitv einen Blick wert zu sein (die Sache mit dem Stack halt), auch wenn ich das eher zum Experimentieren für mich sehen würde, um ein besseres Verständnis für Programmierung im Allgemeinen zu erhalten (du hattest das ja schon angesprochen).
Re: C/C++ Tutorial
Verfasst: Samstag 24. September 2011, 13:17
von Leonidas
Gerade Factor ist durch Kombinatoren wie ``bi`` & Co. wahnsinnig mächtig, so dass man mit bischen Übung nicht mehr ständig in Stackeffekten denkt, wie das noch etwa bei PostScript der Fall ist. Factors Kombinatoren sind wohl inspiriert von Joy, einer weiteren simpleren stackbasierten Sprache, die eine Implementation in Scheme hat. Und da schließt sich der Zirkel wieder

Re: C/C++ Tutorial
Verfasst: Montag 26. September 2011, 13:12
von Dav1d
Wie BlackJack schon angesprochen hat sind C und C++ nicht die gleiche Sprache, falls du dich für C entscheiden solltest, kann ich dir das "Galileo Computing C von A bis Z" Openbook empfehlen (mMn für Anfänger gut geeignet)
Re: C/C++ Tutorial
Verfasst: Montag 26. September 2011, 18:58
von Py-Prog
Ich wollte hier nur mal was Fragen zu C/C++:
Wieso kann man kann man auf verschiedenen Plattformen nicht gleich auf die Hardware zugreifen?
Ich meine man lernt z. B. C und kann dann Trotz dem nicht auf verschiedenen Plattformen arbeiten. Und eigentlich ist das dann nicht mehr C sondern was C ähnliches. Das gleiche gilt aber auch für andere Sprachen. (Python Anwendungen auf den Handy)
(Hintergrund ist ich will endlich mal Add-ins für Taschenrechner schreiben, for TR forum hab ich schon den Compiler bekommen, und einen Code (C) aber das hilft noch nicht viel weiter.)
Re: C/C++ Tutorial
Verfasst: Montag 26. September 2011, 19:49
von deets
@Py-Prog: es ist das Wesen von verschiedene Plattformen, dass sie.... verschieden sind. Darum muss man auch verschieden auf sie zugreifen. Wenn dem nicht so waere, dann waeren sie nicht... verschieden?!? Es geht ja nicht nur um die Gehauesefarbe...
Re: C/C++ Tutorial
Verfasst: Dienstag 27. September 2011, 19:36
von Py-Prog
Ich weiß aber das ist blöd, natürlich kann man auf einen Handy, Taschenrechner ect. keine Fenster wie bei Windows oder Linux aufmachen.
Re: C/C++ Tutorial
Verfasst: Dienstag 27. September 2011, 21:39
von BlackJack
@Py-Prog: Fenster sind doch sowieso nicht Bestandteil des Sprachumfangs von C oder C++. Wie man Fenster in diesen Sprachen programmiert kann doch sogar auf ein und der selben Plattform unterschiedlich sein. Je nach dem welches GUI-Toolkit man verwendet.
Re: C/C++ Tutorial
Verfasst: Mittwoch 28. September 2011, 07:58
von JonasR
Danke für die zahlreichen Antworten =)
Da ich C++ eigentlich eh nur zur Erweiterung meiner Programmier Kenntnisse lernen wollte, werde ich wohl dank SMA wohl auf Scheme umschwenken =D Klingt für mich auf jeden Fall interessant und hier raten mir ja eh die meisten dazu C++ nicht zu machen
Dann mal eine neue Frage: Hat wer ein gutes Scheme Tutorial?

Re: C/C++ Tutorial
Verfasst: Mittwoch 28. September 2011, 08:06
von BlackJack
@JonasR: Es gibt zum Beispiel das Standardwerk
Structure and Interpretation of Computer Programs. Das Buch gibt's dort als HTML-Fassung zu lesen.
Re: C/C++ Tutorial
Verfasst: Mittwoch 28. September 2011, 08:13
von JonasR
Hey BlackJack,
gibt es das ganze auch auf deutsch? Mein Englisch ist zwar recht gut aber bei so etwas würde ich lieber 100% verstehen

Danke =)
€: Habe es schon gefunden.
http://books.google.de/books?id=ec5YqoX ... &q&f=false