![]() |
C++ Anfang
Hi!
Ich möchte gerne anfangen zu programmieren. Ich hab mich ein wenig erkundigt und denke, dass C++ wohl die beste Wahl ist. Kann mir jemand ein oder mehrere Bücher zum Einstieg in C++ empfehlen? Ich bin totaler Neuling(bis auf ein wenig HTML)also sollts nichts zu kompliziertes sein.Freu mich schon auf eure Antworten. mfg mdonne |
Programmieren in C von Kernighan & Richie
pong |
Zitat:
Ich würde eher was empfehlen wo mehr und ausführlicher erklärt wird. Wobei ich jetzt auch keinen Buchtipp zur Hand habe. |
Zitat:
Was ganz nett zum Einsteigen wäre Rexx http://www-lehre.informatik.uni-osna...mpeussne/rexx/ wo man mit relativ wenig Aufwand und flott Ergebnisse sieht pong |
Hallo
Derzeit (wechselt öfter) ist eine Online-Version unter http://www.mut.de/main/main.asp?page=leseecke&SID={335708DE-8DB0-4D97-BC7C-94360DA86484}&TOKEN={4A2926E5-38C9-4A95-9639-D819025A998B} zu finden (kann man auch downloaden, sollte man sofort machen). Gruß Hugo |
Re: C++ Anfang
Zitat:
|
Re: Re: C++ Anfang
Zitat:
pong |
Ich denke auch, dass beim Buch von Kerningham und Ritchie der Frustrationsfaktor relativ schnell steigen wird. ;)
Wobei C (nicht C++) sicher eine geeignete Sprache zum Einsteigen ist. Andere Alternative wäre noch (Turbo) Pascal. Java ist eine nette Sprache (und auch das was ich derzeit am meisten programmiere) - jedoch ists für den Einstieg auch ein Overkill. Man muss gleich die Sichtbarkeiten verstehen, den Unterschied zwischen static und eben dynamischen Instanzen erkennen usw. usf. sonst ist das auch frustrierend. Und das lenkt doch viel zu sehr davon ab einfach mal die Basics zu lernen. |
wennst etwas bewandert in mathematik bist, dann wird dir wohl das buch "C++ Einführung und professionelle Programmierung", erschienen im hanser verlag zusagen können.
keine angst, c++ ist zwar nicht einfach, besonders wenns an qt usw herangeht, aber eine tolle programmiersprache und immer noch aktuell. hoffentlich schaffst es das zu erlernen. :-) PS: schau mal auf www.terrashop.de |
Re: Re: Re: C++ Anfang
Zitat:
|
Re: Re: Re: C++ Anfang
Zitat:
Das musst du genauer erklären. Ich hab auch mit C und C++ begonnen und programmier jetzt schon einige Jahre mit JAVA. Also bitte erklär was du damit meinst. |
kinder kinder :D
ist der streit, ob nun java oder nicht, ned schon aus dem letzten jahrhundert? :D also sehts es so: wer java will, der solls nehmen, und wer lieber was andres will (wobei ich persönlich c++ für das beste halte) der soll das nehmen... *ggg* ausserdem hat jede sprache ihren zweck und soll diesem dienen. :hallo: |
Zitat:
|
Danke!
Danke für die vielen Antworten! C/C++ deswegen weil es hier, was ich gehört hab viele Möglichkeiten gibt und man sogar 3D Spiele damit programmieren kann. Werd mir demnächst ein paar eurer empfohlenen Bücher kaufen und freu mich schon loszulegen.
Wünsch euch noch ein schönes, langes Wochenende. m.donne |
hi,
viel erfolg beim c++ lernen. Die Sprache ist immer noch aktuell und wenn du c++ gut kannst, darfst du von dir behaupten, ein richtiger programmierer zu sein. *g* Java und C# vereinfachen halt viele Dinge, um die man sich in C++ noch manuell kümmern muss und sind deshalb imho. einfacher. Das mit dem Spieleprogrammieren vergiss für den anfang aber mal komplett. Das würde ich mal als die "hohe schule" schlechthin bezeichnen - sehr gute programmierkenntnisse + mathematikkentnisse sind voraussetzung. fg hannes |
wollt mal fragen wie schwer der umstieg von java auf c++ ist, da mich die sprache persönlich mehr anspricht als java
|
Zitat:
In C hast halt das Problem, dass man sooo viel erst zu Fuß machen muss. Angefangen von Arrays und sonstigen Spielereien des Speichermanagement bis hin zur fehlenden Klassenbibliothek, wo einfach schon sooo viele nützliche Sachen drin stecken. Ich wills dir somit nicht ausreden nur is das meine persönliche Meinung zu C(++). Wobei ich auch sagen möchte, dass ich mich noch nie mit C anfreunden konnte und daher ein recht großer Fan von Java bzw. .NET bin. :) Aber ich hab größten Respekt vor guten C++ Programmierern. :) |
Wobei gute C++ Programmierer wird man nicht so häufig finden.
Das problem dabei ist dass viele einfach vergessen Speicherbereiche wieder freizugeben, durch die direkte Adressierung falsche Speicherbereiche ansprechen und durch C dazu noch Programmierstile mischen. Was sogenannte "richtige Programmierer" teilweise abliefern ist ein wahrer Graus. |
hi,
wenn du von java umsteigen willst, würde ich dir statt c++ doch eher c# empfehlen. Das ist imho einfacher, wenn man bereits java kann. Das soll nicht heißen, dass c++ schlecht ist (sicher nicht!), aber du musst dich bei c++ mit vielen dingen beschäftigen, die du bei der programmierung mit java nicht musstest - z.B. das angesprochenen speichermanagement. fg hannes |
hmhm und und schauts mit c.net aus? ist ja im prinzip c# nur mit dem .net-frame, durch welches man ja dann auf bibliotheken zugreifen kann. muss man sich da auch auf spezielle hardwarenahe programmierung (zB speicher) einlassen oder wird da schon alles gemacht?
|
hi,
ich glaube, hier gibt es ein paar missverständisse. Du musst dich mit C++ nicht auf "hardwarenahe programmierung einlassen". Das man sich bei C++ selbst wieder um die Freigabe von alokierten Objekten kümmern muss, hat nix mit hardwarenaher prgorammierung zu tun. Hardwarenahe Programmierung ist z.B. Ansteuerung eines an den parallelport angeschlossenen Microcontrollers. (beispielhaft) Managed C++ ist NICHT C#. Managed C++ ist "noramles" C++ mit der möglichkeit, auf die managed Bibliotheken des .net Frameworks zuzugreifen. Empfehlung: Wenn du managed programmieren willst, dann nimm gleich C#. Maanged C++ hat die Komplexität von C++ und zusätlich die, welche mit der Einbindung des .net Frameworks zusammenhängt. Aus meiner Sicht eine Notlösung, um aus C++ Programmen die Managed Umgebung anzusprechen. Wenn ich eine neue Sprache lernen will, dann wäre das sicher NICHT managed C++. Zitat:
fg hannes |
Also ich habe vor einem Jahr mit dem Buch C++ von Jesse Liberty (Markt und Technik Verlag) begonnen. Das ist ein Buch zum Einstieg in dem man gleich erkennt ob man wirklich interesse daran hat oder ob das Thema eher eine Eintagsfliege bleibt.
Leicht zu verstehende Abschnitte mit gut erklärten Beispielen...sehr empfehlenswert. Aber wissen tut man dennoch nicht sehr viel darüber. Ein static_cast z.B. wirst dannach niemals verstehen können das sprengt den Rahmen. Aber du werst lernen was eine Präprozessordirektive ist, was Klassen sind, Vererbung, uva. Dannach kann ich das C++ Buch von Franzis Verlag empfehlen. Da gehts richtig zur Sache. Pure Theorie!!! 500 Seiten sind nur mit den Librarys von C++ ausfühlich behandelt. Dafür braucht man richtig Verständniss für die Materie!!! Nur ca. 100 Seiten sind leicht verständlich und 200 für fortgeschrittene. Aber das einzige was wirklich wichtig ist, ist eine Plattform auf der du das regelmäßig neben dem lesen ausprobieren kannst!!!!! z.B. KDE Develop, oder die Beipack CD von Jesse Liberty!! mfG |
Wäre es zuviel verlangt, wenn man mal anfragt, ob hier jemand wöchentlich einen Beitrag zu c++ posten kann ???
Schliesslich ist auch für mich der Frustfaktor so hoch, das ich C++ einfach aufgegeben habe, obwohl es eigentlich nicht sehr schwer erscheint.... Was mich zum Beispiel sehr genervt hat, das man Objekte als "gaaaanz was anderes als ein Programm" darstellt, obwohl es so gesehen eigentlich auch nur ein Programm ist. auch Methoden und Klassen (die ich übrigens als "variablen" verstehe...) sind mir so sehr aus dem Blickfeld des Programms herausgerückt worden, das ich dieselbigen nicht mehr mit "Programmieren" zusammenbringen kann.... Und noch eine Frage: Wie ist es möglich, wenn C++ keine "einsprungmarken" hat, nach Ablauf des gesamtprogramms von vorne zu starten ?? also Basic-Like: Goto 0 ??? Hätte jemand mal Lust dazu, hier sowas mal als leicht verständlichen Beginn, so etwas hinein zu posten?? |
scheinbar ist C++ noch immer sehr gefragt und beliebt, trotz neuerer Sprachen und C sharp.
Ich will auch wieder den Einstieg versuchen und habe mir dazu nun einige Bücher bestellt. Ich finde DCS's Vorschlag ganz gut. |
Zumindestens Grundlagen, auch für Leute, die auch noch andere Freizeitbeschäftigungen haben; Soll heissen, bitte Verständlich, nicht "Aufblasen" mit endlos tausenden Fremdworten und Begriffen...
Kurz und Knackig: dieses Programm macht, Zeile für Zeile dies und jenes, die Befehle machen dies und das im einzelnen... Ein wenig drauf eingehen, Besonderheiten, Begriffe am besten in Klammern, sodass man den Begriff mal hört, aber sich dadurch nicht unbedingt verwirren lässt...denn sein wir mal ehrlich, mit einer Klasse verbinde ich Vorschüler oder ähnliches, aber keine Programmierbefehle...und eine Methode ist für mich eher eine emotionale Durchführung einer Arbeit. Ich denke, zuviele Begriffe lenken vom eigentlichen ab, und erschweren das lernen effektiv... Meine Meinung. |
C++ kennt das "goto" statement, du kannst einfach eine Sprungmarke setzen und dort hinspringen, wenn du das wirklich willst und brauchst. Kann mich allerdings gar nicht mehr erinnern, wann ich das das letzte Mal benötigt habe...
|
nun, ich stelle mir die Frage, wenn ich ein Spiel durchspiele (shooter, z.b.) und nochmals von vorne anfangen will (ein andrer Spieler vielleicht), wie kommt der dann zum Anfang hin ??
Würdest du vielleicht ein paar Beiträge über C/c++ schreiben, als Lehrstoff?? Vielleicht kann man sich absprechen, das mehrere so einen Thread führen möchten ?`?? |
Normalerweise sieht ein typischer
Spielaufbau so aus: Code:
InitGame(); Vielleicht wär's ja mal ganz interessant, in der WCM ein paar Artikel zur Spieleprogrammierung zu schreiben. Wäre glaube ich ganz lustig. Wenn du allerdings gerade mit C++ anfängst, wird's etwas schwierig. Ich würde mir an deiner Stelle ein Buch besorgen (z.B. dieses und anschließend einfach die Unklarheiten hier posten. |
Mit einer umschließenden Schleife und einer entsprechenden Bedinung kannst Du eine Ausführung so oft wiederholen wie Du willst. Alles nur kein Goto, meiner ansicht an ist ein Goto ein Grund für eine fristlose Kündigung.
|
hi,
windows programme arbeiten eventbasierend. D.h. das Programm läuft in einer permanenten Endlosschlefe und fragt ständig: Gibts Events für mich? Ein Event ist: Tastendruck, Mausklick, Interrupt u.a. Hinter jeden Even wird dann ein Handler gelegt, der aufgerufen wird. Hier wird nun geprüft: Wenn der User Pfeil nach vorne gedrückt hat, zeichne die Spielszene nochmal, jedoch mit der Position des Spielers weiter vorne, Wenn der Spieler "N" gedrückt hat, starte die Initialisierungsroutinen und beginne ein neues Spiel. (beispielhaft) Das ganze ist jetzt extrem vereinfacht dargestellt. Im WCM gibt es derzeit eine Artikelreihe zu Programmierung in C#, das ist doch ein guter Einstieg, finde ich. Wie stellst du dir das vor, das hier jede woche jemand ein paar Zeilen code postet und diese erklärt? Was soll das bingen? Programmieren lernst du dadurch auch nicht - das ist nur interessant, wenn man bereits programmieren kann und sich am laufenden halten möchte, wie bestimmte Probleme gelöst werden - dazu gibt es imho. jedoch spezifischere foren bzw. internetseiten z.B. www.codeproject.com finde ich sehr gut. fg hannes |
erstmal habe ich gehört, das schleifen nur gewissen Rahmen haben dürfen.... 255 Anweisungen ???
Das hiesse ja, das das Spiel sehr sehr klein sein müsste...ginge also nicht, also doch sowas wie Goto, da ich aber so einen Befehl unter C garnicht kennengelernt hatte, gibts den wohl auch nicht.... www.codeproject.com ist englisch, wie soll einer das Begreifen, wenn er in seiner Muttersprache schon nix kapiert ??? ja, und ein paar Zeilen wie z.b. cout > hallo welt; könnte man erläutern... wie man variablen einbindet, wo sie her kommen, wo sie hingehen, wie man sie initialisiert und so weiter... Klar lernt man dadurch, entweder hier, wo man vielleicht sogar per PM nachfragen darf, oder hier posten darf, oder man liest das Buch; Ein Buch hat ein ganz grosses Problem !! Man muss sich erstmal in die Denkensweise des Autoren versetzen, um seine Schreibweise zu verstehen, und Nachfragen geht schon mal garnicht.... WCM hab ich hier nicht, gibts wahrscheinlich auch garnicht in Deutschland... Wie Programme funktionieren, weiss ich schon, die meisten, die die Sprache lernen wollen, sicherlich auch: Das Problem ist, C/c++ zu lernen, da es viele komplizierte und völlig unlogische schreibweisen hat.......die man hier aber als PRO gerne mal erläutert... Vielleicht ist es tatsächlich besser, der Beginner postet die Frage, der Pro beantwortet diese, und schreibt eventuell noch ein zwei kurze Listings, um den Einsatz des Programmziels zu erläutern.... Ich für meinen Teil möchte wissen: was sind... - objekte - klassen - methoden und womit lassen die sich vergleichen und welcher Alltägliche Einsatz sich damit realisieren...?? Mfg, DCS |
hi,
schleifen dürfen in c++ (und jeder modernen programmiersprache) beliebig viele anweisungen enthalten. Jede moderne Hochsprache hat hier keine Einschränkungen. goto gibt es unter c und c++, die empfehlung ist jedoch, diesen NICHT zu verwenden, weil das zu sog. spaghetticode führt. sorry, aber programmieren ohne englischkenntnisse ist imho. fast unmöglich. msdn hilfe ist nun mal englisch - die schlüsselwörter der programmiersprachen auch. aufgrund deiner fragen denke ich, dass du dir mal ein buch "objektorierntierte programmierung" kaufen solltest. Dort werden alle deine fragen behandelt. Ich hab schon einige programmierbücher gelesen und es stimmt nicht, dass man sich in die denkweise des autors versetzen muss, um das buch zu verstehen. Wenn doch, dann ist es ein schlechtes buch und du solltest dich nach einen anderen umsehen. c++ hat keine unlogsiche schreibweise - im gegenteil - jede programmiersprache ist absolut logisch und schlüssig. Objekte: Die objektorientierte Programmierung betrachtet alles als Objekt. Beispiel: Eine Person ist ein Objekt. Das Objekt Person hat Eigenschaften wie z.B. Alter, Haarfarbe usw.. Weiters hat das Objekt Methoden - das sind die Funktionen, die etwas tun wie z.B. das Objekt Person hat die Methoden: sprechen, fortbewegen, ... Eine Klasse ist grob betrachtet eine Möglichkeit, um der Programmiersprache zu sagen, was als Objekt betrachtet werden soll. Soll heißen: In C++ definierst du eine Klasse "Person". class Person { int alter; char[] haarfarbe; bool tuWas(); bool toNochWas(); } Von dieser Klasse kannst du an anderer Stelle im Programm Instanzen erzeugen. Eine Instaz ist dann eine konkrete Person (die Klasse ist eigenltich nur eine Vorlage, wie eine Person aussehen soll). Du siehst schon - hier wird das ganze erklären sehr komplilziert, weil ich ja nicht weiß, was du verstehst und wo du nachfragen möchtest. Gerade deshalb erachte ich es ja als sinnvoll, ein buch zu kaufen und bei Fragen dann diese hier im Forum zu stellen. Viel spaß noch bei programmieren lernen! fg hannes |
Ich bin mir allerdings nicht ganz sicher, ob wir hier verarscht werden sollen oder nicht.
Die Fragen sehen zumindest ein wenig danach aus. :confused: |
Ich habe hier den Eindruck, dass zwischen C und C++ nicht unterschieden wird. Es handelt sich hier um 2 verschiedene Sprachen. C++ Compiler können zwar C Code kompilieren, aber man sollte C und C++ nicht vermischen, sondern als 2 unterschiedliche Sprachen betrachten(was sie ja auch sind).
Der größte Einsatzbereich von C sind heutzutage kleine Prozessoren(z.B. die Software fürs Auto ist zum Teil in C geschrieben). Aber natürlich gibt es auch normale Windows Software die mit C programmiert wurde(mittels WinAPI), wenn auch nur selten. In der Softwaresparte liegt der Haupteinsatzbereich von C++, sei es nun AutoCad oder Word, die meisten Windows Programme sind mit C++ programmiert. Zum Anfangen würde ich eher C empfehlen. Man darf nicht gleich ein 3d Spiel vor Augen haben, sondern man muss sich halt mal durch die Grundlagen durchkämpfen, also Schleifen, Abfragen mittels if, else, switch, Arrays(Felder), Listen, Bäume,... Erst dann kann man sinnvolle, einfache Programme schreiben. Man kann zwar von Anfang an probieren, sich mit Klassen zu probieren, aber wenn die Grundlagen fehlen kommt man nicht weit. Zum C lernen braucht man kein Buch, es genügen Online Tutorials wie z.B.: http://www.fh-augsburg.de/informatik...utorial/cyris/ http://www.pronix.de/ Will man tiefer in die Materie eintauchen, führt natürlich kein Weg an Büchern vorbei. Mit C kann man schon sehr viel machen, sogar Windows Programme sind damit möglich(WinAPI). Mit C/C++ wird man wenigstens einmal gezwungen, genau zu arbeiten. So Wischi Waschi Dinge a la PHP oder Basic sind damit nicht möglich. Auch ein goto ist schrecklich anzusehen! Spielschleifen sollte man, wie der Name schon sagt, mit Schleifen lösen,z.B.: PHP-Code:
Harri |
nein verar*** ist das nicht...
allerdings ist das schon gut beschrieben... Schade, das man nicht fragen darf, ohne gleich hinterhergerufen zu bekommen, "da will uns einer verar****" Schade, das man immer alles sofort begreifen muss... ich hab 3 oder 4 Bücher durch, kann mir aber einen Zweck aus diesen Begriffen nicht schlüssig machen... Insgesamt glaube ich, das man hier wohl schneller lernen kann... was ich auch grad noch lese, und dies für mich schwierig war: Eine Variable kann eine Variable sein, oder eine Funktion....hmmm... Wobei Funktionen als eine art "subroutine" angesehen werden darf ???? |
Ich würde gleich mit C++ oder C# anfangen. Hier lernst Du wenigstens gleich objektorientiert zu denken. Mit C lernst Du nur prozedural zu programmieren und tust Dir noch schwerer beim Umstieg auf Objektorientiert.
Zum Einstig lese ein Buch über Objektorientierung durch, ohne programmiertechnischen Hintergrund. Einfach um das Dogam der Objektorientierung zu begreifen. Und dann, programmieren, programmieren, programmieren. Wobei Du jemanden kennen solltest der Dir danach die Programme um die Ohren schmeist. Klingt zwar hart, ist aber die Beste Methode zu lernen. |
Zitat:
Bei mir scheiterts dann daran.... Ich hatte mal eine Email an den Schreiberling eines Buches geschrieben, ich hätte mit so einigem Problem, das überhaupt sprachlich zu verstehen... ...ein hin und her... dann schliesslich sagte der mal sowas ähnliches wie... "bei objektorientiertem Programmieren gehts nicht mehr Zeile um Zeile, sondern um Objekte, die ihre Eigenschaften selbst kennen, und selbstständig ablaufen und sich beenden. Ungefähr so, als wüssten die Nudeln auf dem Herd in dem Topf Wasser von selbst, wann sie fertig sind" Wie geht das denn ?? Wie kann ein Programm, dessen Programmzeile grad nicht bearbeitet wird, wissen, das es im Prinzip schon "fertig" ist?? Ich nerv' dann auch nicht mehr, wenn mir das einer erklären mag... ;) |
@DCS: Sorry, ich war mir da nicht so sicher. Man darf und soll natürlich fragen, wenn man was nicht versteht.
Die Art der Postings ließ bei mir da Zweifel aufkommen. Bitte hiermit offiziell um Entschuldigung. :bier: |
is ok, ich bin aber auch ein schwerer fall, der möglicherweise nervig rüberkommt...
was biri da erzählt hatte hat mich dinge aus dem Buch doch tatsächlich teilweisig schlüssig erscheinen lassen...und das ist gut ! |
hey ich bin auch ein schwieriger fall in bezug auf C++ (falsche bücher?) aber habe mir heute 2 bücher über C-sharp gekauft und muss sagen das erste spricht mich gleich total an. Voll für Einsteiger und DAU-gerecht! schonmal einen computer etwas bedient? dann ab zum programmieren!
im ernst und ich meine das aufrichtig und nicht böse, auch wenn mich jetzt manche schief ansehen könnten. "Visual C# 2005 - leicht, klar sofort" Markt und Technik. Hab mir schon für gnome das monodevelop runtergeladen, aber werde dennoch erst das buch mit mikrigweich durcharbeiten. scheint viel einfacher als C++ und qt udgl zu sein! ausserdem hab ich noch videoworkshops gefunden auf microsoft bzw einer adneren webseite. bin endlich wieder voll im fieber. ein falsches (nicht auf dich zurechtgeschnittenes) buch kann da schon sehr schaden. beim 2ten buch wirds dann schon zur sache gehen bei mir...aber ich für mich brauche halt eine easy daugerechte einführung wo mir alles vorgekaut wird....finde das einfach besser zum einstieg. MfG. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag