Anfänger: Frage zum Gleitkommatyp float
-
Danke für die schnelle Antwort, aber leider funktioniert das wohl nicht ganz. Habe es ausprobiert und bekomme die Fehlermeldungen:
potenz.cc: In Funktion »float exp(const float&)«:
potenz.cc:15:42: Fehler: »endl« wurde in diesem Gültigkeitsbereich nicht definiert
potenz.cc:15:42: Anmerkung: empfohlene Alternative:
/usr/include/c++/4.6/ostream:543:5: Anmerkung: »std::endl«
potenz.cc: Im globalen Gültigkeitsbereich:
potenz.cc:19:15: Fehler: »::main« muss »int« zurückgeben
potenz.cc: In Funktion »int main()«:
potenz.cc:24:3: Fehler: expected »;« before »std«
potenz.cc:26:3: Fehler: »caut« wurde in diesem Gültigkeitsbereich nicht definiert
potenz.cc:27:34: Fehler: »Exp« wurde in diesem Gültigkeitsbereich nicht definiert
potenz.cc:28:3: Fehler: expected primary-expression before »<<« token
potenz.cc:28:40: Fehler: »endl« wurde in diesem Gültigkeitsbereich nicht definiert
potenz.cc:28:40: Anmerkung: empfohlene Alternative:
/usr/include/c++/4.6/ostream:543:5: Anmerkung: »std::endl«
-
Du kannst erst mal
using std::cout;auf
using namespace std;ändern, dann fallen dir schon mal ein paar Fehler weg. Dann haste ein
return 0;etc. vergessen.
MfG
-
yihaaa schrieb:
Dann haste ein
return 0;etc. vergessen.

-
In seiner Main, steht doch in den Fehlermeldungen:
potenz.cc:19:15: Fehler: »::main« muss »int« zurückgeben potenz.cc: In Funktion »int main()«:MfG
-
Den hatte ich nicht gesehen.
In C++ brauchts m.W. aber keinreturninmain()(gibt dann automatisch 0 zurück).
@Mimi42: Was ist denn das für ein compiler?
-
Ich editiere in Kate und kompiliere das dann im Terminal mit dem Befehl g++
-
Seltsam - g++ sollte das wissen. (
g++ -vgibt dir übrigens die Version des Compilers aus)
Vielleicht hat ja deinemain()eine falsche Signatur.~Oder ich erzähle hier Blödsinn.~
-
Caligulaminus schrieb:
Vielleicht hat ja deine
main()eine falsche Signatur.das würde dir der g++ auch sagen.
-
vario-500 schrieb:
Caligulaminus schrieb:
Vielleicht hat ja deine
main()eine falsche Signatur.das würde dir der g++ auch sagen.
Hat er doch: Main muss int zurückgeben. Das bedeute nicht, das da kein return steht sondern das der Rückgabetyp falsch ist.
-
vario-500 schrieb:
das würde dir der g++ auch sagen.
Nicht wirklich. http://www.c-plusplus.net/forum/302868

@yihaaa
Du hast wahrscheinlich void main() statt int main() oder so irgendwo stehen. Richtig muss es aber int main() heißen. Ansonsten kompiliere mal mitg++ -std=c++0x -Wall -pedantic blubb.cpp
-
@cooky451: Du hattest Recht; Ich hatte void main() statt int main() da stehen. Da ich den Unterschied gar nicht kenne ist mir das auch nicht aufgefallen.
Der Code zum kompilieren ändert aber nichts.
Allerdings hab ich es leider immer noch nicht ganz zum laufen bekommen.Hier nun nochmal meine überarbeitete Datei und die Fehlermeldungen:
#include <iostream> //std::cout, std::endl #include <cmath> //exp, sin, cos #include <iomanip> //std::setprecision int main() { using namespace std; float exp (const float & x) float { ergebnis = 0.0, schritt = 1.0; int n=1; for (; n<50; ++n) { ergebnis += schritt; schritt *= x/n; } cout << "Mit n = "<<n<<" Schritten:" << endl; return ergebnis; } { float x; ///Einlesen des Exponenten cout << "x = "; std::cin >> x; //Ausgabe cout << std::setprecision(12) << " mein exp(x) = " << exp( x ) << "\n"; << " cmath exp(x) = " << exp( x ) << endl; return 0; } }potenz.cc: In Funktion »int main()«:
potenz.cc:11:2: Fehler: expected initializer before »float«
potenz.cc:31:2: Fehler: expected »}« at end of inputInitializer sind ja die Dinger die ganz am Anfang stehen. Wozu ist denn bei mir zum Beispiel der dritte gut?
Und der letzte Fehler deutet doch auf eine falsche Klammersetzung; Diese habe ich allerdings mehrfach überprüft und kann auch hier meinen Fehler nicht finden.
-
Dein Programm sieht aus wie eines dieser Puzzles, bei denen die Zeilen zufällig vertauscht wurden und nun wieder in die richtige Reihenfolge gebracht werden müssen.
-
Was soll denn Zeile 11 machen? oO
-
Letztendlich habe ich die Datei ja so ungefähr von meinem Leiter bekommen und da nur ein bisschen was verändert.
Ich dachte mir Zeile 11 heißt, dass man bei dem Wert Null anfängt und immer um 1 erhöht.Nun bräuchte ich wohl noch jemanden, der mir erklärt wie das Puzzle zu ordnen ist.
-
Und was soll die Klammer da?
-
Hm gute Frage. Gehört die nicht zu dem float-Befehl dazu?
Mir fällt es noch recht schwer, das Programm nachzuvollziehen.
-
Nein, gehört sie nicht. Und float ist auch kein Befehl, das ist ein Typ. Wenn du das nicht weißt solltest du vielleicht erstmal die Grundlagen der Sprache lernen, bevor du da wild rumsortierst. Nur so als Tipp, so bringt das nämlich nichts.
-
Das sieht unser Prof wohl leider etwas anders, aber ich versuche mich da nebenbei so gut es geht einzulesen. Werds dann nochmal weiter versuchen, für weitere Tipps, wie das Programm funktionieren könnte, wäre ich sehr dankbar.
-
Die Definition von exp hat nichts innerhalb der main() zu suchen.
Und wie du auf die Klammer kommst, ist immer noch nicht klar - in deinem ersten Post hattest du die schließlich noch an der richtigen Stelle.
-
Ich hab mal ein bisschen umsortiert: http://ideone.com/4oZI9
Euer Prof lässt euch Zeilen sortieren (was an sich schon irgendwie Quatsch ist..) bevor ihr die Sprache könnt? Wie soll das funktionieren?