PDA

View Full Version : لطفا توجه کنید !!!!!!!!!!!!



raspi.m
سه شنبه 09 خرداد 1391, 22:14 عصر
میشه همین الان لطف کنید این برنامه c++ رو به exe تبدیل کنید نمیدونم این ویژوال استادیوم چشه تبدیل نمیکنه. همین الان باید بفرستمش واسه استاد نمره میانترممو بده.


#include<stdio.h>
#include<iostream.h>
#define StackSize 20
int Is_ParantezBaz ;
int Is_ParantezBasteh ;
int Is_LowLevel ;
int Is_TopLevel ;
char Item2 ;
//DEVELOPED BY ARYAFAR
struct Stack
{
int S[StackSize];
int Top;
};
///////////////
main()
{
int Is_Full ( struct Stack *);
void CreateStack (struct Stack *);
int Is_Empty(struct Stack *);
char Pop(struct Stack * ) ;
void Push(struct Stack * , char);
////////////////////////////////
char Char[StackSize];
int Lenght , I;
struct Stack *Ps;
cout<<"Enter String: " ;
cin>> Char;
CreateStack (Ps );
cout <<"----------------------------------------------------------\n";
for (Lenght=0 ;Lenght<Char[Lenght] ;Lenght++);
for(I=0 ;I<Lenght ;I++)
{
if(Char[I] == '/' )
{
Is_TopLevel = 1 ;
if(Is_ParantezBaz !=1)Is_ParantezBaz = 0 ;
Is_ParantezBasteh = 0 ;
Is_LowLevel = 0 ;
Push (Ps,Char[I]);
}
else if(Char[I] == '*' )
{
Is_TopLevel = 1 ;
if(Is_ParantezBaz !=1)Is_ParantezBaz = 0 ;
Is_ParantezBasteh = 0 ;
Is_LowLevel = 0 ;
Push (Ps,Char[I]);
}
else if(Char[I] == '(' )
{
Is_ParantezBaz = 1 ;
Is_ParantezBasteh = 0 ;
Is_LowLevel = 0 ;
Is_TopLevel = 0 ;
Push (Ps,Char[I]);
}
else if(Char[I] == ')' )
{
Is_ParantezBasteh = 1 ;
Is_ParantezBaz =0 ;
Is_LowLevel = 0 ;
Is_TopLevel = 0 ;
Push (Ps,Char[I]);
}
else if(Char[I] == '+' )
{
Is_LowLevel = 1 ;
if(Is_ParantezBaz !=1)Is_ParantezBaz = 0 ;
Is_ParantezBasteh = 0 ;
Is_TopLevel = 0 ;
Push (Ps,Char[I]);
}
else if(Char[I] == '-' )
{
Is_LowLevel = 1 ;
if(Is_ParantezBaz !=1)Is_ParantezBaz = 0 ;
Is_ParantezBasteh = 0 ;
Is_TopLevel = 0 ;
Push (Ps,Char[I]);
}
else cout<<Char[I] ;
}
while ((*Ps).Top != -1)
{
Item2 = Pop (Ps);
cout << Item2 ;
};

}

void CreateStack (struct Stack *Ps)
{
//(*Ps).Top=-1;
Ps->Top = -1;
}
///////////////////////
int Is_Full(struct Stack *Ps)
{
if((*Ps).Top == StackSize -1) return(1);
else return(0);
}
///////////////////////
int Is_Empty(struct Stack *Ps)
{
if((*Ps).Top == -1) return(1);
else return(0);
}
///////////////////////
void Push(struct Stack *Ps , char Item)
{
char Pop(struct Stack * ) ;
if(Is_Full(Ps) == 1)cout<<"Stack Over Flow ";
else if( Is_ParantezBaz == 1 || (*Ps).Top == -1 )
{
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;

}
else if( Is_ParantezBasteh == 1 )
{
while ((*Ps).S[(*Ps).Top] !='(')
{
Item2 = Pop (Ps);
if (Item2 != '(' )
{
cout << Item2 ;
}
};
Item2 = Pop (Ps);
}
else if ((*Ps).Top == 0)
{
if( Is_TopLevel == 1 && (*Ps).S[(*Ps).Top ] == '*' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;


}
else if( Is_TopLevel == 1 && (*Ps).S[(*Ps).Top ]== '/' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;


}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top ]== '+' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;

}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top ]== '-' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;

}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top ]== '*' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;

}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top ]== '/' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;

}
}
else if ((*Ps).Top > 1)
{

if( Is_TopLevel == 1 && (*Ps).S[(*Ps).Top -1 ] == '*' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
else if( Is_TopLevel == 1 && (*Ps).S[(*Ps).Top -1 ]== '/' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top -1 ]== '+' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top -1 ]== '-' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top -1 ]== '*' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
else if( Is_LowLevel == 1 && (*Ps).S[(*Ps).Top -1 ]== '/' )
{
Item2 = Pop (Ps);
cout << Item2 ;
////////////////
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}
}
else
{
(*Ps).Top ++ ;
(*Ps).S[(*Ps).Top] = Item ;
}

}
///////////////////////
char Pop(struct Stack *Ps )
{
char Item ;
if(Is_Empty(Ps) == 1)cout<<"Stack Empty ";
else
{
Item =(*Ps).S[(*Ps).Top] ;
(*Ps).Top -- ;
return (Item);
}
}
///////////////////////