Jak obliczyć ciąg w zmiennej?
Ostatnio zmodyfikowano 2014-04-30 11:13
Webmast-er Temat założony przez niniejszego użytkownika |
Jak obliczyć ciąg w zmiennej? » 2014-04-30 00:15:53 Witam. Mam w moim kalkulatorze zmienną obliczenie, typu string do której program dopisuje liczby i znaki które poda użytkownik, i na pod koniec wartość zmiennej wygląda przykładowo obliczenie = 3+1-2 i jest traktowana i wyświetlania przez program jako tekst. Czy jest jakaś możliwość aby podać programowi ten ciąg znaków tak żeby został obliczony i aby po wyświetleniu wyglądał tak: obliczenie = 4 ? |
|
alixir |
» 2014-04-30 08:30:38 Musisz stworzyć sobie jakiś parser. Dla liczb całkowitych i działań typu: dodawanie/odejmowanie mógłby wyglądać np. tak: #include <iostream> #include <string> #include <cmath>
int calculate( const std::string & );
int main() { std::string text = "obliczenie=3+11-2+6-4"; std::cout << text << std::endl; std::cout << "obliczenie=" << calculate( text ) << std::endl; system( "pause" ); return 0; }
int calculate( const std::string & equation ) { int sum = 0; for( int i = equation.length() - 1, num = 0, power = 0; i >= 0; i-- ) { if( isdigit( equation[ i ] ) ) { num +=( equation[ i ] - '0' ) *( int ) pow(( double ) 10,( double ) power ); power++; } else { if( equation[ i ] == '-' ) num *= - 1; sum += num; num = 0; power = 0; } } return sum; }
|
|
MrPoxipol |
» 2014-04-30 11:13:59 |
|
« 1 » |