Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Formatierung mit fprintf und Wertebereich für Fibonacci?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
20.11.2008, 14:25 Uhr
0xdeadbeef
Gott
(Operator)


fprintf in C++-Code? Dein Prof beliebt doch hoffentlich zu scherzen, oder?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
20.11.2008, 14:40 Uhr
tobbbbi




Zitat von 0xdeadbeef:
fprintf in C++-Code? Dein Prof beliebt doch hoffentlich zu scherzen, oder?

Nein wieso?
Er hat es uns überlassen ob wir printf oder std::cout nehmen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
20.11.2008, 15:03 Uhr
0xdeadbeef
Gott
(Operator)


fprintf entspricht (grob) std::ofstream::operator<<. Hundertprozentig sind die Mechanismen in C und C++ nicht zu vergleichen, weil verschiedene Konzepte dahinterstehen - C++ ist ja eine eigenständige Sprache und nicht etwa eine Art C-Addon.

Wie dem auch sei, C und C++ auf diese Art zu mischen ist ausgesprochen unschön. Das C-API passt sich sehr schlecht in die C++-Standardbibliothek und dementsprechend auch in gute C++-Praktiken ein, weil es nun mal C und nicht C++ ist. Ein C++-Buch, das in seinen Beispielen fprintf benutzt, kannst du unbesehen in den Müll werfen, und ein Prof, der dir solche Praktiken aufschwatzt, hat C++ nie richtig gelernt. Als Indikator für Unverständnis ist das fast so eindeutig wie <iostream.h> oder void main.

Als Anfänger können dir die Gründe, warum solcherlei Angewohnheiten so unglaublich schlecht sind, natürlich noch nicht klar sein - du hast den Wert von Typsicherheit noch nicht erlernt, von Polymorphie nur am Rande etwas gehört und von Funktionsvorlagen wahrscheinlich noch nichts, und kennst dich mit den Standardkonzepten noch nicht aus; gerade deswegen ist es aber gefährlich, solchen Blödsinn zu lehren - glaub mir, es ist nachher sehr schwer, sich diesen Unfug wieder abzugewöhnen.

Es könnte pädagogisch dann Sinn ergeben, wenn es sich um einen Umsteigerkurs handelt; also um Leute, die von C kommen und C++ lernen wollen - die haben die Angewohnheiten dann eh schon, und ein Teil des Kurses müsste sowieso darin bestehen, sie loszuwerden. Aber in einem Einsteigerkurs halte ich diese Praxis für äußerst zweifelhaft.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
20.11.2008, 21:19 Uhr
Hans
Library Walker
(Operator)



Zitat von tobbbbi:
Puh wow...also ich wäre jetzt von der Aufgabenstellung her nie auf die Idee gekommen, dass man einen Vektor dafür hernehmen soll um die einzelnen Ziffern einer Zahl abzulegen.
Wenn ich das richtig verstehe, dann müsste ich bei diesem Ansatz ja einmal einen Vektor für jede Fibonacci Zahl erstellen und dann nochmal einen Vektor in dem alle Fibonaccizahlen respektive Vektoren abgelegt werden.

Err... - nö.
Laut der Aufgabenstellung soll doch jede berechnete Zahl sofort in die Datei heraus geschrieben werden. Also brauchst Du für die Berechnung nur 3 Vektoren: einen für F(n), einen für F(n-1) und einen für F(n-2). Evtl. könnte man auch schon mit zweien auskommen, aber das dürfte bei der Codierung zu einigen Schwierigkeiten führen, die man nicht braucht. Deshalb würde ich erst mal mit dreien anfangen.


Zitat von tobbbbi:
Was für deine Annahme spricht ist, dass er uns eine Teilimplementierung der Vektorklasse gecodet hat, in welcher die "add"-Funktion als Übergabe einen int-Wert erwartet.Aber ob das irgendwas zu sagen hat? Evtl. war es ja nur so ein Grobgerüst, welches wir noch modifizieren sollen?

Also ob das was zu sagen hat, weis ich nicht. Vielleicht dient es aber auch nur als Demonstrationsobjekt, um zu zeigen, wie man mit Vektoren arbeiten kann. Dafür spricht meiner Ansicht nach, das die "add"-Funktion einen int-Wert erwartet. Bei dem Ansatz, der mir vorschwebt, würde die Funktion einen Zeiger auf einen int-Vektor bekommen, etwa so:

C++:
int *add(int *Summand1, int *Summand2);



Zitat von tobbbbi:
Und mit dem, was du am Anfnag gesagt hast, hast du teilweise Recht. Wir dürfen keine vorgefertigten Konstrukte verwenden, also auch keinen Vektor...Sinn der Übung ist ja auch grade, mal selbst einen Vektor über Felder zu implementieren.

Ja dann bietet sich doch der Ansatz von mir erst recht an...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: