Einfache Rechenfunktion - Anfängerfrage...



  • Also,
    ich möchte einen Rechner für Akkus programmieren, bei dem ich die Akkukapazität und den Ladestrom eingeben muss. Mit einem Klick auf berechnen wird dann eine Formel (Akkukapazität/Ladestrom * 1,4) angewandt. Daa ich noch Noob also Anfänger bin (vorallem mit Borland c++ builder) wollte ich mal fragen wie man die rechenfunktion programmieren kann. ich habe 3 editfelder (2 für die eingabe und an dem 3. soll die ladezeit ausgerechnet werden. wie muss ich jetzt weiter vorgehen? danke für die antworten.

    Bis bald!



  • E_Ergebins->Text=FloatToStr(StrToFloat(E_Akku->Text) /StrToFloat(E_Ladestrom->Text) * 1,4))
    

    Ach, das wars ja schon 😛
    Die Text-Eigenschaft verträgt nur AnsiString, während du natürlich mit Zahlen (Double, int oder eben Float) rechnen musst, darum die Umwandlungen.

    Gruß von einem Mit-Anfänger 😉

    [edit]
    Wenn du tatsächlich eine Funktion programmieren willst die dir das ausrechnet kannst du diese so definieren: (short dürfte ja auch reichen für nen' akku 🤡 )

    short akkurechner(short a, short b) {
    return a/b*1,4; }
    

    😃



  • kannste mir den quelltext oben nochmal genauer erklären? ich bin ja noch ein anfänger und möchte ihn gerne verstehen... danke

    außerdem erscheinen bei mir folgender Fehler:
    -[C++ Fehler] Unit1.cpp(22): E2227 Zu viele Parameter im Aufruf von _fastcall FloatToStr(long double)
    -[C++ Fehler] Unit1.cpp(22): E2379 In Anweisung fehlt ;



  • Ja ich hab nen Fehler gemacht 😞 Komma muss im Quelltext "." sein, sonst denkt er du willst ihm noch nen Parameter dranhängen...

    Edit3->Text=FloatToStr(StrToFloat(Edit1->Text) / StrToFloat(Edit2->Text) * 1.4);
    

    Jedefalls arbeitet der Quelltext oben ohne Variablen und nimmt direkt die Eigenschaften und rechnet sie um.

    Du willst ja dass das Ergebnis irgendwo angezeigt wird. Die Anzeige in der Edit-box heißt (wie im Objektinspektor nachzulesen ist) "Text". Dieses Element kannst du dann mit diesem "->" Zuweisungsoperator ansprechen.

    Edit3->Text=
    

    Die eigentliche Rechnung wäre ja: Edit1->Text * Edit2->Text * 1.4
    Die Text-Eigenschaft hat aber den Typ "AnsiString" mit dem man nicht Rechnen kann 😉 Andererseits kann sie auch nur Daten von diesem Typ anzeigen!
    Darum müssen die Werte aus den Editboxen zunächst in den "Float" Typ umgewandelt werden. Dies geschieht mit "StrToFloat()" (siehe Hilfe).

    StrToFloat(Edit1->Text)*StrToFloat(Edit2->Text)/1.4
    

    Diese Rechnung muss jetzt aber wieder in einen String umgewandelt werden, dies geht mit der Funktion "FloatToStr()". Das Ergebnis steht ja schon oben und müsste so funktionieren 😉



  • danke das programm funktioniert genauso wie es sein soll: perfekt 🙂



  • hier auch mal der downloadlink für die dies interessieren =):
    http://julianrabung.ju.funpic.de/modules.php?name=Downloads&d_op=getit&lid=10



  • so,
    also bei mir auf dem rechner funktioniert das programm. bei anderen rechnern bei denen kein borland c++ builder drauf ist NICHT. WARUM?? kann mir jemand eine antwort geben? bin ratlos.
    es folgt die meldung: "Die Anwendung konnte nicht gestartet werden weil vcl60.bpl nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben."


  • Mod

    Hallo

    siehe FAQ !

    (das zweitemal heute daselbe Problem)

    MfG
    Klaus



  • die faq ist ja eigentlich riesengroß, wäre auch ein direktlink möglich??


  • Mod

    Hallo

    ganz einfach

    Nach was suchst du
    zB "vcl60.bpl nicht gefunden"
    da zeigt dir die Suchfunktion 2 Treffer an
    schau dir mal den zweiten davon an (nicht deinen)

    befass dich bitte mal mit der FAQ sowie der "Suchen" Funktion des Forums

    MfG
    Klaus



  • -JuRa- schrieb:

    so,
    also bei mir auf dem rechner funktioniert das programm. bei anderen rechnern bei denen kein borland c++ builder drauf ist NICHT. WARUM??

    Geh in die Einstellungen (Projekt->Optionen).
    Im Reiter "Packages" deaktivierst du "Mit Laufzeit-Packages aktualisieren", und bei "Linker" entfernst du das Häkchen vor "Dynamisches RTL verwenden".

    Sollte gehen! Die FAQ hilft da allerdings auch 😉

    mfg
    Ensifer



  • ja ich habs mittlerweile auch gefunden und das Problem behoben. Trotzdem danke! 😃



  • @ jura: INSIDER: noch einer der seinen Colibri geschrottet hat 🙄
    Werf den Empfänger nach sonem Crash auch weg



  • Zero01 schrieb:

    @ jura: INSIDER: noch einer der seinen Colibri geschrottet hat 🙄
    Werf den Empfänger nach sonem Crash auch weg

    @Zero01:
    Es war kein Steuerfehler von mir, war nur der Empfängerakku der ausfiel. Warum soll ich den Empfänger wegwerfen? Der war sauber in Schaumstoff eingepackt im Colibri und ist noch ganz (funktionieren tut er glaub ich mal auch noch...)


Anmelden zum Antworten