Anzahl Parameter einer Funktion
-
Hallo zusammen,
ich Anfänger mal wieder.
Ich wollte in ein kleines Programm eine Funktion zum Berechnen eines Potenzwertes einbauen. Hat nicht so geklappt....naja...
Also hab ich mir mal mein schlaues Buch zur Hand genommen und folgendes darüber gefunden.//Das Programm soll Prozentwerte berechnen #include <stdio.h> double pow(); //Deklaration der Funktion pow (Potenz) int main() { double x = 2.5, y; y = pow(x, 3.0); printf ("2.5 hoch 3 ergibt: %f\n", y); printf ("2 + (3 hoch 2.5) ergibt: %f\n", 2 + pow(3.0, x)); return 0; }
Beim Compilieren bekomme ich dann die Fehlermeldungen:
F:\PROGRAMME\MICROSOFT VISUAL STUDIO\TESTPROGRAMME\WIN32-ANWENDUNGEN\potenz\potenz.cpp(11) : error C2660: 'pow' : Funktion akzeptiert keine 2 Parameter
Ich habe versucht mit den Headern <math.h> bzw. <cmath> zu arbeiten. Die Fehler beim Compilieren waren dadurch weg.
Allerdings traten dann wieder Fehler beim Linker auf von wegen "unaufgelöstes externes Symbol"Kann mir da mal jemand auf die Sprünge helfen, bitte
Ich verstehe nicht, warum Beispielprogramm aus Handbüchern nicht laufen!
Vielleicht sollte ich es beim nächsten Grillen zum anzünden nehmenAchja, ich arbeite mit VisualC++ 6.0
Danke im voraus
-
binde die cmath ein, und lasse die funktionsdeklaration weg.
-
Das Programm ist kein gültiges C++, das ist C. Was für ein "schlaues" Buch ist das denn?
-
#include <cstdio> // nicht stdio.h #include <cmath> // dort steht die funktion 'double pow(double,double);' using namespace std; //double pow(); bitte weglassen int main() { double x = 2.5, y; y = pow(x, 3.0); printf ("2.5 hoch 3 ergibt: %f\n", y); printf ("2 + (3 hoch 2.5) ergibt: %f\n", 2 + pow(3.0, x)); //getchar(); return 0; }
edit--> schon behoben
-
using namespace std;
bitte nicht vergessen
-
C/C++ Code:
using namespace std;bitte nicht vergessen
ui super sorry
ist klar habe
dass darf nicht fehlen
-
@All, Danke
Bashar schrieb:
using namespace std;
bitte nicht vergessen
ergibt einen Compilerfehler 'std': Existiert nicht oder ist kein Namespace.
Ohne läuft es!<stdio.h>, <cstdio>, <cmath> usw., gibt es irgendein gutes Tutorial oder eine FAQ in der die verschiedenen Header ein kleinwenig erklärt/beschrieben werden?
Ich dachte meine SPS-Kenntnisse und Kenntnisse verschiedener Roboter-Software würde den Einstieg in C++ ein klein wenig erleichtern
So kann man(n) sich täuschen. Aber ich hab ja noch 2 Wochen UrlaubGruß aus dem Allgäu
-
@basher hab noch mal geschaut warum ich es vergessen konnte
naja mein compiler (devcpp)
sacht nichts wenns fehlt ???
ööhm kein fehler und findet auch alles und keine warnungen
-
Roland.K schrieb:
ergibt einen Compilerfehler 'std': Existiert nicht oder ist kein Namespace.
Ohne läuft es!Komisch. Muss wohl an deinem Compiler liegen, ist ja auch nicht mehr der neuste.
<stdio.h>, <cstdio>, <cmath> usw., gibt es irgendein gutes Tutorial oder eine FAQ in der die verschiedenen Header ein kleinwenig erklärt/beschrieben werden?
Zum Unterschied zwischen c... und ...h sicher, aber das jetzt zu schreiben geht schneller als es in der FAQ zu suchen und den Link zu posten
C++ ist bekanntlich weitestgehend eine Erweiterung von C, hat damit auch die Standardbibliothek von C übernommen. Das sind Header wie time.h, math.h, stdio.h. Als sich im Zuge der Standardisierung abgezeichnet hat, dass die C++-Standardlibrary in einem Namespace leben wird, und dass die Header keine .h-Erweiterung haben sollen, hat man kurzerhand die übernommene C-Standardlibrary ebenfalls in den std-Namespace verlegt. Die neuen Header heißen nun wie die alten mit einem vorangestellten c und einer entfernten Erweiterung. string.h -> cstring, math.h -> cmath usw. Die alten C-Header werden allerdings meistens aus Kompatibilitätsgründen noch mit unterstützt.
-
truebool schrieb:
@basher
Bashar
naja mein compiler (devcpp) sacht nichts wenns fehlt ???
Er hat wohl die C-Library *auch* im Namespace std und nicht *nur* dort.
-
Bashar schrieb:
Komisch. Muss wohl an deinem Compiler liegen, ist ja auch nicht mehr der neuste.
Dafür kostenlos und auf deutsch. Somit muss ich wenigstens nicht noch extra meine eingestaubten Englisch-Kenntnisse aktivieren.
Danke für die Erklärung
-
autsch .. tut mir leid kommt nicht mehr vor, Bashar
Er hat wohl die C-Library *auch* im Namespace std und nicht *nur* dort.
danke
macht sinn .. hoffe hab dich mit der frage nicht zu sehr gelangweilt