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 nehmen 😞

    Achja, 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 Urlaub 😃

    Gruß 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
    😉


Log in to reply