CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - AnsiString np 2+3+5 wykonanie działania mat

AnsiString np 2+3+5 wykonanie działania mat

dział ogólny

AnsiString np 2+3+5 wykonanie działania mat

Nowy postprzez Darek_C++ » piątek, 29 kwietnia 2011, 12:36

Witam ponownie,
przykładowo mamy zmienna:
KOD cpp:     UKRYJ  
 AnsiString  rownanie = "2+3+5";

Czy jest jakaś funkcja wbudowana w BCB / C++ która wykona równanie zapisane w zmiennej AnsiString ?

Pozdrawiam
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    Windows XPFirefox

Re: AnsiString np 2+3+5 wykonanie działania mat

Nowy postprzez Cyfrowy Baron » piątek, 29 kwietnia 2011, 13:08

Nie ma! Musisz to parsować, czyli rozbić na czynniki. Pobierasz liczby z łańcucha znaków, przepisujesz do zmiennych, pobierasz operatory i wykonujesz operacje.

Dla tak prostej operacji to zadanie jest równie proste:

KOD cpp:     UKRYJ  
 int iFirst, iNext, Result = 0;

 String sRownanie = "2+3+5+8+9";   /* wynik 27 */
 String prefix = "+";

 for(;prefix.Length() > 0;)
 {
  int c = sRownanie.Pos(prefix);
  if(c == 0)
  {
   iFirst = sRownanie.ToInt();
   Result = Result + iFirst;
   break;
  }
  iFirst = sRownanie.SubString(1, c - 1).ToInt();
  sRownanie = sRownanie.Delete(1, c);

  c = sRownanie.Pos(prefix);
  iNext = sRownanie.SubString(1, c - 1).ToIntDef(0);
  sRownanie = sRownanie.Delete(1, c);
  Result = Result + iFirst + iNext;
 }

 ShowMessage("Wynik dodawania: " + (String)Result);


Sprawa jednak się komplikuje, gdy operatory będą różne, ale masz już punkt zaczepienia.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Darek_C++
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 8 gości

cron