Ableiten mit Schleife funzt net



  • Hallo, ich will ein Programm zum n-fachen Ableiten von Potenzausdrücken mit Vorfaktor mit Schleife in C++ schreiben.

    // Diese .exe führt ein Ableiten von Potenzausdrücken für Differentialrechnungen durch.
    
    # include <iostream>
    # include <math>
    
    using namespace std;
    
    int main ()
    
    {
      cout << " Geben Sie den Potenzkoeffizienten ein!\n";
    
      double k;
    
      cin >>k;
    
      if (k==0)
    
      {
        cout << " Alle Ableitungen sind 0.\n";
    
        cin.clear();
        cin.ignore(cin.rdbuf()->in_avail());
        cin.get();
    
        return 0;
      }
    
      else
    
      {
      cout << " Geben Sie den Exponenten ein!\n";
    
      double p;
    
      cin >>p;
    
      double kNeu, pNeu;
      int Grad;
      Grad = 1;
    
      while (pNeu > 1)
        {
          kNeu = (p*k);
          pNeu = --p;
          cout << "Sei die Basis x, so lautet Ihre "<<Grad<<". Ableitung nach x: " << kNeu<<" x^ "<<pNeu<< "\n";
          Grad++;
        }
      }
    }
    

    Problem:

    C++ kommt nie bis "Sei die Basis..." sondern bricht nach der Eingabe vom Exponenten ab.

    So etwa in C++ builder x von borland:

    C:\Dokumente und Einstellungen\Thomas Zettler\cbproject\Ableiten_von_Potenzsummen\windows\Release_Build\Ableiten_von_Potenzen.exe
    Geben Sie den Potenzkoeffizienten ein!

    3
    Geben Sie den Exponenten ein!

    4

    ohne Schleife konnte ich für einfaches ableiten hiermit

    // Diese .exe führt ein Ableiten von Potenzausdrücken für Differentialrechnungen durch.
    
    # include <iostream>
    # include <math>
    
    using namespace std;
    
    int main ()
    
    {
      cout << " Geben Sie den Potenzkoeffizienten ein!\n";
    
      double k;
    
      cin >>k;
    
      if (k==0)
    
      {
        cout << " Alle Ableitungen sind 0.\n";
    
        cin.clear();
        cin.ignore(cin.rdbuf()->in_avail());
        cin.get();
    
        return 0;
      }
    
      else
    
      {
      cout << " Geben Sie den Exponenten ein!\n";
    
      double p;
    
      cin >>p;
    
      double kNeu, pNeu;
      int Grad;
      Grad = 1;
    
          kNeu = (p*k);
          pNeu = --p;
          cout << "Sei die Basis x, so lautet Ihre "<<Grad<<". Ableitung nach x: " << kNeu<<" x^ "<<pNeu<< "\n";
    
      }
    }
    

    schon eine korrekte Ausabe mit dem Text "Sei die Basis..." erreichen.

    Wo liegt mein Fehler in der Erweiterung des 2. Codeblocks mit der while - loop im Code Block 1??

    Es treten in der IDE keine Fehler zur compile Zeit auf!

    LG kasimirle.



  • double kNeu=k, pNeu = p; //Zuweisung fehlt
      int Grad; 
      Grad = 1; 
    
      while (pNeu > 1) 
        { 
          kNeu = (p*kNeu); 
    	  pNeu--; // musst du auch noch ändern
          cout << "Sei die Basis x, so lautet Ihre "<<Grad<<". Ableitung nach x: " << kNeu<<" x^ "<<pNeu<< "\n"; 
          Grad++; 
        } 
      }
    

Anmelden zum Antworten