AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechenvorschriften beachten.

Ein Thema von Evian · begonnen am 27. Apr 2006 · letzter Beitrag vom 28. Apr 2006
 
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#1

Rechenvorschriften beachten.

  Alt 27. Apr 2006, 22:52
Hallo,

ich habe eine Frage zu C++, aber eigentlich könnte könnte man das Problem auch in jeder anderen belibigen Programmiersprache behandeln. Also ich habe follgende Aufgabenstellung:

--------
Es wird eine Rechenaufgabe der Form: a + b in die TextBox eingetragen (Grundrechenarten).
Nach betätigen des Buttons soll das Ergebnis in der Form a + b = c in der gleichen TextBox
ausgegeben werden, a, b, c sind Gleitpunktzahlen.

Zusatzaufgabe: Die Rechnung besteht aus beliebig vielen Operanten.
--------

Bis jetzt haben ich das durch follgenden Quelltext gelöst, der linear durch den Stringgeht, die Zahlen zwichen den Operatoren ausließt und sie dann anhand der Operatoren zusammenrechnet.

Code:
private: System::Void btnOk3_Click(System::Object *  sender, System::EventArgs *  e)
       {
         int anf=0,i;
         double erg=0;
         char oper='+';
         String* Zahl;
         for(i=0;i<tbxAufgabe3->Text->Length;i++){
            if((tbxAufgabe3->Text->Chars[i]=='+')||(tbxAufgabe3->Text->Chars[i]=='-')||(tbxAufgabe3->Text->Chars[i]=='*')||(tbxAufgabe3->Text->Chars[i]=='/')||(i == tbxAufgabe3->Text->Length-1)){
               if(i == tbxAufgabe3->Text->Length-1){
                  Zahl =   tbxAufgabe3->Text->Substring(anf,i-anf+1);
               }else{
                  Zahl =   tbxAufgabe3->Text->Substring(anf,i-anf);
               }
               
               switch(oper){
                  case '+': erg=erg+Convert::ToDouble(Zahl); break;
                  case '-': erg=erg-Convert::ToDouble(Zahl); break;
                  case '*': erg=erg*Convert::ToDouble(Zahl); break;   
                  case '/': erg=erg/Convert::ToDouble(Zahl); break;
               }
                  oper = tbxAufgabe3->Text->Chars[i];
                  anf = i+1;
            }
         }
         tbxAufgabe3->Text = String::Concat(tbxAufgabe3->Text,"=",Convert::ToString(erg));
         
       }
Funktioniert soweit auch ganz gut, nur wird dabei nicht beachtet, dass man Punktrechnungen vor Strichrechnungen machen muss. Hat jemand eine Idee, wie ich das am Besten angehen könnte?!

gruß

Evian

Edit: Wenn jemand die Lösung kennt, sie aber nur in Object Pascal angeben könnte, dann würde mir das schon reichen.
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz