Quadrat-Berechnung (^)


  • Administrator

    Wobei man 2**16 auch über Bitshift-Operationen hinbekommen kann:

    1 << 0   => 1
    1 << 1   => 2
    1 << 2   => 4
    1 << 3   => 8
    1 << 4   => 16
    1 << 5   => 32
    ...
    1 << 16  => 65536
    

    Grüssli



  • ^ ist in C++ übrigens bitweises, exklusives Oder, nur so zur Info (wird irgendwie sehr gerne zum Potenzieren verwendet 😉 )...



  • Beim kompilieren, gibt er mir "komischerweise^^" einen Fehler aus...

    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int main() {
    	int zahl_1,zahl_2, ergebnis;
    	cout << "Gib die erste Zahl aus: " << endl;
    	cin >> zahl_1;
    	zahl_1 = pow (zahl_1,2);
    	cout << "Gib die zweite Zahl aus: " << endl;
    	cin >> zahl_2;
    	zahl_2 = pow (zahl_2,2);
    	ergebnis = zahl_1 * zahl_2;
    	cout << "Das Ergebnis ist: " << ergebnis << endl;
    }
    

    Hab ich das

    pow(zahl_1,2)
    

    falsch eingesetzt?

    Lg Mentras



  • Lesen.
    Für deine Typen existiert keine Überladung.

    Und wieso hast du jetzt <math.h> inkludiert? Die Rede war von <cmath> ...

    Beim nächsten Mal darfst du uns den Compilerfehler übrigens mitteilen.



  • Oh backe,... Sorry mein Fehler, dennoch klappt es noch nicht.

    Wie meinst du das?

    Für deine Typen existiert keine Überladung.

    Fehler 1 error C2668: 'pow': Mehrdeutiger Aufruf einer überladenen Funktion c:\users\mentras\documents\visual studio 2008\projects\visual c++ projects\produkt von quadrierten zahlen\produkt von quadrierten zahlen\code-datei.cpp 10

    Lg Mentras



  • Edit: Auf deinen Edit reagiert.

    Ich meine das so, dass die Funktion für die Typen, die du verwendest ( int , int ) nicht überladen ist.


  • Administrator

    Nexus schrieb:

    Ich meine das so, dass die Funktion für die Typen, die du verwendest ( int , int ) nicht überladen ist.

    Ich füge sogar noch den expliziten Link dazu:
    http://www.cplusplus.com/reference/clibrary/cmath/pow/

    Und kopiere noch die vorhanden Überladungen rein:

    double pow (      double base,      double exponent );
    long double pow ( long double base, long double exponent );
          float pow (       float base,       float exponent );
         double pow (      double base,         int exponent );
    long double pow ( long double base,         int exponent );
    

    Nur damit Mentras es nicht überliest 😃 🤡

    @Mentras,
    Siehst du da irgendwo ein "int, int"? Also ich nicht 😉

    Grüssli



  • €dit:

    Danke Dravere 🙂 🙂 🙂 🙂

    Hab´s verstanden!!!!

    Dankööö 😃

    War echt verzweifelt: http://www.youtube.com/watch?v=gbbIoerIcj4&NR=1

    Lg Mentras



  • Mir scheint merkwürdig, dass auf www.cplusplus.com keine Überladung

    float pow(float base, int exponent);
    

    verzeichnet ist. Gibt es die nicht? MSVC++ unterstützt sie zumindest...



  • Nexus schrieb:

    Mir scheint merkwürdig, dass auf www.cplusplus.com keine Überladung

    float pow(float base, int exponent);
    

    verzeichnet ist. Gibt es die nicht? MSVC++ unterstützt sie zumindest...

    Hab mal schnell in nem leicht veralteten Link geguckt. Zumindest im FD von 1998 ist sie drin. Ich glaube nicht, dass sie später danach entfernt wurde.

    Greetz


  • Administrator

    @Nexus,
    Hmmm, im C++ Standard 2003 steht:

    5 In addition to the double versions of the math functions in <cmath>, C + + adds float and long
    double overloaded versions of these functions, with the same semantics.
    6 The added signatures are:

    ...

    float pow (float, float);
    float pow (float, int);

    ...

    double pow(double, int);

    ...

    long double pow (long double, long double);
    long double pow (long double, int);

    Scheint also korrekt zu sein von MSVC und ein Fehler in der Referenz.

    Grüssli



  • [OT]
    Sorry, aber das muss jetzt sein: 😃

    Dravere schrieb:

    Bitschift

    [/OT]


  • Administrator

    drakon schrieb:

    [OT]
    Sorry, aber das muss jetzt sein: 😃

    Dravere schrieb:

    Bitschift

    [/OT]

    Die Schandtat wurde entfernt :p

    Grüssli


Anmelden zum Antworten