1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Hochzahlen ohne pow, wie?

Dieses Thema im Forum "C/C++" wurde erstellt von fabian24, 22. Juli 2005.

  1. fabian24

    fabian24 Grünschnabel

    Hallo, habe ich kleines Problem mit pow.
    ich muss aus sehr langen Formeln, die aus Excel stammen, einen Wert auslesen:
    das Problem ist, in Excel steht bei Hochzahlen z.B. "1354^E4", aber in C++ Builder muss
    ich pow(1354, E4) und wenn dieses "^" in der Excel Formel ca. 20 mal vorkommt wirds schwierig, deswegen hoffe ich das jemand weiß wie ich auch in C++ nur "^" schreiben muss.

    Ich hoffe ich könnt mir auch dieses mal wieder helfen!
    Danke im voraus!
  2. deepthroat

    deepthroat Premium-User

    Hi.

    Also prinzipiell geht das natürlich schon. Du müßtest lediglich eine eigene Klasse erstellen, dann kannst du für diese Klasse alle Operationen definieren (indem du die Operatoren überlädst) die du brauchst. Dann mußt du allerdings die Zahlen die du von Excel übernimmst vorher in Instanzen dieser Klasse überführen...

    Ich würde sagen lass es lieber. Das ist die ganze Sache nicht wert, nur weil du gerne eine andere Schreibweise hättest. (was anderes sind Operatoren ja nunmal nicht)

    Außerdem mußt du natürlich sehr sorgsam aufpassen, das du nicht hohe Ungenauigkeiten in die Berechnung bekommst. Ich denke du wirst nicht so ohne weiteres die Formeln von Excel übernehmen können. Die Ergebnisse werden dann ziemlich sicher differieren.
  3. fabian24

    fabian24 Grünschnabel

    Das ist die Sache bei 500 Formeln zu je 20 KB schon Wert.
    Danke für den Tip mit der Klasse, ich werds mal ausprobieren.
  4. deepthroat

    deepthroat Premium-User

    Ups. 20kB pro Formel?

    Naja, also wenn das so ist - hier ein Beispiel:
    Code (Text):
    1. #include <cmath>
    2. #include <iostream>
    3.  
    4. class Num {
    5.   double n;
    6.  
    7. public:
    8.   Num (double x) : n(x) { }
    9.  
    10.   Num operator^ (const Num& other) const {
    11.     return pow(n, other.n);
    12.   }
    13.   operator double( ) {
    14.     return n;
    15.   }
    16. };
    17.  
    18.  
    19. int main ()
    20. {
    21.   using namespace std;
    22.  
    23.   cout << (Num(2)^Num(3)) << endl;
    24. }
    Oder was hälst du denn davon die Formeln automatisch konvertieren zu lassen? Also mit Perl, Python oder selbst C++ ist das sicher schnell gemacht.

    Wie bekommste denn die Formeln von Excel in deinen Quelltext? Kannste die ganzen Formeln irgendwie in eine Textdatei exportieren?
  5. canuzzi

    canuzzi Erfahrenes Mitglied

    Ich wuerde auch eher die Formel in c++ aendern als das ^ Symbo einzufuehren.

Diese Seite empfehlen