Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak obliczyć ciąg w zmiennej?

Ostatnio zmodyfikowano 2014-04-30 11:13
Autor Wiadomość
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 ?
P-108942
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:

C/C++
#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;
}
 
P-108945
MrPoxipol
» 2014-04-30 11:13:59
P-108947
« 1 »
  Strona 1 z 1