Wurzelieren



  • Hinweise zur Verwendung des Debuggers findest du HIER



  • also die fehler liegen bei

    int x ;
       {
       double sqrt(double x);
       }
    

    die überspringt er einfach
    aber woran liegt das?

    hab das jetzt mit dem Code von Akari versucht und mit einem aus dem INet bei beiden kommt immer 29



  • Paladin schrieb:

    aber woran liegt das?

    Versuche die beiden Fragen zu beantworten:

    1.) Was wolltest du durch diesen Code erreichen?
    2.) Was hast du stattdessen gemacht?



  • durch diesen code wollte ich erreichen, dass er die eingegebene Zahl nimmt, die Wurzel daraus zieht und das endresultat in das untere kästchen schreibt

    Stattdessen hab ich die eingegebene Zahl gewurzelt (mit "double sqrtl(double x);")
    was soviel heisst wie doppelt gewurzelt und doppelt x 😕
    und dan im unteren Feld augegeben

    weis nicht genau was ich stattdessen hab

    ich frage mich : Wieso gerade 29 das hat mit nichts im restlichen Code zu tun!?
    aber dafür kommt wenn ich anstelle von int x;
    float x; nehme, 4.02....
    bei jeder zahl

    Edit: der Code hat jetzt geklappt und zwar bringt es so :

    double x = 1.2, result;
       result = sqrt(x);
    
    Wurzel ->Text = x;
    

    als resultat 4 wie auch gewollt.
    Nun will ich aber , dass er das richtige resultat ausgibt.
    habs versucht mit x = x, result;
    aber da bringt er nur immer 6.irgendwas



  • Vielleicht hilft es dir ein paar Teilziele zu erarbeiten:

    Schritt 1) Woher bekommst du deinen Wert und wie kannst du ihn für sqrt nutzbar machen?

    Weitere Schritte folgen.



  • Hallo

    uns außerdem solltest du die Bedeutung der Begriffe
    - double/float
    - Rückgabewert
    nachschlagen.
    Wenn du nicht ein Tutorial oder ein Buch durcharbeitest, wirst du nicht weit kommen.

    bis bald
    akari



  • hab jetzt vieles versucht um herauszufinden warum das nicht geht und ich hab das gefühl, das ihr es alle wisst, und es mir nicht sagen wollt, weil ich es selbst herausfinden soll. wie gesagt hab ich schon überall gesucht und immer tauchen die gleichen Codes auf und nirgends verständliche erklärungen, weder in der BCBHilfe noch im Google noch sonst wo!! 😮 😮 😮

    also bitte ich um einen kleinen anstoss oder so was weil ich sonst meinen dummen Kopf an der schönen Wand zerdrücken werde 😞 😞

    danke



  • Hallo

    meine Güte, so schwer kann es doch nicht sein, oder?
    Wenn du das in einem VCL-Form (also normales BCB-Projekt) machen willst :

    float Wert = 100.0; // Ausgangswert
      float Ergebnis; // Hier soll das Ergebnis rein
      Ergebnis = sqrt(Wert); // Berechnung wird durchgeführt. Wert wird nicht verändert
      Label1->Caption = "Wurzel aus " + FloatToStr(Wert) + " ist " + FloatToStr(Ergebnis); // Ergebnis wird in einem Label angezeigt
    

    Dir fehlen wirklich grundlegende Kenntnisse...

    bis bald
    akari



  • ach so dann soltest du die fräge mal lesen!
    das sollte doch nur ein Beispiel sein
    wenn ich ein programm wollte, das mir die Wurzel aus 100 zeigen würde, wäre ich ja dumm!
    es geht darum, eine beliebige Zahl eingeben zu können und dann die Wurzel daraus entlesen zu können
    und vorallem geht das gar nicht
    er sagt wurzel aus 100 sei 100



  • Hallo

    Merkst du, das wir schon Probleme haben, deine genaue Frage herauszulesen?
    Mach ein neues Projekt auf, setzt eine Editbox und ein Label rein und erstell für den Button eine Eventfunktion, in die du das schreibst :

    float Wert;
      try
      {
        Wert = StrToFloat(Edit1->Text); // Versuch, die Eingabe in ein float umzuwandeln
        }
    
       // Wenn Umwandlung nicht möglich, Fehlermeldung und abbrechen
       catch (Exception &exception)
       {
         Application->ShowException(&exception); 
         return;
         }
      float Ergebnis;
      Ergebnis = sqrt(Wert);
      Label1->Caption = "Wurzel aus " + FloatToStr(Wert) + " ist " + FloatToStr(Ergebnis);
    

    /Edit : Dann noch nach den Standard-Includes hinzufügen :

    #include <math>
    

    bis bald
    akari



  • das bringt das ganze auf den Punkt danke.

    nur bringt er jetzt die fehlermeldung

    Ergebnis = sqrt(Wert);

    sqrt sei eine undefinierte funktion.
    muss ich das irgendwo deklarieren?



  • Jung, stell dich doch nicht so an!
    Versuch mal, dich an den zweiten Beitrag dieses Threads zu erinnern ...



  • das hab ich schon nur sagt sogar die BCB Hilfe, das ich das richtig haben sollte und da ich genau das gemacht habe, was du gesagt hast, und du warscheinlich kein Fehler gemacht hast, sollte das ja wohl richtig sein.
    denn überall steht genau "Ergebnis = sqrt(Wert);" und jetzt kommt diese Fehlermeldung

    [C++ Fehler] Unit1.cpp(33): E2268 Aufruf der undefinierten Funktion 'sqrt'
    

    , das das eine undefinierte funktion ist. wie ich mir jetzt denken kann, muss ich die irgendwo definieren. nur komisch das das eine Funktion von C++ sein sollte, wie man aus der hilfe entnehmen kann.

    ich bin nicht schuld an meiner unfähigkeit und ausserdem bin ich ja jetzt dran, das zu lernen oder nicht. wenn ich alles schon wüsste würde ich nicht in das Forum schreiben.



  • Hallo

    okay, das war mein Fehler. Ich habe meinen vorherigen Post um das notwendige include ergänzt.

    Da das aber bereits angesprochen wurde (im 2. und im 4. Post), hättest du das auch selber noch finden und somit zeigen können, das du lernfähig bist.

    Ich empfehle dir dringend ein C++ Tutorial.
    Hier findest du eine Liste
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=Downloads&file=index&req=viewsdownload&sid=2

    bis bald
    akari



  • ok jetzt hat geklappt danke
    war aber mein fehler weil ich beim neuen Projekt das vergessen habe.
    danke 🙂 🙂 😉 😉


Anmelden zum Antworten