Erste Funktion mit Fehlern

Das Problem was ich hauptsächlich bei C++ für Anfänger sehe, ist die recht dürftige und teilweise auch umständliche stdlib(u.a. z.B. dass die ganzen C++-Klassen C-Strings verwenden).

Ich persönlich würde auch nicht mit C++ anfangen, eher mit Python oder C# aber darum ging es ja in diesem Thread ja nicht.
 
Soweit funktioniert mein Programm jetzt, allerdings muss ich nachdem ich "Breite" und "Länge" angegeben habe, immer diesen Playknopf in Xcode drücken. Das ist mir bei einigen Aufgaben schon aufgefallen. Kann mir jemand mehr über diesen Knopf erzählen ^^?

Der "Play"-knopf compiled dein Programm und führt es aus. Ich gebe dir als Tip: Nimm einen einfachen Editor (vim ist auch ok oder emacs, aber wenn du den ganzen Kram nicht brauchst der da mitgeliefert wird geht auch nano im Terminal und ähnliches. Als Compiler nimmst du dann g++ (Der Befehl g++ im Terminal siehe "man g++") Dann brauchst du auch nicht den "Play"-Knopf drücken.
 
Mich möchte mich nochmal wiederholen, dass ich es nicht gut finde, vor C++ C zu lernen. C++ kommt zwar von "C with classes" inzwischen haben die beiden Sprachen aber nicht mehr viel gemein.

Aber das Stroustrup-Zitat trifft meine größeren Bedenken ziemlich gut.

ich glaub, da gehen die meinungen auseinander...

ich finde, wenn man vor C++ (oder jeden anderen sprache) ne programmiersprache schonmal aus der entfernung mitgekriegt hat, dann is der einstieg vielleicht nicht ganz so schwierig wie ohne kenntnisse.
 

vor allem is der umgang mit zeigern (pointer) ein sehr heikles thema.
Und vor allem benötigt man die in C++ viel seltener und viel ungefährlicher. Wieso sollte man also bei C ein sehr heikles Thema lernen, um es bei C++ gleich wieder zu vergessen? Ja, ja, ich weiß, es ist so schön, wenn der Schmerz nachlässt. Aber gibt es sonst noch einen Grund?
 
Pauschal kann man das IMHO ohnehin nicht beantworten, aber ich finde ja.

C ist halt so etwas wie die Haus- und Hofsprache der Systemprogrammierung unter Unix.
Wenn man also unter Unix (portable) Programme schreiben möchte, die mit dem Sytstem interagieren, hat man schon einen wichtigen Grund C zu lernen. Ein weiterer Grund C zu lernen besteht mE darin, dass man dann den Code von sehr, sehr vielen Unix Programmen lesen kann, wenn man sich dafür interessiert.

Thema Pointer: klar sind die anfangs nicht ganz einfach zu verstehen, aber sie sind ja auch sehr nützlich. Von daher versteh ich nicht, warum auf denen immer so herumgehackt wird.
 
Pauschal kann man das IMHO ohnehin nicht beantworten, aber ich finde ja.

C ist halt so etwas wie die Haus- und Hofsprache der Systemprogrammierung unter Unix.
Stellt sich die Frage, ob er mit Systenmprogrammierung anfangen will oder warum man die Grundlage der Systemprogrammierung lernen sollte, wenn man gar nicht Systemprogrammierung betreiben will.

Ich finde übrigens, dass man unbedingt BNPL lernen sollte.

Wenn man also unter Unix (portable) Programme schreiben möchte, die mit dem Sytstem interagieren, hat man schon einen wichtigen Grund C zu lernen.
gegenüber C++?

Ein weiterer Grund C zu lernen besteht mE darin, dass man dann den Code von sehr, sehr vielen Unix Programmen lesen kann, wenn man sich dafür interessiert.

Thema Pointer: klar sind die anfangs nicht ganz einfach zu verstehen, aber sie sind ja auch sehr nützlich. Von daher versteh ich nicht, warum auf denen immer so herumgehackt wird.
Es geht weniger um die Pointer an sich, die man sich leicht als ID vorstellen kann. Es geht um die Arbeit mit Pointern. Diese ist einfach extrem fehleranfällig und ob der Indirektion schwer zu verstehen.

Aber wie dem auch sei: C++ nutzt eher Referenzen. Und daher sollte man das auch genau so lernen und nicht etwas anderes, um zu sehen, warum ich es nicht benutze.
 
Stellt sich die Frage, ob er mit Systenmprogrammierung anfangen will oder warum man die Grundlage der Systemprogrammierung lernen sollte, wenn man gar nicht Systemprogrammierung betreiben will.
...
Darum sagte ich ja, dass man die Frage (wie auch die immer wiederkehrenden Diskussionen mit welcher Sprache man "am besten" anfangen sollte) nicht pauschal beantworten kann.

Mir ist klar, dass man auch mit c++ Systemprogrammierung betreiben kann. C ist aber in diesem Bereich sehr weit verbreitet, nach meiner persönlichen Beobachtung mehr als c++, was ich aber nicht belegen kann.

Der Anlass für meinen Beitrag war, dass Du nach einem Grund gefragt hattest, C zu lernen. Wenn man sich für systemnahe Programmierung im Unix Umfeld interessiert, wäre das meiner Ansicht nach einer. Wenn man sich dafür nicht interessiert greift der logischerweise auch nicht.

Ich persönlich finde C außerdem eine gute, wenn auch nicht zwingende, Grundlage für Objective C, weil man einiges was man in C gelernt hat in Objective C sinnvoll nutzen kann und manches auch braucht. Kann man aber selbstverständlich auch gleich für Objective-C lernen.

Wege zum Programmieren gibt es mE viele. Sicher sind manche sind steiniger als andere, aber welcher nun der beste ist, hängt auch von vielen persönlichen Faktoren ab. Da kann man nur teilweise von der Erfahrung anderer profitieren.

Was ich persönlich nicht so gut finde, ist die Tatsache, dass immer wenn jemand schreibt "Ich fange gerade an, diese oder jene Sprache zu lernen, und habe hier ein kleines Einsteigerproblem (... oder suche eine gutes Buch dafür)", jemand schreibt "Bist Du sicher dass Du diese und nicht lieber jene Sprache lernen möchtest, weil die doch viel besser/einfacher/logischer/schöner/sicherer oder aus einem anderen Grund zu bevorzugen ist."

Sofort entspinnt sich dann eine Diskussion unter den Fachleuten, welches nun die beste Programmiersprache oder die am einfachsten zu lernen ist. Der Anfänger kann mit den ganzen Argumenten meist wenig bis gar nichts anfangen. Er möchte i.d.R. einfach mal anfangen und sehen, wie er zurecht kommt. Er hat eine konkrete Frage, die er beantwortet haben möchte, um den nächsten Schritt gehen zu können oder den vorangegangenen zu verstehen.
 
Nein, ich hatte nach dem Grund gefragt, warum man C als Einstieg in C++ lernen sollte. Auf einen entsprechenden Beitrag hatte ich auch geantwortet.
 
Ohjee, was denn hier aus meinem Thread geworden :( . Ich wollte doch nur ein bisschen Unterstützung. Ich wollte keine Programmiersprachen Diskussion lostreten. Ich habe wirklich vor einiger Zeit mir Python angeschaut. Ich fand Python zuerst wirklich interessant und es gab sehr viel Unterstützung in div. Foren. Ich als Anfänger, der schon mal in der Schule etwas PHP programmiert hat, fand es sehr extrem ungewöhnlich ohne { } und ; zu arbeiten.

Ich habe echt viel sehr viel Zeit mit dem Einrücken von Code verbracht, obwohl mein Programm eigentlich Fehlerfrei war. Natürlich wird jetzt wieder ein Anderer sagen:"Es ist sinnvoll, dass man weiß, wie man einzurücken hat". Dem will ich auch gar nicht Widersprechen. Als Anfänger ist es, aber eher frustrierend, wenn man zwei Stunden, an einem Programm hängt, dieser keine logischen Fehler enthält, dieses aber trotzdem nicht funktionfähig ist.

mfg
 
Ich habe echt viel sehr viel Zeit mit dem Einrücken von Code verbracht, obwohl mein Programm eigentlich Fehlerfrei war.
Falsche Einrückung entspricht nunmal vergessenen/falsch gesetzten Klammern. Und normalerweise gibt Python auch immer die Stellen an, bei denen die Einrückung inkonsistent ist. Wenn nicht, dann hatte dein Programm wirklich logische Fehler (auch wenn du das vielleicht nicht so siehst).

btw: Es war nicht meine Absicht dir zu irgendwas zu raten. ;)
 
noiseless schrieb:
Ohjee, was denn hier aus meinem Thread geworden . Ich wollte doch nur ein bisschen Unterstützung. Ich wollte keine Programmiersprachen Diskussion lostreten.

Ich versteh Dich, aber es gibt zu jeder Programmiersprache immer mind. 2 Poster die genau wissen das man die falsche Sprache gewählt hat statt die Frage zu beantowrten ;)
Da hilft nur überlesen! :)
 
Ich versteh Dich, aber es gibt zu jeder Programmiersprache immer mind. 2 Poster die genau wissen das man die falsche Sprache gewählt hat statt die Frage zu beantowrten ;)
Da hilft nur überlesen! :)

Ob deiner PM denk ich, dass du mich meinst. Da wüsste ich aber doch gerne, an welcher Stelle ich hier davon gesprochen habe, dass jemand die falsche Sprache wählt.

Danke!
 
Ich vermute eher, wegus meint Beitrag #9, #15, #21 usw.
 
Ich vermute eher, wegus meint Beitrag #9, #15, #21 usw.
Posting #9 (von SMJ)
»Bist Du Dir mit C++ ganz sicher, bzw. brauchst Du es wegen bestimmter Anforderungen?«

Posting #15 (von SMJ)
»Will Dich da keinesfalls entmutigen, aber c++ ist ein Biest. Auf jeden Fall solltest Du Dir ein Buch über Entwurfsmuster zu Gemüte führen-ich sag mal so, die Türen für ein gutes OO-Design sind bei c++ versteckter und schwieriger zu öffnen, als z.Bsp. bei objective-c oder Java.«

Posting #21 (von Darii)
»Das Problem was ich hauptsächlich bei C++ für Anfänger sehe, ist die recht dürftige und teilweise auch umständliche stdlib(u.a. z.B. dass die ganzen C++-Klassen C-Strings verwenden).

Ich persönlich würde auch nicht mit C++ anfangen, eher mit Python oder C# aber darum ging es ja in diesem Thread ja nicht.«

ich finde die Beiträge absolut okay.

+++

Ich habe es gerade noch einmal nachgeschaut: Du diesem Zeitpunkt war übrigens schon die ursprüngliche Frage beantwortet.
 
Da ich anscheinend Stein des Anstoßes geworden bin, hier noch ein paar Bemerkungen von meiner Seite.
Ich möchte den TE keinesfalls zu irgendwas bekehren, aber es gibt ein paar Fakten, auf die man den TE hinweisen sollte. Zur Komplexität von c++ wurde ja jetzt schon viel gesagt (vom Thema Templates wollen wir gar nicht erst anfangen).

Es gibt aber noch ein paar praktische Überlegungen, z.B.werden sich GUI-Programme als schwierig erweisen (mit einem MFC Windows Buch erst recht). Ne virtuelle Maschine mit vc Express geht nicht, denn die MFC sind da nicht dabei - mal ganz abgesehen von der Sinnlosigkeit, das dann auf dem Mac zu machen. Carbon Programme zu schreiben werden die c/c++ Apologeten hier hoffentlich nicht ernsthaft empfehlen.

Just my 2ct, beste Grüße SMJ
 
Zuletzt bearbeitet:
Ich fand deine Postings absolut okay. Die ursprüngliche Frage war beantwortet. Und was war deine Alternative? Schweigen und den OP mit C++ auf OS X in sein Verderben rennen lassen?

Neeee, sehe ich genau so wie du: Da kann man mal warnen. Und du hast ja sogar nur nachgefragt.
 
Stein des Anstosses finde ich jetzt auch übertrieben.
Ich möchte niemandem vorschreiben, was er zu posten hat. Wenn das so verstanden wurde, ist das ein Missverständnis.
Auch weiß ich, dass die Frage schon beantwortet war.

Ich persönlich finde es nur ein wenig nervig, wenn fast jedes mal, wenn ein Anfänger eine Frage stellt, immer die selbe "Welches ist die beste Sprache"-Diskussion losgetreten wird. Das führt mE zu nichts und hilft dem Fragenden meist kein bisschen, was #29 ja auch bestätigt.

"... in sein Verderben rennen" halte ich übrigens auch für etwas überzogen. Was bringt es denn, nur auf die alten Hasen zu hören und der persönlichen Erfahrung aus dem Weg zu gehen? Wenn er dann irgendwann mal GUI Programme am Mac schreiben möchte, wird er schon merken, dass es da Hürden gibt ;).
 
Es verhindert das Verschwenden von Zeit.

Ehrlich: Wenn man auf dem Mac Anwendungsprogramme schreiben will, ist C++ absurd. Das hat jetzt sogar nicht einmal etwas mit der Sprache zu tun, sondern mit der Kombination aus Sprache, Framework und System.

Und darauf sollte man hinweisen.
 
maceis schrieb:
Ich persönlich finde es nur ein wenig nervig, wenn fast jedes mal, wenn ein Anfänger eine Frage stellt, immer die selbe "Welches ist die beste Sprache"-Diskussion losgetreten wird. Das führt mE zu nichts und hilft dem Fragenden meist kein bisschen, was #29 ja auch bestätigt.

genau das und nur das meinte ich :)
 
Zurück
Oben Unten