Sponsored Content
Top Forums Programming An error in my c++ program... please help urgent. Post 302504777 by poonam.gaigole on Wednesday 16th of March 2011 01:12:32 AM
Old 03-16-2011
Oh... thank you so much... I should have been able to notice that... Well, thank you again.

---------- Post updated 03-16-11 at 10:42 AM ---------- Previous update was 03-15-11 at 09:19 PM ----------

The program is:



Code:
//Convert an infix expression to postfix expression...

#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
char ifx[50],pfx[50],stk[50];
int top=-1,n;
char push(char ch)
{
    if(top!=n)
    {
        ch=stk[top];
        top++;
        return ch;
    }
    else
        cout<<"\nThe stack is full.";    
}
void pop()
{
    char rmv;
    if(top!=-1)
    {
        rmv=stk[top];
        top--;
        cout<<"\nElement removed was "<<rmv;
    }
    else
        cout<<"\nThe stack is empty.";
}
char topele()
{
    char t;
    if(top==-1)
        t='#';
    else
        t=stk[top];
    return t;
}
int chkpres()
{
    char ch;
    switch(ch)
    {
        case '^': return 5;
            break;
        case '*': return 4;
            break;
        case '/': return 3;
            break;
        case '+': return 2;
            break;
        case '-': return 1;
            break;
        default: exit(1);
            break;
    }
}
int main()
{
    char pre,pres,ele,elem,chk,popp,topp;
    cout<<"\nEnter how many elements you want to enter in the infix expression: ";
    cin>>n;
    topp=stk[top];
    cout<<"\nEnter the characters of the infix expression one by one: ";
    for(int i=0;i<n;++i)
    {
        cin>>ifx[i];
        //for(int i=0;ifx[i]='\0';++i)
        //{
            if(ifx[i]!='^' && ifx[i]!='*' && ifx[i]!='/' && ifx[i]!='+' && ifx[i]!='-')
                pfx[i]=ifx[i];
            else if(ele=='(')
            {
                ele=ifx[i];
                push(ele);
                top++;
            }
            else if(ifx[i]=='^'||ifx[i]=='*'||ifx[i]=='/'||ifx[i]=='+'||ifx[i]=='-')
            {
                if(topp=='^'||topp=='*'||topp=='/'||topp=='+'||topp=='-')
                {
                    pre=ele;
                    pres=topp;
                    chk=chkpres();
                    if(pre>pres)
                    {
                        topp=pre;
                        top++;
                    }
                    else if(pres>=pre)
                        pfx[i]=pres;
                }    
            }
            else if(ele=')')
            {
                while(topp!='#')
                {
                    popp=topp;
                    pfx[i]=popp;
                }
            }
       // }
    }
    cout<<"\nThe postfix expression is: ";
    for(int i=0;pfx[i]!='\0';++i)
    {
        cout<<pfx[i];
    }
return 0;
}




OUTPUT is:

Code:
Enter how many elements you want to enter in the infix expression: 9

Enter the characters of the infix expression one by one: a
*
(
b
+
c
)
/
d

The postfix expression is: a




Could you please help me to fix it...

Last edited by pludi; 03-16-2011 at 05:05 AM.. Reason: code tags, please
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Urgent!! How to write a shell program to execute command to access internet?

hi, I am new ot unix. So, can i write a shell(c shell or korn shell) program to access internet? I mean if I run the program, it can access specified url and then copy the html to a file? Can anyone help me? And how can make the program runs every 1 hr? new comer (2 Replies)
Discussion started by: firebirdonfire
2 Replies

2. Shell Programming and Scripting

Very Urgent help required in Shell Program

How do I Ftp, and rename multiple files in one unix script. I have to send it with .tmp extension , then rename it to .txt after FTP is done . I need to do a Mass rename of more than 1 file in a shell script , Urgent help required. (1 Reply)
Discussion started by: Suppandi
1 Replies

3. SCO

memfs.fs I/O Error - urgent attention please

Hy guys, During installation of machine (Pentium x86, 64MB RAM), well during booting SCO UnixWARE 7.1.1 diskette 1/2 i get following error (after SCO logo) "memfs.fs: I/0 error or unexpected EOF" Bootstrap Command Processor ... _ Please advise! (2 Replies)
Discussion started by: R@LE
2 Replies

4. AIX

URGENT:Program is not dropping core on customer AIX Machine

hi We have a program which is running on cutomer end,and when its crashing its not dropping core, we asked them to check ulimit,they say that its unlimited. Even when they crash the program manually by using command kill -ABRT <pid> its not dropping the core,on our end when we use same... (1 Reply)
Discussion started by: khan_069
1 Replies

5. Solaris

[need help urgent]error cpu messages

hi sun experts, i have problem with my server sun fire v240, if i run application the server will restarting itself and i got some error messages like this: Mar 21 15:15:03 sun ^Mpanic/thread=2a10094bd40: Mar 21 15:15:04 sun unix: BAD TRAP: type=34 rp=2a10094b660 addr=30005566764... (0 Replies)
Discussion started by: bucci
0 Replies

6. UNIX and Linux Applications

Urgent---Program for getting Exception from a log

Hi Friends, I am new to Unix, Now I am Working with shell scripting in my company Description:-By executing that script I need to get the exception from the log file I need the program for getting the Exceptions from the logfile,,and that program should be generic...I mean if i want to... (5 Replies)
Discussion started by: Anji
5 Replies

7. Shell Programming and Scripting

Program Bash VERY URGENT

Hello I have to do a program in Bash, need help because it does not go out for me and go enough time with this!! Five directories(boards of directors) that more occupy, arranged according to size. To measure the size of every directory(board of directors) there must not be included the size... (1 Reply)
Discussion started by: danihj
1 Replies

8. Programming

urgent help with file manipulation program

Hey, i am trying to write a program that takes multiple files as command line arguments, then outputs them to a single file. i also need the option to read them back out again. essentially what i am trying to create is an archiver, however, a very simple one. The program i have accomplished so far... (1 Reply)
Discussion started by: wezzyb
1 Replies

9. Programming

Wrapper for unix program - urgent help needed

Hello all , i need some help asap i have a program that keeps killing the machine when i did google searches and 2 days later i ran strace it seems the programm keeps making a system call to gettimeofday to i guess increment a counter ? gettimeofday({1347986584, 464904}, NULL) = 0... (6 Replies)
Discussion started by: NetworkLearning
6 Replies

10. Programming

Urgent help needed.. C++ program to convert decimal to hexa decimal

Hi , seq can be 0...128 int windex = seq / 8; int bindex = seq % 8; unsigned char bitvalue = '\x01' << (7-bindex) ; bpv.bitmapvalue = bitvalue; This is the part of a program to convert decimal to bitmap value of hexadecimal. I want this to change to convert only to... (1 Reply)
Discussion started by: greenworld123
1 Replies
DC(1)							      General Commands Manual							     DC(1)

NAME
dc - desk calculator SYNOPSIS
dc [ file ] DESCRIPTION
Dc is an arbitrary precision arithmetic package. Ordinarily it operates on decimal integers, but one may specify an input base, output base, and a number of fractional digits to be maintained. The overall structure of dc is a stacking (reverse Polish) calculator. If an argument is given, input is taken from that file until its end, then from the standard input. The following constructions are recognized: number The value of the number is pushed on the stack. A number is an unbroken string of the digits 0-9. It may be preceded by an under- score _ to input a negative number. Numbers may contain decimal points. + - / * % ^ The top two values on the stack are added (+), subtracted (-), multiplied (*), divided (/), remaindered (%), or exponentiated (^). The two entries are popped off the stack; the result is pushed on the stack in their place. Any fractional part of an exponent is ignored. sx The top of the stack is popped and stored into a register named x, where x may be any character. If the s is capitalized, x is treated as a stack and the value is pushed on it. lx The value in register x is pushed on the stack. The register x is not altered. All registers start with zero value. If the l is capitalized, register x is treated as a stack and its top value is popped onto the main stack. d The top value on the stack is duplicated. p The top value on the stack is printed. The top value remains unchanged. P interprets the top of the stack as an ascii string, removes it, and prints it. f All values on the stack and in registers are printed. q exits the program. If executing a string, the recursion level is popped by two. If q is capitalized, the top value on the stack is popped and the string execution level is popped by that value. x treats the top element of the stack as a character string and executes it as a string of dc commands. X replaces the number on the top of the stack with its scale factor. [ ... ] puts the bracketed ascii string onto the top of the stack. <x >x =x The top two elements of the stack are popped and compared. Register x is executed if they obey the stated relation. v replaces the top element on the stack by its square root. Any existing fractional part of the argument is taken into account, but otherwise the scale factor is ignored. ! interprets the rest of the line as a UNIX command. c All values on the stack are popped. i The top value on the stack is popped and used as the number radix for further input. I pushes the input base on the top of the stack. o The top value on the stack is popped and used as the number radix for further output. O pushes the output base on the top of the stack. k the top of the stack is popped, and that value is used as a non-negative scale factor: the appropriate number of places are printed on output, and maintained during multiplication, division, and exponentiation. The interaction of scale factor, input base, and out- put base will be reasonable if all are changed together. z The stack level is pushed onto the stack. Z replaces the number on the top of the stack with its length. ? A line of input is taken from the input source (usually the terminal) and executed. ; : are used by bc for array operations. An example which prints the first ten values of n! is [la1+dsa*pla10>y]sy 0sa1 lyx SEE ALSO
bc(1), which is a preprocessor for dc providing infix notation and a C-like syntax which implements functions and reasonable control struc- tures for programs. DIAGNOSTICS
`x is unimplemented' where x is an octal number. `stack empty' for not enough elements on the stack to do what was asked. `Out of space' when the free list is exhausted (too many digits). `Out of headers' for too many numbers being kept around. `Out of pushdown' for too many items on the stack. `Nesting Depth' for too many levels of nested execution. DC(1)
All times are GMT -4. The time now is 11:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy