Anfänger: schwierigkeiten beim quadrieren eines floats (gelöst)



  • Ich bekomm von meinem Compiler den Fehler "no matching function for call to `pow(float&)'"

    Die betroffene Zeile ist 140: und soll nichts anderes tun, als einen float zu quadrieren und ihn dann durch einen anderen zu teilen.
    Da dies mein erster Beitrag in diesem Forum ist, bitte ich dich ebenfalls, mich auf Dinge hin zu weisen, die hier nicht gern gesehen werden ...man möchte sich ja nicht gleich unmöglich machen ^^

    Quelltext folgt:

    //Ein Programm zur Berechnung von U (Spannung) R (Widerstand) I (Strom) und P (Leistung)
    //calcURIP rev 0.04 prealpha
    
    //This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    //This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
    //You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses/.
    
    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <math.h>
    
    using namespace std;
    int main(int argc, char *argv[])
    {
        //Haupt-Schleife
        bool b_close(false);
      do{
      system("cls");
    
        //Initialisierung der Rechenwert-floats
                               float f_USER_IN_1;
                               float f_USER_IN_2;
    
       ///Initialisierung der häufig benötigten UI Strings
       string s_ident    = "CalcURIP v.0.04 prealpha. (C) [2009] [Marcus Wiech] GPL\n---------------------------------------------------------------------------\n";
       string s_ueingabe = "\n\nUngueltige Eingabe!";
       string s_rohm     = "R in Ohm";
       string s_iamp     = "I in Ampere";
       string s_uvol     = "U in Ampere";
       string s_pwat     = "P in Watt";
       string s_nenth    = "\nDiese Funktion ist leider noch nicht enthalten.\n\n\n";
    
        //Hauptauswahlmenü
        cout << s_ident << endl;
        cout << "---URIP" << endl;
        cout << "[1]: U in Volt" << endl;
        cout << "[2]: R in Ohm" << endl;
        cout << "[3]: I in Ampere" << endl;
        cout << "[4]: P in Watt\n" << endl;
        cout << "[0]: Programm Beenden\n" << endl;
        cout << "BEACHTE!!! Kommas sind durch Punkte zu ersetzen und alle\nGroessen sind in Volt, Ampere, Ohm und Watt anzugeben !!!" << endl;
       int short i_USER_CHOICE_MAIN;
    
       //Eingabe der Auswahl
       cout << "\n\nOption:";
       cin  >> i_USER_CHOICE_MAIN;
    
    //HAUPT-SWITCH-ANWEISUNG
    switch (i_USER_CHOICE_MAIN) {
    
           //Programm beenden
           case 0:
                return EXIT_SUCCESS;
                break;
    
            case 1: // Spannung in Volt
                system("cls");
                cout << s_ident << endl;
                cout << s_uvol << endl;
                 int short i_USER_CHOICE_U;
                 cout << "[1]: R I" << endl;
                 cout << "[2]: P I" << endl;
                 cout << "[3]: P R" << endl;
                 cout << "\n\nOption:";
                 cin >> i_USER_CHOICE_U;
                  switch (i_USER_CHOICE_U) {
                         case 1: //geg Widerstand und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_uvol << endl;
                                cout << "R:";
                                cin  >> f_USER_IN_1;
                                cout << "I:";
                                cin  >> f_USER_IN_2;
                                cout << "\nU=" << f_USER_IN_1 * f_USER_IN_2 << " Volt\n\n\n" << endl;
                              break;
                         case 2: //geg Leistung und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_uvol << endl;
                                cout << "P:";
                                cin  >> f_USER_IN_1;
                                cout << "I:";
                                cin  >> f_USER_IN_2;
                                cout << "\nU=" << f_USER_IN_1/f_USER_IN_2 << " Volt\n\n\n" << endl;
                              break;
                         case 3: //geg Leistung und Widerstand
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_uvol << endl;
                                cout << "P:";
                                cin  >> f_USER_IN_1;
                                cout << "R:";
                                cin  >> f_USER_IN_2;
                                cout << "\nU=" << sqrt (f_USER_IN_1*f_USER_IN_2) << " Volt\n\n\n" << endl;
    
                              break;
                  default:
                  system("cls");
                  cout << s_ident << endl;
                  cout << s_ueingabe << endl;
                  }
                  break;
           case 2: //Widerstand in Ohm
                system("cls");
                cout << s_ident << endl;
                cout << s_rohm << endl;
                 int short i_USER_CHOICE_R;
                 cout << "[1]: U I" << endl;
                 cout << "[2]: U P" << endl;
                 cout << "[3]: P I" << endl;
                 cout << "\n\nOption:";
                 cin >> i_USER_CHOICE_R;
                  switch (i_USER_CHOICE_R) {
                         case 1: //geg Spannung und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_rohm << endl;
                                cout << "U:";
                                cin  >> f_USER_IN_1;
                                cout << "I:";
                                cin  >> f_USER_IN_1;
                                cout << "\nR=" << f_USER_IN_1/f_USER_IN_2 << " Ohm\n\n\n" << endl;
                              break;
                         case 2: //geg Spannung und Leistung
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_rohm << endl;
                                cout << s_nenth;
                                cout << "U:";
                                cin  >> f_USER_IN_1;
                                cout << "P:";
                                cin  >> f_USER_IN_2;
    
                              cout << "\nU=" << pow(f_USER_IN_1) / f_USER_IN_2  << " Volt\n\n\n" << endl;
                              break;
                         case 3: //geg Leistung und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_rohm << endl;
                                //cout << "P:";
                                //cin  >> USER_IN_1;
                                //cout << "I:";
                                //cin  >> USER_IN_2;
                              cout << s_nenth;
    
                              break;
                  default:
                  system("cls");
                  cout << s_ident << endl;
                  cout << s_ueingabe << endl;
                  }
                  break;
           case 3: //Strom in Ampere
                system("cls");
                cout << s_ident << endl;
                cout << s_iamp << endl;
                 int short USER_CHOICE_I;
                 cout << "[1]: U R" << endl;
                 cout << "[2]: P U" << endl;
                 cout << "[3]: P R" << endl;
                 cout << "\n\nOption:";
                 cin >> USER_CHOICE_I;
                  switch (USER_CHOICE_I) {
                         case 1: //geg Spannung und Widerstand
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_iamp << endl;
                                cout << "U:";
                                cin  >> f_USER_IN_1;
                                cout << "R:";
                                cin  >> f_USER_IN_2;
                                cout << "\nI=" << f_USER_IN_1/f_USER_IN_2 << " Ampere\n\n\n" << endl;
                              break;
                         case 2: //geg Leistung und Spannung
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_iamp << endl;
                                cout << "P:";
                                cin  >> f_USER_IN_1;
                                cout << "U:";
                                cin  >> f_USER_IN_2;
                                cout << "\nI=" << f_USER_IN_1/f_USER_IN_2 << " Ampere\n\n\n" << endl;
                              break;
                         case 3: //geg Leistung und Widerstand
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_iamp << endl;
                                cout << "P:";
                                cin  >> f_USER_IN_1;
                                cout << "R:";
                                cin  >> f_USER_IN_2;
                                cout << "\nU=" << sqrt (f_USER_IN_1/f_USER_IN_2) << " Volt\n\n\n" << endl;
                              break;
                  default:
                  system("cls");
                  cout << s_ident << endl;
                  cout << s_ueingabe << endl;
                  }
                  break;
           case 4: //Leistung in Watt
                system("cls");
                cout << s_ident << endl;
                cout << s_pwat << endl;
                 int short i_USER_CHOICE_P;
                 cout << "[1]: U I" << endl;
                 cout << "[2]: R I" << endl;
                 cout << "[3]: U R" << endl;
                 cout << "\n\nOption:";
                 cin >> i_USER_CHOICE_P;
                  switch (i_USER_CHOICE_P) {
                         case 1: //geg Spannung und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_pwat << endl;
                               //cout << "U:";
                               //cin  >> USER_IN_1;
                               //cout << "I:";
                               //cin  >> USER_IN_2;
                               cout << s_nenth;
    
                              break;
                         case 2: //geg Widerstand und Strom
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_pwat << endl;
                               // cout << "R:";
                               // cin  >> USER_IN_1;
                               // cout << "I:";
                               // cin  >> USER_IN_2;
                               cout << s_nenth;
                              break;
                         case 3: //geg Spannung und Widerstand
                              system("cls");
                              cout << s_ident << endl;
                              cout << s_pwat << endl;
                                //cout << "U:";
                                //cin  >> USER_IN_1;
                                //cout << "R:";
                                //cin  >> USER_IN_2;
                                cout << s_nenth;
                              break;
                  default:
                  system("cls");
                  cout << s_ident << endl;
                  cout << s_ueingabe << endl;
                  }
                  break;
    
                  default:
                  system("cls");
                  cout << s_ident << endl;
                  cout << s_ueingabe << endl;
                  }
    
                  system("PAUSE");
                  //Ende der Haupt-Schleife
                  }while(b_close=true);        
    
    }
    

    f_USER_IN_1 soll quadriert und anschließend durch f_USER_IN_2 geteilt werden.
    der komplette Quelltext kann auch unter https://sourceforge.net/projects/calcurip/files/ eingesehen werden.

    vielen Dank für jede Hilfe.



  • Vielleicht liest du dir einfach mal an, was pow macht und wozu es da ist.



  • Hmmm ja, soweit ich das verstanden und gelesen habe,
    kann ich mit pow quadrieren. Anscheinend ist das ja so, wie oben Umgesetzt, nicht der Fall ....

    😃

    Es geht also eher darum, dass mir evtl. jemand, der sich einem blutigen C++ Einsteiger annimmt erklärt, wie ich einen Wert quadriere, und diesen dann durch einen 2. Teilen kann.





  • Genau auf die Seite bin ich bereits gestoßen, als ich nach einer möglichkeit gesucht habe, den Wert zu quadrieren ....

    Ich versteh aber das Beispiel nicht ....



  • Laß pow weiterschlafen.

    cout << "\nU=" << f_USER_IN_1 * f_USER_IN_1 / f_USER_IN_2  << " Volt\n\n\n" << endl;
    


  • Na gut.

    pow benötigt zwei Argumente und pow(x,y) = $$x^y$$
    Jetzt klar, wie man quadriert?

    Eine andere, meiner Meinung nach vorzuziehende Variante ist allerdings die Multiplikation mit sich selbst: x*x



  • das hilft mir doch schon sehr viel weiter,

    Danke 😉


Anmelden zum Antworten