C++ Tutorial - neuer Versuch



  • Hi, danke für das Statement.

    Xecutor schrieb:

    - einiges an Rechtschreibfehlern -> sollte möglichst korrigiert werden.
    Jo, wird gemacht

    Xecutor schrieb:

    - Bleibe bei einer Anrede, wenn du mit "Du" anfängst dann benutze weiterhin im Text Du, auf der 2. Seite am Ende benutzt du nämlich "Sie" als Anrede 😉 Ich persönlich würde weiter mit dem dutzen fortfahren.
    Ist ausgebessert, wird morgen upgeloadet

    Xecutor schrieb:

    - Die Hochkommata in deinem C++ Code nochmal überprüfen 😉

    Scheiss OpenOffice 🙂

    Xecutor schrieb:

    - ich dachte immer und meine es auch gelesen zu haben, das "cout" für character output steht - hoffe ich täusche mich da nicht 🙄

    Hmmm, kann gut sein, ist einige Zeit her als ich das gelesen habe, ich dachte ich hätte es richtig in errinnerung.

    Xecutor schrieb:

    - Eventuell solltest du noch an der Textformation arbeiten, einige Absätze, Vorschübe etc. einbringen. Wichtige bzw. markante Wörter wie main() oder cout in Texten hervorheben, durch Fett setzen oder ähnliches.

    Danke, werde ich machen.
    (Auch eventuell Syntax Coloring, weis blos nicht wie´s mit PDF gehen soll...

    Xecutor schrieb:

    Ansonsten liest sich der Text ganz gut, witzig finde ich das du den Compiler einen fiesen Burschen nennst 😉 Die ganze Geschichte mit dem Compiler fand ich sehr gut, hat mich zum schmunzeln gebracht 🙂

    Ich wollte mich so ein bisschen an den Dummie büchern orientieren,
    freut mich das es ok ist.

    Das wichtigste war mir im moment nur das es vom Stil her ankommt, wie bereits oben stand, der Inhalt wird hoffentlich mehr und besser.
    Heute ist mir halt nichts inhaltlich neues eingefallen und ich wollte den Leser im ersten Kapitel vorallem vor falschen mains abschrecken. 😃

    Danke, bin weiterhin an Statements interresiert.



  • @Artchi: Ok, aber ich werde beim bösen, fiesem Burchen dem Compiler bleiben. 😃

    Auch sagst du, das die Bibliotheken (für Fenster usw.) nicht zu C++ gehören? Warum? Es sind doch C++ Bibliotheken, nur sind sie nicht im ISO-Standard vom C++-Kommitee abgesegnet.

    Naja ich werde sie als C++ Bibliotheken aufführen, ich zähle sie nicht der Sprache C++ zugehörig weil, sie sich einige nicht gut in diese Eingliedern und weil sie kein Bestandteil sind, wie es bei Java und C# der Fall ist. Dort sind sie fester Bestandteil und wesentlich einfacher zu behandeln, aber ich werde mir das nocheinmal sehr gut durch den Kopf gehen lassen.

    Ich werde also das ganze mal ausbauen, wichtig war der Stil und er scheint einigermaßen ok zu sein, jetzt kann ich mich um den Inhalt kümmern.

    Danke. 👍

    MfG Max



  • Da externes Linken ja nicht erlaubt ist linken wir nun intern 🙂 :
    http://master_max.funpic.de/Tutorial.html



  • aus deinem tutorial:

    Vergesse auch hier bitte nicht das ;sonst gibt der Compiler wieder unverständliches Englisches
    Gebrabbel von sich.

    zum glück kann ich englisch. als programmierin muss man das können. zumindest muss man fehlermeldungen lesen und verstehen. sonst hat man von vornherein verloren.
    einen solchen satz in deinem "tutorial" suggeriert, das man die fehlermeldungen "ignorieren" soll.. und dann schreiend in das c++ forum "hilfe" posten muss.

    wenn man sich einen tag damit auseinandersetzt, sieht man schnell, wie klar und deutlich der compiler einem die fehler richtig anzeigt. zumindest bei anfänger c++ problemen (templates sind dann etwas anders geortet).

    schau dir mal shades c++ tutorial an, oder volkards.
    es geht vor allem darum, leuten zu helfen, daß sie selbständig fehler erkennen und ihre programme verstehen lernen.
    übrigens ist das visual studio auch auf deutsch erhältlich.

    so long.



  • Master_Max schrieb:

    Heute ist mir halt nichts inhaltlich neues eingefallen und ich wollte den Leser im ersten Kapitel vorallem vor falschen mains abschrecken. 😃

    Warum?
    Sieh dir mal volkards Tutorial an - void main() ist zwar falsch, aber dennoch nicht so tragisch. Man kann auch mit void main() gute Programme schreiben 🙂

    IMHO solltest du mehr erklären und mehr auf die Technik eingehen

    Nach #include kommt kein Strichpunkt - ist zwar richtig, aber ich weiss jetzt nicht wieso - und werde es mir vermutlich nicht merken.

    Sieh dir mal meinen Ansatz an: ich habe #includes und Co am Anfang nicht erklärt: ich habe gesagt: das ist so, und basta -> es reicht ja auch für den Anfang. Langsam entdeckt der Leser dann den Sinn - bis ich ihm das Konzept der Übersetzungseinheiten präsentiere.

    Du musst es natürlich nicht genauso machen - aber vielleicht kannst du dir ein paar Ideen holen 🙂 Bei mir hat es auch etliche Tutorials, Texte und Antworten und Erklärungen im Forum und Chats bedarft, bis ich einiger maßen vernünftige Texte schreiben konnte.



  • C++ ist die in der Proffesionellen Programmierung am meisten genutzte Sprache

    Ich würde das auch nicht als Fakt hinstellen. Die meisten Betriebssysteme sind in C/ASS.



  • Unix-Tom schrieb:

    C++ ist die in der Proffesionellen Programmierung am meisten genutzte Sprache

    Ich würde das auch nicht als Fakt hinstellen. Die meisten Betriebssysteme sind in C/ASS.

    Aha? Und professionelle Programmierung wird nur in der Betriebssystem-Entwicklung betrieben??? 😮

    Die Aussage von MasterMax ist ansich total irrelevant! In der Industrie wird eigentlich in jeder Sprache prorgammiert, egal ob Delphie, Java, VisualBasic, C, C++ usw.

    Im VW-Konzern dominiert praktisch Java, sowohl auf Desktop-Applikationen als auch auf der Middleware. C++-Projekte gibts so gut wie garnicht mehr in dem Konzern.



  • Ihr habt ja recht und ich habe im ersten Abschnitt zuviel gemacht.
    Ich wollte mal eine andere Art versuchen, gleich viel erklären und möglichst lustig. Den Leuten Fakten hinstellen mag ich nicht, aber wenn es im nächsten Kapitel erklärt wird und dann im vorherigen gesagt: Im nächsten wird´s erklärt, macht es einfach so. Dann ist´s auch Ok.

    Wie gesagt, ich wollte etwas neues Probieren, ich wollte ganz kleine Happen machen damit jeder Leser, egal welche Zielgruppe es versteht und erfolgserlebnisse am Fließband bekommt. Ausserdem wollte ich es unterhaltsam schreiben.

    Ich habe mir wohl zu viel vorgenommen und werde mal mein Konzept überdenken bevor ich weitermache, vielen dank an alle.



  • Artchi schrieb:

    Aha? Und professionelle Programmierung wird nur in der Betriebssystem-Entwicklung betrieben??? 😮
    .

    Ok, ich werde es in:

    Die in der Proffesionellen Software-Entwicklung wohl am meist verwendete Sprache.

    ändern.



  • Shade Of Mine schrieb:

    Master_Max schrieb:

    Heute ist mir halt nichts inhaltlich neues eingefallen und ich wollte den Leser im ersten Kapitel vorallem vor falschen mains abschrecken. 😃

    Warum?
    Sieh dir mal volkards Tutorial an - void main() ist zwar falsch, aber dennoch nicht so tragisch. Man kann auch mit void main() gute Programme schreiben 🙂

    IMHO solltest du mehr erklären und mehr auf die Technik eingehen

    Nach #include kommt kein Strichpunkt - ist zwar richtig, aber ich weiss jetzt nicht wieso - und werde es mir vermutlich nicht merken.

    Sieh dir mal meinen Ansatz an: ich habe #includes und Co am Anfang nicht erklärt: ich habe gesagt: das ist so, und basta -> es reicht ja auch für den Anfang. Langsam entdeckt der Leser dann den Sinn - bis ich ihm das Konzept der Übersetzungseinheiten präsentiere.

    Du musst es natürlich nicht genauso machen - aber vielleicht kannst du dir ein paar Ideen holen 🙂 Bei mir hat es auch etliche Tutorials, Texte und Antworten und Erklärungen im Forum und Chats bedarft, bis ich einiger maßen vernünftige Texte schreiben konnte.

    Wie gesagt, ich habe im ersten Tutorial sehr viel erklärt was ich erst einmal stehen hätte lassen können, ich werde das auf jeden Fall überdenken.

    Zum #include und dem nicht folgenden sprichpunkt.
    Ich wollte den Leser nicht im ersten Kapitel auch noch erzählen das include nicht kompiliert wird, sondern ein Präprozessor befehl ist und das auf Präprozessorbefehle kein Strichpunkt folgt.

    Um noch aufs nicht Englisch können einzugehen, du hast recht man muss Englisch können doch im ersten Kapitel will der Leser nicht denken, er will ein Erfolgserlebnis und das so schnell wie möglich. Ansonsten gebe ich dir Recht.

    Vielleicht werde ich nicht auf die ersten zwei Zeilen eingehen,
    wäre eventuell besser so.

    Danke an alle, habt mir sehr geholfen. 👍



  • Einige Fackten zu C++:

    *gallewiederrunterschluck* 😉 👍



  • Ich habe mir jetzt mal vorgenommen das ganze mehr zu splitten, zu fast jedem Abschnitt wird es einige Aufgaben + Lösungen geben:

    Intro
    Was kann C++ und warum C++ lernen
    Ein bisschen Geschichte
    Einrichten einer Entwicklungsumgebung ( (Windows VC + Dev-C++) +(Linux KDevelop) )
    Das Erste Programm (Bildschirmausgaben etc.)
    Variablen + Stringklasse der STL(Eingaben aus der Tastatur einlesen und speichern)
    Kontrollstrukturen
    Zeiger
    Funktionen

    Das sollte für den Anfang reichen... ich melde mich dann bald wieder.
    Danke an alle.



  • Hi.

    Ich finde "leider" machst du (wie auch sehr sehr viele) den bösen Fehler zu weit vorne zu beginnen.

    Programmieren ist ein bisschen mehr als nur das eintippen von "einfachen" Befehlen.

    Gerade bei C/C++, wo man doch recht nahe an den Bits und Bytes arbeitet finde ich das das erste Kapitel sich mit den Datentypen und den Grundlagen der Speicherung von Zahlen, Buchstaben etc. in diesen befassen sollte.

    Ich erlebe es gerade bei mir in der Vorlesung zu C Programmieren.
    Mein Prof fängt genauso an wie du und kommt mit dieser Methode zwar sehr schnell zu Ergebnissen (sprich zum ersten fertigem Programm) aber verstehen tun es die Leute nicht. Die Fragen sich nämlich was denn eigentlich passiert wenn ich "int iZahl1;" da hinschreibe und warum ich das machen muss etc.
    Und dann auch noch worin genau der Unterschied zwischen "int" und "unsigned int" besteht. Und dann WARUM ich bei "unsigned int" viel größere Zahlen darstellen kann als nur mit "int".

    Ich finde GENAU DAS wird in SO vielen Tutorials einfach verschluckt! Und es ist absolut wichtig, gerade bei C/C++, dieses zu verstehen. Daher ist es vollkommen unangebracht im ersten Kapitel mit einem "Hello World" Programm anzufangen.

    Das ist zwar nur meine Meinung, aber ich habe gesehen das es vielen Leuten genau so ergeht wie ich hier beschrieben habe.

    Ich persöhnlich muss sagen, das ich in C/C++ wesentlich sicherer geworden bin, als ich auch noch mit Assembler angefangen habe, da ich nun genau weiß was denn intern vorgeht wenn ich da eine bestimmte Zeile in C verfasse.

    Und wenn ich den Hintergrund der Bits und Bytes nichtmal verstehe oder weiß das es sowas gibt, brauch ich mit C nicht anzufangen.



  • Artchi schrieb:

    Unix-Tom schrieb:

    C++ ist die in der Proffesionellen Programmierung am meisten genutzte Sprache

    Ich würde das auch nicht als Fakt hinstellen. Die meisten Betriebssysteme sind in C/ASS.

    Aha? Und professionelle Programmierung wird nur in der Betriebssystem-Entwicklung betrieben??? 😮

    Ist doch genau was ich gesagt habe. Sein Aussage stimmt nicht.
    Wenn jemand sein Tut ließt, läuft derjenige dann herum und sagt: "Die Profis programmieren alle in C++ und das ist der Großteil der Entwickler"

    Die ist kein Fakt da es nicht stimmt. In einem Tutorial soll man nicht Halbwahrheiten verbreiten, da ein Leser dies als gegeben annimmt.

    Geht man jetzt von Großteil aus so wären es z.B. PHP,JAVA, etc.
    Auch das Programmieren ein Website ist Programmieren. Dies geschieht aber nicht mit C++ sondern mit php,java und was weiß ich noch alles. Das darunter C arbeitet ist in diesem Fall irrelevant. Dies meinte ich mit Betriebssystem. Im Grunde programmieren auch php- und java-entwickler auch mit hilfe von c/c++. Die meisten Programme sind aber nicht C++.



  • TeeJay! Muß dir hier voll und ganz zustimmen! Aber ich denke, das es heute schwieriger ist, in Assembler einzusteigen. Oder sagen wir es mal so: alle wollen Fenster usw. darstellen.

    Damals hab ich auf dem C64 in Assembler angefangen. Ich wußte also wie so ein Computer arbeitet. Als ich dann Jahre später auf C++ umstieg (was mir seeehr schwer fiel!), habe ich mir bei jeder Zeile die ich eintippte, vorgstellt, was nun der Compiler daraus macht. Eigentlich war es verrückt sich jedesmal darüber Gedanken zu machen. Vorallem habe ich bei OO-Kram die Kriese bekommen, weil in meinen C++-Büchern nicht drin stand, was im Hintergrund passiert, wenn ich eine Klasse instanziere.

    Selbst heute findet man in der Literatur immer noch keine Aussage, was da nun passiert. Es heißt immer lappidar: "Es wird ein neues Objekt erzeugt." Ich konnte es mir einfach nicht vorstellen, was damit gemeint war. Ich habe noch in Assembler gedacht. Es sind nicht nur Einsteiger-Tutorials wo ich sowas vermisst habe.

    Sicherlich, heute weiß ich was da passiert. Und ich kann heute beruhigt und bedenkenlos OO programieren.

    Ich habe letztens meinem Cousin, der Delphie an der Techniker-Abendschule lernt, erklärt was eine Parameter-Übergabe by Refrence und by Value passiert. Was nun im Speicher und mit dem ProgrammCounter der CPU usw. passiert, hatte ihnen NIEMAND erklärt. Und ich muß sagen, mit ein paar Skizzen auf Papier hat er verstanden was da genau passiert, wenn er eine Funktion aufruft. Und warum es by Value und by Referece gibt.



  • @Artchi

    Ich hab mir mal deinen kleinen "Bericht" über CPP durchgelesen und ich denke du siehst ein paar Dinge vom falschen Standpunkt aus.

    1. Man kann C/C++ schon zusammenfassen. Man kann mit einem C++ compiler auch Strukturierten Code a la C schreiben ohne Probleme. Es gibt klar ein paar Feinheiten (wenn man mal von OO absieht) in denen sich C und C++ unterscheiden. Aber ich persöhnlich kenne nichtmal alle und schreibe meine Programme oftmals aus einem Mix aus C und C++ und hatte bisher absolut keine Probleme. Abgesehen davon ist der Syntax von Schleifen, Anweisungen etc exakt gleich bei beiden, was ebenfalls dafür spricht es zusammen zu erwähnen.

    2.C++ ist jawohl schwer. Für einen Anfänger. Man kann nicht immer davon ausgehen das jemand gleich oben einsteigen kann. Ich habe mit QuickBasic angefangen. Mich dann über VB, Delphi und Java zu C/C++ gehangelt und bin bei C++ geblieben. Ich würde nie behaupten das C++ einfach ist. Aber ich finde es vom Syntax und den Möglichkeiten her am besten.

    3. Man kann Java, C++, PHP etc nicht so ohne weiteres miteinander vergleichen. Jede Sprache ist für ein spezielles Aufgabengebiet am geeignetsten. Mann kann dynamische Webseiten auch über CGI von einem C++ Programm generieren lassen. Aber da PHP die meisten Funktionen für Stringbearbeitungen und Datenbanken ohne großes Drumherum sehr einfach bereitstellt ist es meist dafür die erste Wahl (neben PERL vielleicht). Java ist einfacher Plattformunabhängig zu gestalten als C++. Die meisten Programme sind sehr eng an eine API eines bestimmten OS gebunden, weshalb das portieren doch einen Aufwand darstellt.
    Java hat meiner Meinung aber ebenfalls einen nachteil. Man ist darauf angewiesen das es eine Virtuelle Machine für das betreffende OS gibt und ich persöhnlich finde Java sehr lahm und finde das aufgezwungene Konzept von OO sehr doof. Man kann dort ohne Klassen praktisch nicht arbeiten was die Sache meist etwas wirr erscheinen lässt. Über Schnickschnack wie Garbage-Collection lässt sich streiten.

    3. Schnellentwicklung ist bei C++ meist nur ohne viel Komfort möglich. Sprich ich habe dann nur sehr eingeschränkte Möglichkeiten. ABER: Wenn ich einfach nur schnell ein blödes Fenster haben will, dann nehme ich VB oder Delphi und fertig. (Somal es ja auch gute Bibliotheken a la MFC für C++ gibt, mit denen man auch recht komfortabel Fenster erstellen kann).

    So das wärs auch soweit. Soll keine Beleidigung oder dergleichen sein, aber ich finde du hast manche Dinge einfach nicht objektiv genug gesehen.

    Mal abgesehen davon ist es jedem sein eigenes Ding womit er programmiert.

    FAZIT: Man kann sich nicht für alles auf eine Sprache festelegen, sondern sollte möglichst geschickt wählen um das beste Ergebnis zwischen Aufwand und Ergebnis zu erhalten.



  • Nochmal @Artchi 🙂

    Man muss ja auch nicht zwingend Assembler lernen um gut Programmieren zu können. Es hilft einem aber doch ungemein wenn man versteht was mit dem Stack passiert und wieso lokale Variablen eben nur lokal sind usw.

    Aber ein gutes Tutorial sollte sich nicht davor drücken über Bits und Bytes und den Aufbau der Datentypen (ok die FPU-Datentypen MÜSSEN nicht umbedingt dabei sein) zu reden. Das gehört einfach dazu, wenn man gescheite Programme schreiben möchte.

    Es gibt ja auch zig Aspekte die man berücksichtigen kann. Will ich mein Programm speicherschonend schreiben, oder will ich viel Speed haben.



  • Artchi schrieb:

    Selbst heute findet man in der Literatur immer noch keine Aussage, was da nun passiert. Es heißt immer lappidar: "Es wird ein neues Objekt erzeugt."

    Weil das eben das schöne an Abstraktion ist. Du weisst es nicht. Jeder Compiler kann machen was er will 🙂 Da sind unglaubliche Optimierungen drinnen.

    Ich habe letztens meinem Cousin, der Delphie an der Techniker-Abendschule lernt, erklärt was eine Parameter-Übergabe by Refrence und by Value passiert. Was nun im Speicher und mit dem ProgrammCounter der CPU usw. passiert, hatte ihnen NIEMAND erklärt. Und ich muß sagen, mit ein paar Skizzen auf Papier hat er verstanden was da genau passiert, wenn er eine Funktion aufruft. Und warum es by Value und by Referece gibt.

    Und warum ist das wichtig? Sicher, bei einfachen Sachen wie nem simplen Funktionsaufruf kann man es auch noch vernünftig erklären, aber wie sieht es mit komplexeren Sachen aus, wie zB Fenster, Threads, etc. Das artet dann einfach aus. Ab einem gewissen Zeitpunkt versteht man eh was da in etwa passiert - aber alles genau zu wissen ist übertrieben - wer hat schon die Zeit das alles genau zu lernen?

    Deshalb programmiert man ja in High Level Sprachen und nicht in ASM 🙂



  • TeeJay schrieb:

    Aber ein gutes Tutorial sollte sich nicht davor drücken über Bits und Bytes und den Aufbau der Datentypen (ok die FPU-Datentypen MÜSSEN nicht umbedingt dabei sein) zu reden. Das gehört einfach dazu, wenn man gescheite Programme schreiben möchte.

    Blödsinn.

    Was hat Programmieren mit der internen Darstellung von der Datentypen zu tun.
    Ich habe zB absolut keine Ahnung was PHP mit einem
    $i=5;
    macht. Es interessiert mich auch nicht 🙂 Und dennoch schreibe ich 'gescheite' Sachen in PHP.



  • Shade, ohne Kentnisse der Grundlagen von Bits und deren Operatoren passiert aber irgendwann sowas:

    http://www.c-plusplus.net/forum/viewtopic.php?t=70607


Anmelden zum Antworten