 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
neo Guest
|
Posted: Tue Sep 02, 2003 6:27 pm Post subject: Tutorial empfehlung? |
|
|
Hallo, könnt ihr ein Tutorial zum Thema "C++ Einsteigen" und "C++ OOP mit
GTK" empfehlen?
mfg
neokyne
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Wed Sep 03, 2003 9:29 am Post subject: Re: Tutorial empfehlung? |
|
|
neo wrote:
Der Neo aus 'Matrix', dem Kinofilm? Wow. Aber mit deinen Faehigkeiten
wuerde ich eher Assembler programmieren als C++. Das wuerde keinen
Unterschied in der Entwicklungsgeschwindigkeit, dafuer aber schnellere
Laufzeit bringen.
Und da in dieser Gruppe eigentlich nicht unter Pseudonymen gepostet
wird, waere ich dir verbunden, das naechste mal 'Thomas Anderson' als
Namen anzugeben.
| Quote: | Hallo, könnt ihr ein Tutorial zum Thema "C++ Einsteigen"
....[empfehlen] |
Nein. Fast alle Online Tutorials, die ich kenne, sind aus dem
Grund nicht zu empfehlen, dass sie veraltete Header benutzen,
nicht auf den std namespace achten, und allgemein eher C als
C++ sind. Wenn du mir versprichst, dass du dir bei Gefallen
an C++ ein nettes Buch (z.B. 'Die C++ Programmiersprache'
vom 'Erfinder' von C++ selbst - Bjarne Stroustrup) zulegst
und damit weiter lernst, kannst du dir das hier ansehen:
http://directory.google.com/Top/Computers/Programming/Languages/C%2B%2B/FAQs,_Help,_and_Tutorials/General_C%2B%2B_Introductions/?il=1
(doof, dass der Link so lang ist)
http://www.cplusplus.com/doc/tutorial/
scheint relativ gut geeignet zu sein. Aber auch hier
wird noch iostream.h verwendet... d.h. es wurde wohl ~5-6 Jahre
nicht mehr aktualisiert (?)
| Quote: | und "C++ OOP mit GTK" empfehlen?
|
Was hat das Eine mit dem Anderen zu tun?
GTK ist eine (wohl objektorientiert programmierte) C API.
Fuer C++ + OOP + GTK kannst du dir
http://www.gtkmm.org
ansehen.
cu, Daniel
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Wed Sep 03, 2003 12:25 pm Post subject: Re: Tutorial empfehlung? |
|
|
Stefan Ram wrote:
| Quote: | Daniel Albuschat <daniel (AT) viming (DOT) de> writes:
Der Lehrgang "Aktiv programmieren lernen mit C++" hat die
von Dir genannten Maengel nicht.
--8<--------------
http://purl.net/stefan_ram/pub/c++_de
|
Das freut mich.
Ich werde mir die URL notieren, damit ich nicht immer
"mit leeren Haenden dastehe", wenn mich ein Anfaenger
nach einem Online C++ Kurs fragt.
Danke
Eine Anmerkung zu etwas, das ich von dir hier in der Gruppe
schon mehrmals, und jetzt noch einmal im Kurs gelesen habe:
(es wurde in
http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&selm=b72dl8%2431c%2405%241%40news.t-online.com
zwar kurz angeschnitten, aber nicht zu Ende diskutiert)
#include
#include <ostream> // <<
int main(){ ::std::cout << "Hallo!" << 'n'; }
Mir geht es um das #include
fuer den Operator << fuer std::cout braucht;
Da std::cout ein std::ostream ist, muss er zwangsweise den ostream
Header #include-ieren. Deswegen wuerdest du ihn so bloss doppelt
includieren. Gleiches gilt fuer #include > operator.
Kann natuerlich sein, dass ich etwas uebersehen habe, aber IMHO ist
es ueberfluessig (und sollte damit auch nicht im Kurs beigebracht werden).
cu, Daniel
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Wed Sep 03, 2003 3:11 pm Post subject: Re: Tutorial empfehlung? |
|
|
Hallo,
Daniel Albuschat <daniel (AT) viming (DOT) de> wrote:
| Quote: | #include <iostream> // ::std::cout
#include <ostream> //
int main(){ ::std::cout << "Hallo!" << 'n'; }
Mir geht es um das #include
fuer den Operator << fuer std::cout braucht;
Da std::cout ein std::ostream ist, muss er zwangsweise den ostream
Header #include-ieren.
|
Nein, muß er nicht, jedenfalls wenn man nach dem strengen
Wortlaut der Norm geht. Wenn
class ostream;
extern ostream cout;
// und entsprechend die anderen Stream-Objekte
enthält, wäre das gültig.
Siehe auch <m2ptkei4o0.fsf (AT) madbox2 (DOT) local> ff. vor ein paar
Wochen in dieser Newsgroup.
Aber bitte weiterlesen...
| Quote: | Deswegen wuerdest du ihn so bloss doppelt
includieren. Gleiches gilt fuer #include <istream> fuer den >> operator.
Kann natuerlich sein, dass ich etwas uebersehen habe, aber IMHO ist
es ueberfluessig (und sollte damit auch nicht im Kurs beigebracht werden).
|
Die Norm läßt die Intention erkennen, daß das tatsächlich so
gemeint ist. Alle Beispiele, die cin/cout/... verwenden, binden
nur <iostream> ein. Offizielle Worte dazu findest du auf
<http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-closed.html#343>
Der Vorschlag lautet, die Norm dahingehend zu ändern, daß
<iostream> die Header <istream> und <ostream> einbinden muß.
Ich würde auch dabei bleiben, weiterhin nur <iostream> zu
verwenden. Mir ist kein Compiler bekannt, wo das nicht
funktionieren täte - schon weil quasi sämtliche Literatur incl.
Stroustrup und ISO 14882 es so zeigen, und weil o.g. library
defect existiert. (Genauso garantiert dir die Norm nicht, daß
std::vector zusammenhängenden Speicher enthält; sie läßt nur
eine Intention erkennen. De facto ist ein Vektor immer zusammen-
hängend, und jeder zweite Programmierer verwendet diese Eigenschaft.
<http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#69>)
Es schreibt übrigens auch fast niemand "::std::cin". Wer selbst
eine Klasse oder einen Namensraum 'std' definiert, ist selber
Schuld, und wer das nicht tut, braucht auch "::std" nicht. Das
kann also aus einem *Tutorial* auch raus.
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Andreas Nicolai Guest
|
Posted: Wed Sep 03, 2003 3:35 pm Post subject: Re: Tutorial empfehlung? |
|
|
Daniel Albuschat wrote:
| Quote: | C++ sind. Wenn du mir versprichst, dass du dir bei Gefallen
an C++ ein nettes Buch (z.B. 'Die C++ Programmiersprache'
vom 'Erfinder' von C++ selbst - Bjarne Stroustrup) zulegst
und damit weiter lernst, kannst du dir das hier ansehen:
|
Hmm, zum "Lernen" halte ich den Stroustrup als denkbar ungeeignet. Da gibt's
wesentlich bessere C++ Einsteiger Bücher. Am Besten Du gehst mal in eine
gute Bibliothek (oder wenn's Geld reicht in den Buchhandel) und schaust
nach Bücher, die in folgende Suchmaske passen:
- Erscheinungsjahr jünger als 1999
- in abgedruckten Quelltexten kommen keine C-Style Header vor also z.B.
#include <*.h>
- Die Bücher sollten keinen Lernerfolg innerhalb einer bestimmten Zeit (21
Tage??) versprechen (C++ lernt man nicht innerhalb von ein paar Monaten...
das dauert wesentlich länger!)
- Das Buch sollte nicht auf einen bestimmen Compiler oder eine
Entwicklungsplattform zugeschnitten sein (also kein VC++ Buch kaufen)
- Es sollte ausdrücklich was von Standard C++ geschrieben sein, falls im
Buch andere Bibliotheken erwähnt werden, ist das meist ungünstig (als
Anfänger kommt man dann leicht durcheinandern, zwischen der Standard
Bibliothek und anderen)
So, da sollte dann immer noch ein Handvoll von Büchern übrigbleiben. Und
wenn Du englischsprachige Literatur zulässt, bekommst Du noch etliche
mehr...
Viel Glück beim Suchen!
Andreas
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Patrick Frankenberger Guest
|
Posted: Wed Sep 03, 2003 7:25 pm Post subject: Re: Tutorial empfehlung? |
|
|
"Andreas Nicolai" <Andreas.Nicolai (AT) web (DOT) de> schrieb im Newsbeitrag
news:3f560a1d$0$2335$9b4e6d93 (AT) newsread2 (DOT) arcor-online.net...
| Quote: | Daniel Albuschat wrote:
C++ sind. Wenn du mir versprichst, dass du dir bei Gefallen
an C++ ein nettes Buch (z.B. 'Die C++ Programmiersprache'
vom 'Erfinder' von C++ selbst - Bjarne Stroustrup) zulegst
und damit weiter lernst, kannst du dir das hier ansehen:
Hmm, zum "Lernen" halte ich den Stroustrup als denkbar ungeeignet.
|
Stroustrup hat selbst auch was zum Thema C++-Lernen geschrieben:
http://www.research.att.com/~bs/new_learning.pdf
Zu deiner List fügt er noch hinzu:
| Quote: | - Erscheinungsjahr jünger als 1999
- in abgedruckten Quelltexten kommen keine C-Style Header vor also z.B.
#include <*.h
- Die Bücher sollten keinen Lernerfolg innerhalb einer bestimmten Zeit (21
Tage??) versprechen (C++ lernt man nicht innerhalb von ein paar Monaten...
das dauert wesentlich länger!)
- Das Buch sollte nicht auf einen bestimmen Compiler oder eine
Entwicklungsplattform zugeschnitten sein (also kein VC++ Buch kaufen)
- Es sollte ausdrücklich was von Standard C++ geschrieben sein, falls im
Buch andere Bibliotheken erwähnt werden, ist das meist ungünstig (als
Anfänger kommt man dann leicht durcheinandern, zwischen der Standard
Bibliothek und anderen)
|
- Das Buch sollte nicht zuerst C beibringen
- ... zuerst Beispiele bringen die auf abstrakten Datentypen basieren, bevor
es die zu den low-level-Details kommt und zeigt wie man diese Datentypen
implementiert
- ... Konzepte und Techniken beibringen und dazu dann die Sprachfeatures
zeigen, die diese Techniken in C++ erleichtern
- ... zuerst nützliche und gebräuchliche Techniken und Features zeigen bevor
es in die Details geht
Wenn man die Kriterien auf "Die C++ Programmiersprache" anwendet, scheint
Stroustrup auch der Meinung zu sein, dass es bessere Bücher zum C++-Lernen
gibt.
Gruß,
Patrick
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Wed Sep 03, 2003 8:37 pm Post subject: Re: Tutorial empfehlung? |
|
|
Andreas Nicolai wrote:
| Quote: | Hmm, zum "Lernen" halte ich den Stroustrup als denkbar ungeeignet. Da
gibt's wesentlich bessere C++ Einsteiger Bücher. Am Besten Du gehst mal in
^^^^ |
ICH suche garkeine Anfaengerbuecher. ;)
| Quote: | eine gute Bibliothek (oder wenn's Geld reicht in den Buchhandel) und
schaust nach Bücher, die in folgende Suchmaske passen:
[lange Liste]
So, da sollte dann immer noch ein Handvoll von Büchern übrigbleiben. Und
wenn Du englischsprachige Literatur zulässt, bekommst Du noch etliche
mehr...
|
Deine Buecherei muss _weitaus_ besser sein als meine.
Bei mir blieben da 0 uebrig, wuerde ich 'Die C++ Programmiersprache' nicht
zulassen. Kannst du mir Buecher nennen, die nicht besagte boese .h Header
benutzen, und als Zielgruppe C++-Anfaenger haben?
cu, Daniel
--
eat(this); // delicious suicide
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Christoph Rabel Guest
|
Posted: Thu Sep 04, 2003 1:03 am Post subject: Re: Tutorial empfehlung? |
|
|
Daniel Albuschat wrote:
| Quote: | So, da sollte dann immer noch ein Handvoll von Büchern übrigbleiben. Und
wenn Du englischsprachige Literatur zulässt, bekommst Du noch etliche
mehr...
Deine Buecherei muss _weitaus_ besser sein als meine.
Bei mir blieben da 0 uebrig, wuerde ich 'Die C++ Programmiersprache' nicht
zulassen. Kannst du mir Buecher nennen, die nicht besagte boese .h Header
benutzen, und als Zielgruppe C++-Anfaenger haben?
|
Auf www.accu.org sollten genug empfehlenswerte Bücher zu
finden sein.
mfg Christoph
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Thu Sep 04, 2003 10:05 am Post subject: Re: ::std |
|
|
Stefan Ram <ram (AT) zedat (DOT) fu-berlin.de> wrote:
| Quote: | Stefan Reuther <sr21 (AT) inf (DOT) tu-dresden.de> writes:
Es schreibt übrigens auch fast niemand "::std::cin". Wer selbst
eine Klasse oder einen Namensraum 'std' definiert, ist selber
Schuld, und wer das nicht tut, braucht auch "::std" nicht. Das
kann also aus einem *Tutorial* auch raus.
Immerhin steht das so in ISO/IEC 14882:1998(E), Fussnote 165:
"Such names are also reserved in namespace ::std"
Fast immer ist "::std" nicht noetig. Es geht mir hier eher um
die begriffliche Klarheit, weniger darum mit moeglichst wenig
Zeichen etwas zu schreiben, dass fast immer funktioniert:
Ich meine "::std" und nicht "std". Das sind zwei verschiedene
Sachen - also schreibe ich auch "::std".
|
Anfänger dürften von sowas aber eher verwirrt werden. Wer gerade
sein zweites 'hello world' programmiert hat, dürfte mit der
Entscheidung, ob es nun 'std' oder '::std' heißen soll,
überfordert sein. Die Lernkurve von C++ ist schon steil genug,
du machst sie steiler.
| Quote: | Ich schreibe auch
"/etc/passwd" und nicht "etc/passwd", wenn ich "/etc/passwd" meine.
|
Du schreibst aber 'gcc', wenn du eigentlich '/usr/bin/gcc'
meinst.
Deine Mühen in Ehren, aber: was mich davon abhält, deine Seiten
zu empfehlen, ist zum einen diese stellenweise übertriebene
Genauigkeit, die mehr verwirrt als hilft (der Anfänger findet in
einem Programm eines anderen Autors kaum bekannte Worte wieder).
Zum anderen ist es die Terminologie, die niemand sonst verwendet
("Kopfspezifikationsnamen", "Meßaufrufbares", "Vorverarbeiter-
direktiven", "Mischaufrufbares", ...), und die Formatierung, die
außer dir auch keiner benutzt. Mag sein, daß man damit C++
lernen kann; man lernt aber eben nichts, worüber man sich mit
anderen Leuten austauschen könnte, da einen die anderen Leute
nicht verstehen. Und der "Schlüsselwörter"-Block am Ende der
Seiten ist einfach nur peinlich.
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Wilhelm K. Guest
|
Posted: Thu Sep 04, 2003 10:45 am Post subject: Re: Tutorial empfehlung? |
|
|
Hallo liebe Gruppe!
Lieber Stefan, kann men jenen Kurs, auch irgentwo
gepackt downloaden ?
danke
willi
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Thu Sep 04, 2003 2:13 pm Post subject: Re: ::std |
|
|
Hallo,
Stefan Ram <ram (AT) zedat (DOT) fu-berlin.de> wrote:
| Quote: | Stefan Reuther <sr21 (AT) inf (DOT) tu-dresden.de> writes:
Anfänger dürften von sowas aber eher verwirrt werden. Wer gerade
sein zweites 'hello world' programmiert hat, dürfte mit der
Entscheidung, ob es nun 'std' oder '::std' heißen soll,
überfordert sein. Die Lernkurve von C++ ist schon steil genug,
du machst sie steiler.
C++ ist tatsaechlich eine Programmiersprache, die recht
schwer zu erlernen ist, besonders, wenn jemand noch keine
Erfahrungen mit aehnlichen Sprachen hat.
Fuer die ersten Schritte verwende ich das "Halloprogramm"
als ein Geruest. Die Teilnehmer veraendern in Uebungen
zunaechst nur den auszugebenden Ausdruck "Hallo!" in:
::std::cout << "Hallo!" << 'n';
|
Das würde ich auch fast so machen (Grundgerüst zur Verfügung
stellen, und die Teilnehmer damit rumspielen lassen), nur daß
ich 'std::cout' schreiben würde, einfach weil das die gängige
Variante ist, die du in jedem Buch findest. Gut, deine Lösung
hat natürlich den Vorteil, daß du aus den Rückfragen "warum
steht in meinem Buch nur 'std::cout'" schlußfolgern kannst, wer
sich ernsthaft für die Programmierung interessiert :)
| Quote: | Zum anderen ist es die Terminologie, die niemand sonst verwendet
("Kopfspezifikationsnamen", "Meßaufrufbares", "Vorverarbeiter-
direktiven", "Mischaufrufbares", ...),
"Kopfspezifikationsname" gefaellt mir jetzt auch nicht
besonders - vielleicht finde ich da noch etwas besseres.
|
Da jedermann "Header" zu den Dingern sagt, kann man das durchaus
übernehmen. Auf Krampf deutsche Begriffe einzuführen, wo 99% vom
Rest der Welt erstmal zurück ins Englische übersetzt, ist m.M.n.
kontraproduktiv. Wenn es etablierte deutsche Begriffe gibt, gibt
es keinen Grund, englisch zu radebrechen, aber das ist eben hier
nicht der Fall.
| Quote: | "Vorverarbeiterdirektive" - "...direktive" ist vollkommen
in Ordnung, vielleicht sollte ich das ueblichere
"Praeprozessor" verwenden - das waere denkbar.
|
Yep.
| Quote: | Nun zu dem "..aufrufbarem". Darueber habe ich mir schon
viele Gedanken gemacht und bin noch nicht zu einer in jeder
Hinsicht zufriedenstellenden Loesung gekommen.
Es kommt daher, dass in bestimmten Lektionen allgemeine
Aussagen ueber aufrufbare Entitaeten gemacht werden sollen,
die aber in jeder Programmiersprache anders heissen:
Es gibt "Funktionen" (C++), "Methoden" (Java),
"Unterprogramme" (BASIC, Perl), "Prozeduren" (Pascal),
"Routinen", und vielleicht noch mehr. Was waere nun ein
von einer bestimmten Sprache unabhaengiger Oberbegriff?
|
Der Gattungsbegriff dürfte tatsächlich 'Unterprogramme' sein, da
es sich um Programmstückchen handelt, die als Teil eines
größeren Programmes zur Ausführung gelangen.
Was mich daran vor allem störte, war, daß du alle möglichen
Informationen in Bandwurmwörter quetschst.
| Quote: | In Lektionen, die sich speziell mit C++ beschaeftigen,
verwende ich allerdings dann den angepassten Begriff
"-Funktion", also "Messfunktion" und "Mischfunktion".
|
"Messfunktionen" ist das, was man in der OOP als 'inspector'
oder 'accessor' bezeichnet.
| Quote: | Dann zu "Mess-" und "Misch-": Das ist sogar etwas, das auf
Erfahrungen mit Teilnehmern zurueckgeht: In Pascal
unterscheidet man zwischen "Funktionen" und "Prozeduren",
in C++ nicht. Ich habe beobachtet, dass viele Anfaenger
Schwierigkeiten damit haben, Funktionen ueberhaupt richtig
aufzurufen. Z.B. haben sie eine Funktion zum Verdoppeln
eines Wertes geschrieben.
int doppel( int const i ){ return 2 * i; }
Und rufen diese dann wie eine Aktionsfunktion auf:
int main(){ doppel( 4 ); }
|
Das bekommst du aber durch komische Terminologie nicht gelöst.
| Quote: | In C++ gibt es aber keine "Prozeduren". Daher spreche ich
von "Aktionsfunktionen" (oder "Wirkfunktionen"), um in C++
das zu bezeichnen, was man in Pascal "Prozedur" nennt.
|
Den Begriff 'Aktions-Funktionen' würde ich sogar noch
akzeptieren.
| Quote: | Das haette ich ohne meine Lehrerfahrung nicht eingefuehrt,
aber ich habe von den Teilnehmern gelernt, dass Anfaenger
ohne besondere Betonung dieser Unterscheidung hier besonders
viele Fehler machen.
|
Naja, kann ich jetzt nicht so nachvollziehen.
| Quote: | Mit dieser Art der Bezeichnung eroeffnet sich dann die
Moeglichkeit der Feinbezeichnung verschiedener Arten von
Funktionen:
Aktionsfunktion
Hat eine Wirkung (Beeinflusst die Umgebung).
|
Gut. Hier sage ich einfach "Funktion mit Neben-/Seiteneffekt".
| Quote: | Messfunktion
Verhalten wird durch Umgebung beeinflusst.
|
Das impliziert mir zu sehr, daß da irgend ein technisches Gerät
(A/D-Wandler, Meßfühler, ...) dahinter hängt. Ich würde z.B.
"Inspektor" oder "Accessor" dazu sagen. Nein, Moment, ich würde
"Funktion ohne Seiteneffekt" dazu sagen, und "Accessor" oder
meinetwegen "Zugriffsfunktion", wenn es sich um eine Funktion
einer Klasse handelt.
[...]
| Quote: | Mischfunktion
Hat mehrere der genannten Eigenschaften, z.B.
einen Wert und eine Wirkungen.
|
Da das der Normalfall ist, brauche ich da keinen Namen für.
| Quote: | Dazu gibt es dann noch "Kompassdiagramme", die das
veranschaulichen. Dort gehen die Werte von Funktionen
nach rechts raus und die Wirkungen nach unten.
|
Wozu braucht man das? Vielleicht mal ein Klassendiagramm, aber
wer malt heutzutage ernsthaft noch bunte Kästchen, um ein
Programm zu verstehen? Ich male meinen Übungs-Besuchern
gelegentlich ein Struktogramm für einen Algorithmus an, aber
nur, weil die Alternative dazu wäre, gleich den Code
hinzuschreiben.
Noch ein paar Beispiele:
- "eingereihte Funktion". Laut Google wird dieser Terminus
in Sätzen wie "Der Wechsel von einer Funktion in eine andere,
höher eingereihte Funktion, unterliegt der Zuständigkeit des
Staatsrates." verwendet. Entspricht nicht gerade dem, was der
C++-Programmierer unter einer Inline-Funktion versteht.
- "Trägheit von Operandenstellen". Insbesondere vermisse ich das
Wort "Kurzschlußauswertung", was ja IMHO die verbreitetste
Bezeichnung für das Verhalten von || und && ist.
- "linksassoziativer zwischengestellter binärer Operator".
"infix" ist ein mathematischer Ausdruck, genauso wie
"linksassoziativ" oder "kommutativ". Und für "binär" haben wir
nun ausgerechnet einen deutschen Ausdruck ("zweistellig"), den
du seltsamerweise nicht benutzt. Dabei sind wir damit in der
vorteilhaften Lage, zwischen den binären und den logischen
Operatoren unterscheiden zu können.
Ich sehe schon, ich sollte auch mal einen C++ Kurs schreiben, so
wie er mir gefällt Denn vom Inhalt her ist deiner durchaus
ok, nur bildet er eben Leute aus, die sich mit existierenden
C++-Programmierern einfach nicht verständigen können.
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Bodo Thiesen Guest
|
Posted: Thu Sep 04, 2003 2:34 pm Post subject: Re: Tutorial empfehlung? |
|
|
Patrick Frankenberger schrieb:
| Quote: | "Andreas Nicolai" <Andreas.Nicolai (AT) web (DOT) de> schrieb im Newsbeitrag
news:3f560a1d$0$2335$9b4e6d93 (AT) newsread2 (DOT) arcor-online.net...
|
:-(
| Quote: | Daniel Albuschat wrote:
C++ sind. Wenn du mir versprichst, dass du dir bei Gefallen
an C++ ein nettes Buch (z.B. 'Die C++ Programmiersprache'
vom 'Erfinder' von C++ selbst - Bjarne Stroustrup) zulegst
und damit weiter lernst, kannst du dir das hier ansehen:
Hmm, zum "Lernen" halte ich den Stroustrup als denkbar ungeeignet.
Stroustrup hat selbst auch was zum Thema C++-Lernen geschrieben:
http://www.research.att.com/~bs/new_learning.pdf
|
Was hat Stroustrup eigentlich gegen C? Abgesehen davon argumentiert er
recht eigenartig. Das interessanteste daran ist aber, daß nach seiner
Argumentation (Anzahl der Dinge, die man einem Anfänger erklären muß)
eigentlich Basic *die* Einsteigersprache ist (was übrigens - jetzt bitte
nicht schlagen - auch meine persönliche Meinung ist).
print "Please enter your first name:"
input "",n$
print "Hello ";n$
Also noch einfacher geht das ja nun wirklich nicht mehr...
Ach ja, und das man eine Zeichenkette nicht mit scanf() sonderm mit fgets()
einliest, hätte inzwischen eigentlich auch bis Stroustrup durchsickern
können.
Aber lassen wir das mal...
| Quote: | - Das Buch sollte nicht zuerst C beibringen
|
Was ist eigentlich daran verkehrt, zuerst C zu lernen? Objektorientierte
Programmierung mag zwar modern sein, es ist in allererster Linie aber auch
erstmal ein riesen Bloat. (Ok, man gewinnt damit auch etwas, aber hier
kommt wieder das Problem der Kosten/Nutzen Abwägung auf...)
Wenn jemand in C Spaghetti-Code schreiben würde, wieso sollte es in C++
anders sein? Ich denke, das Hauptproblem heute ist, daß viele Menschen
immer noch nicht begriffen haben, daß der Lernvorgang, um gutes
Programmieren zu lernen, mindestens einige Jahre (min. >5, wahrscheinlich
mehr) erfordert, in denen man selber programmiert. (Also die 3 Jahre Schule
bzw. Studium noch nicht mitgerechnet.) Und dies kann man nicht dadurch
beschleunigen, daß man neue Programmiersprachen erfindet oder neue
Konzepte, denn die eigentlichen Probleme bleiben wohl. Außerdem bin ich
davon überzeugt, daß man beim Programmieren möglichst von anfang an
erfolgserlebnisse verspüren sollte, und das ist in meiner Basic-Variante
nach 3 Zeilen Code schon der Fall. Für beide, C als auch C++ muß man mit
headern um sich werfen, ohne zu wissen, was der Unsinn überhaupt soll ("es
geht halt nicht ohne - mann ist C(++) blöd ..."), und das ::std:: wird auch
erst mal jeder nur nervig finden. ("Bringt doch nix - nur unnötige
Schreibarbeit"). Und das n raffen die Anfänger auch erstmal eine ganze
Weile lang nicht. Bis das endlich mal sitzt ...
So, und jetzt versinke ich (gedanklich) erstmal wieder in meine C++
Quellen ...
Gruß, Bodo [DE: http://piology.org/ILOVEYOU-Signature-FAQ.html]
--
Wer fragt ist nur drei Minuten Dumm.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Andreas Nicolai Guest
|
Posted: Thu Sep 04, 2003 6:45 pm Post subject: Re: Tutorial empfehlung? |
|
|
Bodo Thiesen wrote:
| Quote: | Was hat Stroustrup eigentlich gegen C? Abgesehen davon argumentiert er
recht eigenartig.
Stimmt  |
| Quote: | print "Please enter your first name:"
input "",n$
print "Hello ";n$
|
(Hehe, hatte schon fast vergessen wie Basic aussieht...)
| Quote: | Also noch einfacher geht das ja nun wirklich nicht mehr...
Stimmt auch... |
| Quote: | Was ist eigentlich daran verkehrt, zuerst C zu lernen?
Verkehrt ist es sicher nicht. Aber wenn man sich mal in die Lage eines armen |
Dozenten an der Uni/Schule versetzt, der innerhalb eines Jahres mit nur 2
Stunden pro Woche (also 90 Minuten* ca. 38 Wochen) die Schüler/Studenten
soweit bringen soll, dass sie "sinnvolle" Programme schrieben, dann ist das
einfach eine Frage der Zeit. Und wenn ich mir da die ganzen netten und
einfachen Container der Standard Lib ansehe, ist das ein gewaltiger
Zeitvorteil gegenüber einem C Kurs, bei dem diese erst erläutert werden
müssen.
Natürlich hast Du Recht, dass man programmieren erst nach langer mühsamer
Zeit richtig lernt, aber wie gesagt, oft genug steht im Lehrplan was
anderes :-(
Für den Fall, dass man selbst wirklich programmieren lernen WILL und nicht
SOLL (und diesen Fall meintest Du wohl), halte ich C auch für einen
geeigneten Einstieg. Allerdings nur bis zu dem Punkt, an dem man anfängt
das Rad neu zu erfinden und die ganzen tollen Klassen der C++
Standardbibliothek mühsam in C implementiert. Spätestens an diesem Punkt
sollte man dann wohl auf C++ umsteigen.
Fazit: Wenn man jemandem programmieren beibringen soll, fängt man besser
gleich mit C++ an und versucht legacy C-Library Funktionen so weit wie
möglich zu umgehen.
Spart 'ne Menge Zeit und ist auch einleuchtet und didaktisch gut
rüberzubringen. Und der "Fortgeschrittenen-Kurs" kann sich ja dann immer
noch mit den Details beschäftigen.
Gruß - Andreas
PS: Kleiner (hinkender) Vergleich gegen die Meinung in manchen Büchern, dass
man erst einen Container selbst Stück für Stück schreiben muss, um ihn
sinnvoll zu verwenden. Muss ich nun auch wissen wie ein Motor funktioniert,
um auf's Gas zu treten und Auto zu fahren?
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Andreas Dunke Guest
|
Posted: Fri Sep 05, 2003 6:50 am Post subject: Re: Tutorial empfehlung? |
|
|
Bodo Thiesen schrieb:
| Quote: | Patrick Frankenberger schrieb:
- Das Buch sollte nicht zuerst C beibringen
Was ist eigentlich daran verkehrt, zuerst C zu lernen? Objektorientierte
|
Für diejenigen die direkt objektorientiert lernen soll es einfacher sein
diese Denkweise anzunehmen. Für jemanden der Jahrelang prozedural
programmiert hat ist es wesentlich schwieriger den Umstieg zu schaffen.
Er verfällt schnell wieder in die alte Schiene.
Ich sehe das konkret bei meinem Arbeitskollegen. Er meint immer wenn er
irgendwo 'class' verwendet hat er es vernünftig und objektorientiert
gemacht.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Torsten Hensel Guest
|
Posted: Fri Sep 05, 2003 7:41 am Post subject: Re: Tutorial empfehlung? |
|
|
Es begab sich, dass Stefan Ram schrieb:
| Quote: | Lieber Stefan, kann men jenen Kurs, auch irgentwo
gepackt downloaden ?
Leider noch nicht.
|
Falls du das irgendwann mal machst: Kannst du in der Download-Version
die ganzen Schlüsselworte am Ende weglassen? Dadurch sparst du dir ca.
50% Speicherplatz! Und lesen wird das eh kein Mensch...
Ciao
Torsten
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|