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

[C++] ONP

Ostatnio zmodyfikowano 2014-06-13 13:44
Autor Wiadomość
walus1305
Temat założony przez niniejszego użytkownika
[C++] ONP
» 2014-06-13 13:44:58
Chce napisać konwersję zwykłego wyrażenie na wyrażenie w ONP ale napotykam problem mianowicie gdy wpiszę 2 + 2 to program wypluję mi 2 2 + ale jak już wpisze np ( 2 + 3 ) * 2 - ( 2 / 1 ) to wypluwa coś takiego 2 3 + 2 * 2 1 / ( - ( i nie mam pojęcia co robię źle
C/C++
void konweruj_ONP( char * wyraz, int dlugosc )
{
   
    for( int i = 0; i < dlugosc; i++ ) {
        switch( wyraz[ i ] )
        {
        case '(': stos[ index++ ] = wyraz[ i ]; break;
        case ')': while( stos[ index - 1 ] != '(' )
            {
                pom[ ipom++ ] = stos[ --index ];
            }
            break;
        case '+':
        case '-':
            while( index > 0 &&( stos[ index - 1 ] != '(' || stos[ index - 1 ] != '(' ) ) pom[ ipom++ ] = stos[ --index ];
           
            stos[ index++ ] = wyraz[ i ];
            break;
        case '*':
        case '/':
            stos[ index++ ] = wyraz[ i ];
            break;
        default:
            pom[ ipom++ ] = wyraz[ i ];
            break;
        }
    }
    while( index > 0 )
    {
        index--;
        pom[ ipom++ ] = ' ';
        pom[ ipom++ ] = stos[ index ];
       
    }
    for( int i = 0; i < ipom; i++ )
    {
        cout << pom[ i ];
    }
}
P-112028
« 1 »
  Strona 1 z 1