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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT V7
dc
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)